feat(analytics): lower maturity window to 2 days and reword about page

This commit is contained in:
kairee committed 2026-11-01 12:07:47 +08:00
1 parent b405fc5fd7
commit e7034cfb84
11 files changed
+66 -28

No files matched your search

+1 -1
View File
@@ -132,7 +132,7 @@ def test_analytics_defaults_and_validation():
write(path, base_config())
cfg = load_config(path, env={})
assert cfg.analytics.min_duration_seconds == 600
assert cfg.analytics.maturity_days == 14
assert cfg.analytics.maturity_days == 2
assert cfg.analytics.min_view_for_efficiency == 0
assert cfg.analytics.shrink_minutes is None
+15 -2
View File
@@ -12,6 +12,7 @@ sys.stdout.reconfigure(encoding="utf-8")
from reaction_board.config import ConfigStore # noqa: E402
from reaction_board.database import Database # noqa: E402
from reaction_board.repository import Repository # noqa: E402
from reaction_board.timeutil import day_bounds # noqa: E402
from reaction_board.web.cache import DASHBOARD_CACHE # noqa: E402
from reaction_board.web.queries import DashboardQueries # noqa: E402
from tests.web_fixtures import DATES, build_db, write_config # noqa: E402
@@ -367,7 +368,7 @@ def test_duration_efficiency_queries():
assert first["content_hours"] == 2.0
assert first["efficiency"] == 2600.0
assert efficiency["duration_filter"] == {
"min_duration_seconds": 600, "maturity_days": 14, "min_view": 0,
"min_duration_seconds": 600, "maturity_days": 2, "min_view": 0,
}
interaction = q.list_videos(sort="interaction_efficiency")
@@ -393,6 +394,17 @@ def test_duration_efficiency_queries():
DASHBOARD_CACHE.clear()
missing = q.list_videos(sort="efficiency")
assert [item["aid"] for item in missing["items"]] == [102]
# 发布未满 2 天的视频不进入效率榜
db.write(lambda conn: conn.execute(
"UPDATE video SET duration = 7200, pubdate = ? WHERE aid = 102",
(int(day_bounds("2026-10-30")[0]),),
))
DASHBOARD_CACHE.clear()
fresh = q.list_videos(sort="efficiency")
assert fresh["items"] == []
assert fresh["available"] is False
assert "发布满 2 天" in fresh["reason"]
finally:
db.close()
@@ -405,10 +417,11 @@ def test_about_payload():
assert about["data_date"] == DATES[-1]
assert about["snapshot_days"] == 3
assert about["snapshot_first_date"] == DATES[0]
assert about["fans_start_date"] == DATES[0]
assert about["schema_version"] == 4
assert about["analytics"] == {
"min_duration_seconds": 600,
"maturity_days": 14,
"maturity_days": 2,
"min_view_for_efficiency": 0,
"shrink_minutes": None,
}