Database (3→6 tables): - hotspot_source: support api/browser/crawler types with type-specific fields - hotspot_schedule: cron/interval daemon config per source - hotspot_fetch_log: per-run audit trail (status/duration/items/errors) - hotspot_item: add heat_velocity, engagement/comment/share counts, sentiment - hotspot_analysis: 5-dimension scoring (time/heat/content/propagation/audience) - hotspot_alert: alert rules (heat threshold/velocity/sentiment triggers) Fetch engine (3 modes): - API: GET/POST + headers + Bearer auth + JSON extraction - Browser: HTML title/link extraction + og:title fallback - Crawler: recursive with depth/domain allowlist/link following Analysis engine: - Exponential decay model (7-day half-life) - Auto-classify: emerging→rising→hot→cooling→expired - 5-dimension scoring with detail JSON per dimension Dashboard: 6 tabs + 7 stat cards + workflow guide Permission paths: 42 paths registered (6 tables × 7 CRUD ops)
17 lines
493 B
JSON
17 lines
493 B
JSON
{
|
|
"models_dir": "${HOME}$/py/sage/models",
|
|
"output_dir": "${HOME}$/py/sage/wwwroot/_a/hotspot_item",
|
|
"dbname": "sage",
|
|
"tblname": "hotspot_item",
|
|
"title": "热点条目",
|
|
"params": {
|
|
"sortby": "heat_score desc",
|
|
"browserfields": {
|
|
"exclouded": ["id", "content"],
|
|
"cwidth": {"title": 300, "summary": 400, "url": 200}
|
|
},
|
|
"editexclouded": ["id", "first_seen", "last_updated"],
|
|
"record_toolbar": null
|
|
}
|
|
}
|