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") RETRY_LIMIT = 5 RETRY_WAIT = 3 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"] EXPECTED_TASK_ERRORS = ( RequestsError, aiohttp.ClientError, asyncio.TimeoutError, requests.Timeout, requests.HTTPError, PyMongoError, )