feat: switch config to JSONC + split secrets.json

Load business config as JSONC (comments + trailing commas) via an
in-repo stripper then stdlib json — no new deps. Default path prefers
config.jsonc, falls back to legacy config.json. Auth write-back targets
only sibling secrets.json so JSONC comments are never wiped; secrets
overlay merges on load. Examples, compose, Docker, docs, favsort and
tools all share the same loader. Phase A only — no DB settings migration.
This commit was merged in pull request #4.
This commit is contained in:
bot-ci committed 2026-11-02 12:58:20 +08:00
1 parent b4f0f45c4e
commit 8e7ead1669
21 files changed
+652 -182

No files matched your search

+112
View File
@@ -0,0 +1,112 @@
// Docker / 服务器业务配置。复制为 config.jsonc,与 secrets.json 一并挂到 /config。
// 敏感项见 secrets.example.json → secrets.json;auth 只回写 secrets.json。
{
"telegram": {
"enabled": false,
},
"web": {
"host": "0.0.0.0",
"port": 8080,
"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,
],
"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,
"home_growth_days": "auto",
},
}