113 lines
4.1 KiB
Python
Raw Permalink Normal View History

2025-05-11 23:06:57 +08:00
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"))