Commit Graph
40 Commits
Author SHA1 Message Date
bot-ci 25cdea5287 fix: default seed_at to 00:00 (HH:MM)
Keep daily tasks next_run=0 startup catch-up; only move midnight
seed schedule default from 00:01 to 00:00 across config/docs/tests.
2026-11-02 12:44:40 +08:00
bot-ci 8a9cb21408 feat: EOD 23:15 seal + midnight seed shell for video/fans
Move daily snapshot/fans to 23:15 and add 00:01 seed that clones
last_completed ok=1 rows into today without advancing completed.
Evening runs force through seed markers; growth previous is per-aid
adjacent. Home shows short-update clock + 全站数据 date, and 收录视频
counts.
2026-11-02 12:38:55 +08:00
kairee 4a9c37f2f3 feat(telegram): candidate list/delete/clear commands
私聊新增 /candidate [页码](待决策列表)、/candi_del(标题按钮逐条删除,删后原地重建键盘、可翻页连续删)、/candi_clear(全部/待决策/取消)。重构 handle_callback 为前缀分派(cdel/cpage/cclr,保留 add/ign/blk/fav);repository 加 list_pending_candidates/delete_all_candidates;LibraryService 加 pending_candidates/delete_candidate/clear_candidates 并刷看板缓存。
2026-11-01 20:45:57 +08:00
kairee c6790f0ba1 feat(classify): zero title-only titles, penalize <10min, add discover.candidate_min_score
标题仅含 require_title 不再计分(必须咻咻满+任一正向词);时长 <10 分钟 -1(时长未知不扣);新增 discover.candidate_min_score(默认=notify.min_score)控制是否进候选池,只过标题关的不再入池。库内 796 条:仅过标题关的 8 条从 1/3 分降为 0/-1,其余不变。
2026-11-01 20:18:43 +08:00
kairee aa9aa7c589 feat(classify): gate loose re token, non-linear negatives, drop 纯享/转场
reaction 词表用 re|reaction|反应 但须与咻咻满或充电同现,兼容 reactio/reation 等拼写又避免通用词加分;负向改为每词 -2 且命中多条额外叠加(k*(k-1)),日期 -4;纯享(误伤纯享受)移出负向,转场移出正向。库内 796 条有效视频复测:线以下由 14 降至 8。
2026-11-01 19:18:20 +08:00
kairee 337e379514 feat(classify): super-linear positive weighting by hit count
正向改为按命中次数 n(require_title + reaction + charge + weak)做平方加权,使多信号同现的真 reaction 不被单个负向词打穿(1+1>2、1+1+1>5);标题不含 require_title 直接 0 分。库内 796 条有效视频复测:线以下误伤由 47 降至 14。
2026-11-01 19:08:59 +08:00
kairee 742c67a1c3 feat(classify): tighten scoring with reaction co-occurrence and date negatives
强正向 reaction 需标题同时含 require_title;移除听/看等宽泛词,新增弱正向组;charge 命中>=2 记+3、==1 记+1;负向补充录播/录像并新增标题带日期强负向;时长仅在已命中 reaction/charge 时加权;discover 关键词改为单个咻咻满、pages=3、window_days=7,notify.min_score=4;同步示例配置、project.md/README 与相关测试。
2026-11-01 19:00:48 +08:00
kairee 3cb9b92361 feat(web): move candidates/system nav to topbar, free mobile bottom nav 2026-11-01 17:43:42 +08:00
kairee 85b0f625a9 feat(web): clean public home header (data date, 7d fans, video count), drop status panel 2026-11-01 17:38:30 +08:00
kairee 14a4cab48b feat(web): home media grid 2-up mobile / 3-up PC, 6 items, drop folder panel 2026-11-01 17:30:52 +08:00
kairee 7907216c1b feat(web): add interactions-per-hour stat to up page 2026-11-01 17:09:25 +08:00
kairee 84ce1e41e8 feat(web): visit 204 response, up page header/sort, trim system page 2026-11-01 17:06:26 +08:00
kairee ff5e05998a docs(deploy): document PV/UV stats and real client IP via nginx realip 2026-11-01 15:40:22 +08:00
kairee 2ff3e7952b feat(web): up avatars, follower count, and dedupe views/avg secondary 2026-11-01 14:34:23 +08:00
kairee 1ed3746f4b feat(web): clickable home stats, drop recent-ingest panel, rename watch link 2026-11-01 14:19:27 +08:00
kairee 0d6e62f9ee docs: decouple favorites, manual ingest, write-for-sort-only 2026-11-01 14:09:09 +08:00
kairee 98cf42a113 style(web): cap ranking search box at 320px 2026-11-01 12:59:38 +08:00
kairee d00fcd5c38 feat(web): inline toolbar with label sort, compact time, icon search 2026-11-01 12:56:37 +08:00
kairee 9be7d1cab2 feat(web): dropdown sort and time filters with year support 2026-11-01 12:45:40 +08:00
kairee bc3bef0743 fix(analytics): shrink video efficiency and gate noisy boards by views 2026-11-01 12:25:27 +08:00
kairee e7034cfb84 feat(analytics): lower maturity window to 2 days and reword about page 2026-11-01 12:07:47 +08:00
kairee b405fc5fd7 docs: record round 9 verification results 2026-11-01 11:43:44 +08:00
kairee cb9e8e031b docs: document duration efficiency, up follower snapshot and nav split 2026-11-01 11:36:34 +08:00
kairee 707ed7d7d7 docs: document dashboard cache 2026-11-01 03:27:50 +08:00
kairee 91aa3e1f95 docs: describe partial page protection 2026-11-01 03:09:21 +08:00
kairee e9fbbc1650 docs: document fan range modes and delta column 2026-11-01 02:36:48 +08:00
kairee dd6b09807d docs: document csv fan import 2026-11-01 02:23:10 +08:00
kairee 58df38814a docs: describe fan recent window and cumulative range 2026-11-01 02:14:10 +08:00
kairee 4bb3d3bef5 docs: document path routing and in-place filter updates 2026-11-01 01:55:37 +08:00
kairee 1b08854b25 fix(web): revalidate app assets and rename compose example 2026-11-01 01:42:26 +08:00
kairee fcca14c0f9 docs: document docker deployment workflow 2026-11-01 00:52:06 +08:00
kairee 7674fc2c47 docs: update ranking labels, palette and export removal 2026-11-01 00:37:28 +08:00
kairee 6a053bdfe8 docs: document UP ranking defaults and fan history import 2026-11-01 00:06:59 +08:00
kairee d18ebbfb2f docs: document read-only dashboard and preview workflow 2026-10-31 23:47:02 +08:00
kairee d971e718e9 feat(p3): add discovery, telegram notifications, and one-click favorites
Implement WBI video search with legacy fallback, classification scoring, candidate pool, permanent seen-aid dedupe, blacklist filtering, and batched Telegram notifications. Add write client for fav deal/sort, target-folder selection, insertion position calculation, read-back verification, fav_action locking, retry on failure, ignore and blacklist actions. Wire discovery, candidate cleanup, Telegram long polling, and new discover/candidates CLI commands into the scheduler. Add migration v3 for candidate duration and index stats.
2026-10-31 21:23:12 +08:00
kairee 6a21b5d905 fix: close data integrity and hot-reload review findings
Backfill same-day snapshots for newly added or restored videos, preserve successful fan snapshots on resume, persist incomplete state before forced re-runs, and split collection completion from backup completion so failed backups can retry without API calls. Reject missing data payloads instead of treating them as empty folders, guard against mass-unfav on suspicious empty remote folders, rebuild Bilibili clients when credentials change, recompute primary folder ownership from active relations with per-folder fav_time, preserve original titles for dropped invalid videos, poll config every 60 seconds, and fix favsort verify interval and mixed resource types.
2026-10-31 20:58:36 +08:00
kairee 178ab64b18 feat(auth): separate read and write bilibili accounts 2026-10-31 20:01:21 +08:00
kairee 5c2ab7b187 feat(p1): add daily snapshots and fan tracking
Implement P1: seven-metric view snapshots, relation/stat fan snapshots, failure placeholders, resume by daily completion markers, Cookie login warnings, daily SQLite backups, Shanghai daily scheduling, and CLI snapshot/auth-check commands. Real read-only run captured 795/795 videos successfully over 1124s with a verified daily backup.
2026-10-31 19:19:24 +08:00
kairee ee289bfa56 docs: mark P0 as implemented in project status 2026-10-31 18:09:03 +08:00
kairee e2cdf997af feat(p0): add favorite folder sync and sqlite data foundation
Implement P0 of the reaction dashboard: config loading with hot reload, SQLite migrations with backups, single-writer queue, read-only Bilibili fav client, folder import/diff sync, invalid-resource handling, blacklist seed, scheduler, and JSON redacted logging. Includes offline unit and transport-level contract tests; all existing and new tests pass.
2026-10-31 18:08:33 +08:00