113 lines
4.1 KiB
Python
113 lines
4.1 KiB
Python
import os
|
||
from dotenv import load_dotenv
|
||
|
||
# 加载.env文件中的环境变量
|
||
load_dotenv()
|
||
|
||
# ===== 日志配置 =====
|
||
# 日志级别:DEBUG, INFO, WARNING, ERROR, CRITICAL
|
||
LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO")
|
||
# 日志格式:时间戳 - 日志级别 - 消息内容
|
||
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
|
||
# 日志日期格式:年-月-日 时:分:秒
|
||
LOG_DATE_FORMAT = "%Y-%m-%d %H:%M:%S"
|
||
|
||
# ===== API服务配置 =====
|
||
# API服务监听主机地址
|
||
API_HOST = os.getenv("API_HOST", "127.0.0.1")
|
||
# API服务端口号
|
||
API_PORT = int(os.getenv("API_PORT", 8000))
|
||
# 是否启用调试模式
|
||
API_DEBUG = os.getenv("API_DEBUG", "false").lower() == "true"
|
||
# API服务工作进程数量(Windows下建议使用1)
|
||
API_WORKERS = int(os.getenv("API_WORKERS", 1))
|
||
|
||
# ===== 账号管理配置 =====
|
||
# 系统最大已激活的账号数量
|
||
MAX_ACCOUNTS = int(os.getenv("MAX_ACCOUNTS", 10))
|
||
# 每次注册间隔时间(秒)
|
||
REGISTRATION_INTERVAL = int(os.getenv("REGISTRATION_INTERVAL", 60))
|
||
# 注册失败时的最大重试次数
|
||
REGISTRATION_MAX_RETRIES = int(os.getenv("REGISTRATION_MAX_RETRIES", 3))
|
||
# 注册重试间隔时间(秒)
|
||
REGISTRATION_RETRY_INTERVAL = int(os.getenv("REGISTRATION_RETRY_INTERVAL", 5))
|
||
|
||
# ===== 浏览器配置 =====
|
||
# 是否以无头模式运行浏览器(不显示界面)
|
||
BROWSER_HEADLESS = os.getenv("BROWSER_HEADLESS", "true").lower() == "true"
|
||
# 浏览器可执行文件路径(为空则使用默认路径)
|
||
BROWSER_PATH = os.getenv("BROWSER_PATH", None)
|
||
# 浏览器下载文件保存路径
|
||
BROWSER_DOWNLOAD_PATH = os.getenv("BROWSER_DOWNLOAD_PATH", None)
|
||
# 是否使用动态ua池
|
||
DYNAMIC_USERAGENT = os.getenv("DYNAMIC_USERAGENT", "false").lower() == "true"
|
||
# 浏览器User-Agent
|
||
BROWSER_USER_AGENT = os.getenv("BROWSER_USER_AGENT", None)
|
||
|
||
# ===== Cursor URL配置 =====
|
||
# Cursor登录页面URL
|
||
LOGIN_URL = "https://authenticator.cursor.sh"
|
||
# Cursor注册页面URL
|
||
SIGN_UP_URL = "https://authenticator.cursor.sh/sign-up"
|
||
# Cursor设置页面URL
|
||
SETTINGS_URL = "https://www.cursor.com/settings"
|
||
|
||
# ===== 邮箱配置 =====
|
||
# 邮箱验证码获取方式
|
||
EMAIL_CODE_TYPE = os.getenv("EMAIL_CODE_TYPE", "AUTO")
|
||
# 邮箱类型
|
||
EMAIL_TYPE = os.getenv("EMAIL_TYPE", "tempemail")
|
||
# 临时邮箱用户名
|
||
EMAIL_USERNAME = os.getenv("EMAIL_USERNAME", "xxx")
|
||
# 临时邮箱域名
|
||
EMAIL_DOMAIN = os.getenv("EMAIL_DOMAIN", "mailto.plus")
|
||
# 临时邮箱PIN码(如果需要)
|
||
EMAIL_PIN = os.getenv("EMAIL_PIN", "")
|
||
# 可用于注册的邮箱域名列表(逗号分隔)
|
||
EMAIL_DOMAINS = [
|
||
domain.strip() for domain in os.getenv("EMAIL_DOMAINS", "xxx.xx").split(",")
|
||
]
|
||
# ZMail API地址
|
||
EMAIL_API = os.getenv("EMAIL_API", "")
|
||
# 是否启用邮箱API代理
|
||
EMAIL_PROXY_ENABLED = os.getenv("EMAIL_PROXY_ENABLED", "false").lower() == "true"
|
||
# 邮箱API代理地址
|
||
EMAIL_PROXY_ADDRESS = os.getenv("EMAIL_PROXY_ADDRESS", "")
|
||
# 邮件验证码获取最大重试次数
|
||
EMAIL_VERIFICATION_RETRIES = int(os.getenv("EMAIL_VERIFICATION_RETRIES", 5))
|
||
# 邮件验证码获取重试间隔(秒)
|
||
EMAIL_VERIFICATION_WAIT = int(os.getenv("EMAIL_VERIFICATION_WAIT", 5))
|
||
|
||
# ===== 数据库配置 =====
|
||
# 数据库文件名
|
||
DB_NAME = "accounts.db"
|
||
# 根据操作系统生成适当的数据库文件路径
|
||
if os.name == "nt": # Windows
|
||
DB_PATH = os.path.join(os.getcwd(), DB_NAME)
|
||
DATABASE_URL = f"sqlite+aiosqlite:///{DB_PATH}"
|
||
else: # Linux/Unix
|
||
DB_PATH = os.path.join("/app", DB_NAME)
|
||
DATABASE_URL = f"sqlite+aiosqlite:{DB_PATH}"
|
||
|
||
# 允许通过环境变量覆盖默认的数据库URL
|
||
DATABASE_URL = os.getenv("DATABASE_URL", DATABASE_URL)
|
||
|
||
# ===== Cursor main.js 配置 =====
|
||
# Cursor 主文件路径
|
||
CURSOR_PATH = os.getenv("CURSOR_PATH", None)
|
||
|
||
# ===== 代理配置 =====
|
||
# 是否启用代理
|
||
USE_PROXY = os.getenv("USE_PROXY", "False").lower() == "true"
|
||
# 代理类型
|
||
PROXY_TYPE = os.getenv("PROXY_TYPE", "http")
|
||
# 代理服务器地址
|
||
PROXY_HOST = os.getenv("PROXY_HOST", "")
|
||
# 代理服务器端口
|
||
PROXY_PORT = os.getenv("PROXY_PORT", "")
|
||
# 代理服务器用户名
|
||
PROXY_USERNAME = os.getenv("PROXY_USERNAME", "")
|
||
# 代理服务器密码
|
||
PROXY_PASSWORD = os.getenv("PROXY_PASSWORD", "")
|
||
# 代理服务器超时时间
|
||
PROXY_TIMEOUT = int(os.getenv("PROXY_TIMEOUT", "10")) |