import asyncio import pathlib import aiohttp import requests from curl_cffi.requests.errors import RequestsError from pymongo.errors import PyMongoError PROJECT_ROOT = pathlib.Path(".") PROXIES_PATH = pathlib.Path("proxies.txt") MONGO_DATABASE_NAME = "tpv_woot" MONGO_URL = ( "mongodb://tpv:n3%23QI07GnbZCbvGJ@zelda.disqualifier.me:27017/?authSource=tpv_woot" ) PRODUCTION_BOT_TOKEN = ( "MTQwMDE4NDk2MzY4NDYzMDUyOQ.GOrqOb.6frT3upUQ5B9XubVOIT9pdzVcYVXSrnEMK7RlA" ) DEVELOPMENT_BOT_TOKEN = ( "MTUxNzYwNDI4NDEwMTk1MTUxOA.GO3b1i.aXdPICnvlY37m67OqESVcQsZhFcGOcCrn_1F-U" ) PROFIT_API_KEY = "dev-XvIu8S83BJ2N1C9ZCsoLAAav5jan7kj5" LOGGING_LEVEL = "INFO" RETRY_LIMIT = 5 RETRY_WAIT = 3 BACKOFF_DELAY = 0.001 FAILURE_DELAY = 0.001 MAX_BACKOFF = 10 TIMEOUT_SECONDS = 30 CLIENT_IDENTIFIERS = ["chrome", "chrome_android", "safari", "safari_ios"] CLIENT_TIMEOUT = aiohttp.ClientTimeout( total=TIMEOUT_SECONDS, sock_connect=30, sock_read=30 ) FLAG_WEBHOOK_MAP = ( ("member_pick", "memberPick"), ("member_deal", "memberDeal"), ) BUCKET_WEBHOOK_MAP = { 40: "40-49", 50: "50-60", 60: "60-70", 70: "70-80", 80: "80-90", 90: "90-100", "price_drop": "40-49", } MONITOR_NAMES = ["bestbuy", "woot", "lg", "hp", "samsung", "northerntool"] STATUS_PENDING = "pending" STATUS_SENT = "sent" STATUS_SKIPPED = "skipped" STATUS_FAILED = "failed" EXPECTED_TASK_ERRORS = ( RequestsError, aiohttp.ClientError, asyncio.TimeoutError, requests.Timeout, requests.HTTPError, PyMongoError, )