# Telegram Userbot 配置 import os from pathlib import Path _env_file = Path(__file__).parent / ".env" if _env_file.exists(): for line in _env_file.read_text().splitlines(): line = line.strip() if line and not line.startswith("#") and "=" in line: key, _, value = line.partition("=") os.environ.setdefault(key.strip(), value.strip()) # Telegram API # 默认使用 Telegram Desktop 公开凭证 (开源在 GitHub) # 也可在 .env 中覆盖为自己申请的凭证 API_ID = int(os.getenv("API_ID", "2040")) API_HASH = os.getenv("API_HASH", "b18441a1ff607e10a989891a5462e627") # 数据库 DATABASE_PATH = os.getenv("DATABASE_PATH", "data.db") # 搜索结果条数 PAGE_SIZE = int(os.getenv("PAGE_SIZE", "10")) # 历史消息拉取条数 (加入群时自动拉取) HISTORY_LIMIT = int(os.getenv("HISTORY_LIMIT", "500")) # ========== 多账号 & 代理配置 ========== # 默认代理 (可选,格式: socks5://user:pass@host:port 或 http://host:port) DEFAULT_PROXY_TYPE = os.getenv("DEFAULT_PROXY_TYPE", "") # socks5 / http / "" DEFAULT_PROXY_HOST = os.getenv("DEFAULT_PROXY_HOST", "") DEFAULT_PROXY_PORT = int(os.getenv("DEFAULT_PROXY_PORT", "0")) DEFAULT_PROXY_USERNAME = os.getenv("DEFAULT_PROXY_USERNAME", "") DEFAULT_PROXY_PASSWORD = os.getenv("DEFAULT_PROXY_PASSWORD", "") # 代理模式: "fixed" 固定代理 / "pool" 代理池轮换 PROXY_MODE = os.getenv("PROXY_MODE", "fixed") # ========== 风控配置 ========== # 每个账号最大监控群数 (TG限制约500,留余量) MAX_CHATS_PER_ACCOUNT = int(os.getenv("MAX_CHATS_PER_ACCOUNT", "400")) # 批量加群间隔 (秒) — 每加一个群等多久 JOIN_INTERVAL_MIN = int(os.getenv("JOIN_INTERVAL_MIN", "30")) JOIN_INTERVAL_MAX = int(os.getenv("JOIN_INTERVAL_MAX", "60")) # 批量加群每批数量 — 加完一批后休息更久 JOIN_BATCH_SIZE = int(os.getenv("JOIN_BATCH_SIZE", "5")) # 批量加群批次间休息 (秒) JOIN_BATCH_REST_MIN = int(os.getenv("JOIN_BATCH_REST_MIN", "300")) JOIN_BATCH_REST_MAX = int(os.getenv("JOIN_BATCH_REST_MAX", "600")) # FloodWait 额外等待倍率 (遇到 FloodWait 时,等待时间 = TG要求 * 倍率) FLOOD_WAIT_MULTIPLIER = float(os.getenv("FLOOD_WAIT_MULTIPLIER", "1.5"))