Files
monitor-shared-utils/monitor_utils/constants.py
T
2026-06-19 10:18:23 -07:00

52 lines
1.1 KiB
Python

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
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"]
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,
)