{# app_url:Jinja 宏,不依赖 Python 往 context 注入;前缀来自中间件 request.state.web_url_prefix(WEB_URL_PREFIX)或 ASGI root_path #} {% macro app_url(path) -%} {%- set _p = path if path.startswith('/') else '/' ~ path -%} {%- set pre = (request.state.web_url_prefix | default('', true)) | trim -%} {%- if not pre -%} {%- set pre = request.scope.get('root_path', '') | trim -%} {%- endif -%} {{- pre ~ _p if pre else _p -}} {%- endmacro %}
数据概览 · 本地 SQLite 聚合(与是否在线无关)
区间内按天汇总(所有已抓取入库的频道)
正文包含任一关键词即计入(非 NLP 分类)
横轴为消息条数,纵轴为频道显示名(来自 state 中的标题 / @用户名)