// 业务配置(可含注释与尾逗号)。复制为 config.jsonc 后按需修改。 // 敏感凭据请放同目录 secrets.json(见 secrets.example.json); // `python app.py auth` 只回写 secrets.json,不会冲掉本文件注释。 // // 兼容:仍可读旧版单一 config.json(凭据可内嵌);若存在 secrets.json 则凭据以它为准。 { // 可选:自定义凭据路径(相对本文件目录或绝对路径)。默认 secrets.json // "secrets_path": "secrets.json", // favsort 代发归属等(非密钥) "overrides": {}, "sleep": { "min": 2.5, "max": 7.5, "long_every_min": 20, "long_every_max": 40, "long_min": 30, "long_max": 90, "retry_wait": 45, }, "telegram": { "enabled": false, // bot_token / chat_id 建议写在 secrets.json }, "web": { "host": "127.0.0.1", "port": 8080, // auth_token 建议写在 secrets.json "public_base_url": "", "track": { "enabled": true, "header_order": ["X-Real-IP", "X-Forwarded-For"], "trusted_proxies": [ "127.0.0.0/8", "::1/128", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "169.254.0.0/16", "fc00::/7", "fe80::/10", ], "count_bots": false, "flush_seconds": 60, "keep_days": 180, "max_hits_per_ip_path_per_day": 0, }, }, "storage": { "database_path": "data/app.db", "backup_dir": "data/backup", "backup_keep_days": 14, }, "folders": [ { "year": 2025, "media_id": 4451053851, "title": "咻咻满-reaction-2025" }, { "year": 2026, "media_id": 3700023351, "title": "咻咻满 reaction 合集" }, ], "track_fans": [37754047], "up_blacklist_seed": [ 261052419, 1908537643, 1701121088, 542262, 376316958, 145178393, 66389997, 293976264, 3026109, ], // 日更默认 23:15 落盘;午夜 seed_at 用昨收盘克隆当日壳(不推进 completed) "schedule": { "discover_minutes": 60, "snapshot_at": "23:15", "seed_at": "00:00", "candidate_ttl_days": 7, "recent_snapshot_minutes": 60, "recent_video_days": 2, }, "discover": { "keywords": ["咻咻满"], "pages": 3, "window_days": 7, "candidate_min_score": 4, }, "notify": { "min_score": 4, "max_items_per_message": 10, }, "classify": { "require_title": "咻咻满", "self_mid": 37754047, "reaction": ["re", "reaction", "反应"], "charge": ["加急", "特急", "充电", "专场"], "weak_positive": ["双人", "路人", "第一次", "首次"], "negative": ["歌切", "切片", "搬运", "完整版", "录播", "录像"], "date_negative": true, "duration_boost": { "gt_30min": 1, "gt_60min": 2 }, }, "heat_weights": { "view": 0.3, "like": 0.2, "coin": 0.2, "favorite": 0.15, "share": 0.1, "reply": 0.03, "danmaku": 0.02, }, "analytics": { "min_duration_seconds": 600, "maturity_days": 2, "min_view_for_ranking": 2000, "video_shrink_minutes": 60, "shrink_minutes": null, // "auto" = 7 日有数据用 7,否则 1 "home_growth_days": "auto", }, }