Commit Graph
107 Commits
Author SHA1 Message Date
kairee 4adb54abe1 docs(config): add analytics section to example configs 2026-11-01 11:38:20 +08:00
kairee b017af7593 docs: update readme for video/up split and follower backfill 2026-11-01 11:37:40 +08:00
kairee cb9e8e031b docs: document duration efficiency, up follower snapshot and nav split 2026-11-01 11:36:34 +08:00
kairee c0b0286395 feat(web): split video and up rankings and add about page 2026-11-01 11:33:15 +08:00
kairee 5a656d42a8 feat(web): add duration efficiency rankings and about payload 2026-11-01 11:21:42 +08:00
kairee 519fc39fca feat(up): capture follower snapshots at ingest and backfill history 2026-11-01 11:18:06 +08:00
kairee 4942d1d161 feat(db): add video pages and up follower snapshot schema 2026-11-01 11:14:36 +08:00
kairee 707ed7d7d7 docs: document dashboard cache 2026-11-01 03:27:50 +08:00
kairee 9fd277c05f feat(web): cache dashboard aggregations with version invalidation 2026-11-01 03:27:49 +08:00
kairee 91aa3e1f95 docs: describe partial page protection 2026-11-01 03:09:21 +08:00
kairee 6aefe9ce87 feat(web): require login only for candidates and system 2026-11-01 03:09:21 +08:00
kairee 55c40db047 fix(tools): resolve config path inside container 2026-11-01 02:58:56 +08:00
kairee b0aa919e18 build: include tools in image for server-side imports 2026-11-01 02:55:31 +08:00
kairee 028b3337b0 fix(web): keep fan range picker open until apply 2026-11-01 02:47:31 +08:00
kairee 917a93ab92 feat(web): use a range calendar picker for fan dates 2026-11-01 02:44:33 +08:00
kairee e9fbbc1650 docs: document fan range modes and delta column 2026-11-01 02:36:48 +08:00
kairee 274eccba93 feat(web): add fan date range modes and delta column 2026-11-01 02:36:48 +08:00
kairee 998d0fd0c0 fix(tools): guard csv replace against newer fan records 2026-11-01 02:25:18 +08:00
kairee dd6b09807d docs: document csv fan import 2026-11-01 02:23:10 +08:00
kairee c4c9c0b038 feat(tools): replace xxm fan import with bilibili csv 2026-11-01 02:23:09 +08:00
kairee 58df38814a docs: describe fan recent window and cumulative range 2026-11-01 02:14:10 +08:00
kairee d8e9a7b0f0 feat(web): show cumulative fan range and limit recent records 2026-11-01 02:14:10 +08:00
kairee b6a9f598b5 fix(web): avoid skeleton flicker and cache overview while filtering 2026-11-01 02:02:26 +08:00
kairee 4bb3d3bef5 docs: document path routing and in-place filter updates 2026-11-01 01:55:37 +08:00
kairee 52a8d90c47 feat(web): use history routing and preserve scroll on filter changes 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 eff4b0149d fix(web): show exact trend values and integer axis ticks 2026-11-01 01:37:55 +08:00
kairee fcca14c0f9 docs: document docker deployment workflow 2026-11-01 00:52:06 +08:00
kairee b9d82e54c7 feat(deploy): add Dockerfile and compose for server sync 2026-11-01 00:51:57 +08:00
kairee 7674fc2c47 docs: update ranking labels, palette and export removal 2026-11-01 00:37:28 +08:00
kairee c2ef998720 feat(web): refresh palette, simplify ranking toolbar and drop export 2026-11-01 00:37:20 +08:00
kairee 6a053bdfe8 docs: document UP ranking defaults and fan history import 2026-11-01 00:06:59 +08:00
kairee ff101803cd feat(tools): import 90-day fan history from public data source 2026-11-01 00:06:52 +08:00
kairee f9a5478800 fix(web): fix UP card layout and fan delta semantics 2026-11-01 00:06:43 +08:00
kairee 7fcd1db987 fix(web): count initial import from tracked videos 2026-10-31 23:54:56 +08:00
kairee 456e06f105 chore(web): finalize scroll behavior and preview assertions 2026-10-31 23:54:01 +08:00
kairee 40cdfaf3e5 docs: add analytics and preview tool to structure 2026-10-31 23:51:53 +08:00
kairee c745d889e7 fix(tools): derive preview task counts from source data 2026-10-31 23:51:31 +08:00
kairee 60d7b0f24f fix(web): center active filters and compact mobile cards 2026-10-31 23:50:19 +08:00
kairee d18ebbfb2f docs: document read-only dashboard and preview workflow 2026-10-31 23:47:02 +08:00
kairee cbba405271 feat(web): add mobile-first read-only dashboard frontend 2026-10-31 23:46:55 +08:00
kairee 257fbe009b fix(web): align trend ranges, next runs and preview task records 2026-10-31 23:46:49 +08:00
kairee 19572171b8 feat(web): add read-only dashboard server and query layer 2026-10-31 23:13:54 +08:00
kairee e7cae035e0 fix(tools): backfill fan counts in chronological order 2026-10-31 23:10:54 +08:00
kairee 94ee9aefd1 feat(tools): add deterministic preview database seeder 2026-10-31 23:05:43 +08:00
kairee 8ffac5103f feat(analytics): add heat, growth and interaction metrics 2026-10-31 23:03:20 +08:00
kairee 8a87ebfb7c refactor(favsort): send bilibili requests through httpx
Reuse a pooled httpx client for favsort GET and POST requests, share the raw-request-derived browser headers, and add folder-specific referers for ids, infos and sort. Add transport tests for header parity and anonymous-to-authenticated fallback.
2026-10-31 22:36:48 +08:00
kairee 5b22ed1c5d feat(http): use httpx with pooled connections and browser headers
Add httpx and route Bilibili and Telegram requests through pooled clients with keepalive and explicit timeouts. Align Bilibili headers with data/raw-request.txt: Chrome 155 UA, sec-ch-ua, space.bilibili.com origin, folder-specific referer, and priority header. Close replaced clients when credentials change. Add transport contract tests and live read-only validation for nav, folder sync, WBI search, and Telegram getUpdates.
2026-10-31 22:28:32 +08:00
kairee 71a0e8c1d6 fix(telegram): back off on transient polling failures
Give getUpdates a wider HTTP timeout than the long-poll window, log transient SSL/network disconnects as warnings, apply exponential backoff with recovery logging, and only escalate to error after five consecutive failures.
2026-10-31 22:01:05 +08:00
kairee 2d42d8ed55 fix(telegram): handle expired callback queries gracefully
Parse Telegram HTTP error bodies so the real description is logged, fall back to a normal message when answerCallbackQuery rejects an expired callback ID, and remove inline buttons after a successful action.
2026-10-31 21:59:04 +08:00