✨ feat(trendradar): add trendradar application version 3.1.1
- add complete application configuration with config.yaml for trend monitoring settings - include frequency_words.txt with predefined keywords for content filtering - add docker-compose.yml for container deployment with 1panel network support - provide comprehensive documentation in both chinese and english - add data.yml for application metadata and form configuration - include application logo
This commit is contained in:
parent
5b225d4491
commit
3c290bcf6c
|
|
@ -0,0 +1,116 @@
|
||||||
|
app:
|
||||||
|
version_check_url: "https://raw.githubusercontent.com/sansan0/TrendRadar/refs/heads/master/version"
|
||||||
|
show_version_update: true # 控制显示版本更新提示,如果 false,则不接受新版本提示
|
||||||
|
|
||||||
|
crawler:
|
||||||
|
request_interval: 1000 # 请求间隔(毫秒)
|
||||||
|
enable_crawler: true # 是否启用爬取新闻功能,如果 false,则直接停止程序
|
||||||
|
use_proxy: false # 是否启用代理,false 时为关闭
|
||||||
|
default_proxy: "http://127.0.0.1:10086"
|
||||||
|
|
||||||
|
# 🔸 daily(当日汇总模式)
|
||||||
|
# • 推送时机:按时推送(默认每小时推送一次)
|
||||||
|
# • 显示内容:当日所有匹配新闻 + 新增新闻区域
|
||||||
|
# • 适用场景:日报总结、全面了解当日热点趋势
|
||||||
|
#
|
||||||
|
# 🔸 current(当前榜单模式)
|
||||||
|
# • 推送时机:按时推送(默认每小时推送一次)
|
||||||
|
# • 显示内容:当前榜单匹配新闻 + 新增新闻区域
|
||||||
|
# • 适用场景:实时热点追踪、了解当前最火的内容
|
||||||
|
#
|
||||||
|
# 🔸 incremental(增量监控模式)
|
||||||
|
# • 推送时机:有新增才推送
|
||||||
|
# • 显示内容:新出现的匹配频率词新闻
|
||||||
|
# • 适用场景:避免重复信息干扰
|
||||||
|
|
||||||
|
# 推送模式选择
|
||||||
|
report:
|
||||||
|
mode: "daily" # 可选: "daily"|"incremental"|"current"
|
||||||
|
rank_threshold: 5 # 排名高亮阈值
|
||||||
|
|
||||||
|
notification:
|
||||||
|
enable_notification: true # 是否启用通知功能,如果 false,则不发送手机通知
|
||||||
|
message_batch_size: 4000 # 消息分批大小(字节)(这个配置别动)
|
||||||
|
dingtalk_batch_size: 20000 # 钉钉消息分批大小(字节)(这个配置也别动)
|
||||||
|
feishu_batch_size: 29000 # 飞书消息分批大小(字节)
|
||||||
|
batch_send_interval: 3 # 批次发送间隔(秒)
|
||||||
|
feishu_message_separator: "━━━━━━━━━━━━━━━━━━━" # feishu 消息分割线
|
||||||
|
|
||||||
|
# 🕐 推送时间窗口控制(可选功能)
|
||||||
|
# 用途:限制推送的时间范围,避免非工作时间打扰
|
||||||
|
# 适用场景:
|
||||||
|
# - 只想在工作日白天接收推送(如 09:00-18:00)
|
||||||
|
# - 希望在晚上固定时间收到汇总(如 20:00-22:00)
|
||||||
|
push_window:
|
||||||
|
enabled: false # 是否启用推送时间窗口控制,默认关闭
|
||||||
|
# 注意:GitHub Actions 执行时间不稳定,时间范围建议至少留足 2 小时
|
||||||
|
# 如果想要精准的定时推送,建议使用 Docker 部署在个人服务器上
|
||||||
|
time_range:
|
||||||
|
start: "20:00" # 推送时间窗口开始(北京时间)
|
||||||
|
end: "22:00" # 推送时间窗口结束(北京时间)
|
||||||
|
once_per_day: true # 每天在时间窗口内只推送一次,如果 false,则窗口内每次执行都推送
|
||||||
|
push_record_retention_days: 7 # 推送记录保留天数
|
||||||
|
|
||||||
|
# ⚠️⚠️⚠️ 重要安全警告 / IMPORTANT SECURITY WARNING ⚠️⚠️⚠️
|
||||||
|
#
|
||||||
|
# 🔴 请务必妥善保管好 webhooks,不要公开!!!
|
||||||
|
# 🔴 如果你以 fork 的方式将本项目部署在 GitHub 上,请勿在下面填写任何 webhooks
|
||||||
|
# 🔴 而是将 webhooks 填入 GitHub Secret(Settings → Secrets and variables → Actions)
|
||||||
|
# 🔴 否则:
|
||||||
|
# - 轻则:手机上收到大量垃圾广告推送
|
||||||
|
# - 重则:webhook 被滥用造成严重安全隐患(如恶意消息轰炸、钓鱼链接等)
|
||||||
|
#
|
||||||
|
# 🔴 NEVER expose webhooks publicly!!!
|
||||||
|
# 🔴 If deploying via GitHub fork, DO NOT fill webhooks below
|
||||||
|
# 🔴 Instead, add them to GitHub Secrets (Settings → Secrets and variables → Actions)
|
||||||
|
# 🔴 Consequences of exposure:
|
||||||
|
# - Minor: Spam notifications flooding your devices
|
||||||
|
# - Severe: Webhook abuse leading to security incidents (malicious messages, phishing links, etc.)
|
||||||
|
#
|
||||||
|
webhooks:
|
||||||
|
feishu_url: "" # 飞书机器人的 webhook URL
|
||||||
|
dingtalk_url: "" # 钉钉机器人的 webhook URL
|
||||||
|
wework_url: "" # 企业微信机器人的 webhook URL
|
||||||
|
wework_msg_type: "markdown" # 企业微信消息类型:markdown(群机器人) 或 text(个人微信应用)
|
||||||
|
telegram_bot_token: "" # Telegram Bot Token
|
||||||
|
telegram_chat_id: "" # Telegram Chat ID
|
||||||
|
email_from: "" # 发件人邮箱地址
|
||||||
|
email_password: "" # 发件人邮箱密码或授权码
|
||||||
|
email_to: "" # 收件人邮箱地址,多个收件人用逗号分隔
|
||||||
|
email_smtp_server: "" # SMTP服务器地址(可选,留空自动识别)
|
||||||
|
email_smtp_port: "" # SMTP端口(可选,留空自动识别)
|
||||||
|
ntfy_server_url: "https://ntfy.sh" # ntfy服务器地址,默认使用公共服务,可改为自托管地址
|
||||||
|
ntfy_topic: "" # ntfy主题名称
|
||||||
|
ntfy_token: "" # ntfy访问令牌(可选,用于私有主题)
|
||||||
|
|
||||||
|
# 用于让关注度更高的新闻在更前面显示,即用算法重新组合不同平台的热搜排序形成你侧重的热搜,合起来是 1 就行
|
||||||
|
weight:
|
||||||
|
rank_weight: 0.6 # 排名权重
|
||||||
|
frequency_weight: 0.3 # 频次权重
|
||||||
|
hotness_weight: 0.1 # 热度权重
|
||||||
|
|
||||||
|
# name 可以定义任意名称,只具有显示作用,即使项目运行了几天后,忽然改掉 name 也不会影响代码的正常运行
|
||||||
|
# references: https://github.com/sansan0/TrendRadar/issues/95
|
||||||
|
platforms:
|
||||||
|
- id: "toutiao"
|
||||||
|
name: "今日头条"
|
||||||
|
- id: "baidu"
|
||||||
|
name: "百度热搜"
|
||||||
|
- id: "wallstreetcn-hot"
|
||||||
|
name: "华尔街见闻"
|
||||||
|
- id: "thepaper"
|
||||||
|
name: "澎湃新闻"
|
||||||
|
- id: "bilibili-hot-search"
|
||||||
|
name: "bilibili 热搜"
|
||||||
|
- id: "cls-hot"
|
||||||
|
name: "财联社热门"
|
||||||
|
- id: "ifeng"
|
||||||
|
name: "凤凰网"
|
||||||
|
- id: "tieba"
|
||||||
|
name: "贴吧"
|
||||||
|
- id: "weibo"
|
||||||
|
name: "微博"
|
||||||
|
- id: "douyin"
|
||||||
|
name: "抖音"
|
||||||
|
- id: "zhihu"
|
||||||
|
name: "知乎"
|
||||||
|
|
@ -0,0 +1,113 @@
|
||||||
|
胖东来
|
||||||
|
于东来
|
||||||
|
|
||||||
|
DeepSeek
|
||||||
|
梁文锋
|
||||||
|
|
||||||
|
华为
|
||||||
|
鸿蒙
|
||||||
|
HarmonyOS
|
||||||
|
任正非
|
||||||
|
|
||||||
|
比亚迪
|
||||||
|
王传福
|
||||||
|
|
||||||
|
大疆
|
||||||
|
DJI
|
||||||
|
|
||||||
|
宇树
|
||||||
|
王兴兴
|
||||||
|
|
||||||
|
智元
|
||||||
|
灵犀
|
||||||
|
稚晖君
|
||||||
|
彭志辉
|
||||||
|
|
||||||
|
黑神话
|
||||||
|
冯骥
|
||||||
|
|
||||||
|
影之刃零
|
||||||
|
梁其伟
|
||||||
|
|
||||||
|
哪吒
|
||||||
|
饺子
|
||||||
|
杨宇
|
||||||
|
!车
|
||||||
|
!餐
|
||||||
|
|
||||||
|
三体
|
||||||
|
流浪地球
|
||||||
|
刘慈欣
|
||||||
|
郭帆
|
||||||
|
|
||||||
|
申奥
|
||||||
|
|
||||||
|
京东
|
||||||
|
刘强东
|
||||||
|
|
||||||
|
字节
|
||||||
|
bytedance
|
||||||
|
张一鸣
|
||||||
|
|
||||||
|
特斯拉
|
||||||
|
马斯克
|
||||||
|
|
||||||
|
微软
|
||||||
|
Microsoft
|
||||||
|
|
||||||
|
英伟达
|
||||||
|
NVIDIA
|
||||||
|
黄仁勋
|
||||||
|
|
||||||
|
AMD
|
||||||
|
|
||||||
|
谷歌
|
||||||
|
google
|
||||||
|
gemini
|
||||||
|
deepmind
|
||||||
|
|
||||||
|
chatgpt
|
||||||
|
openai
|
||||||
|
sora
|
||||||
|
|
||||||
|
claude
|
||||||
|
Anthropic
|
||||||
|
|
||||||
|
iphone
|
||||||
|
ipad
|
||||||
|
mac
|
||||||
|
ios
|
||||||
|
|
||||||
|
ai
|
||||||
|
!gai
|
||||||
|
人工智能
|
||||||
|
|
||||||
|
自动驾驶
|
||||||
|
|
||||||
|
机器人
|
||||||
|
|
||||||
|
国产
|
||||||
|
中国
|
||||||
|
|
||||||
|
美国
|
||||||
|
日本
|
||||||
|
韩国
|
||||||
|
|
||||||
|
芯片
|
||||||
|
光刻机
|
||||||
|
|
||||||
|
科技
|
||||||
|
|
||||||
|
核能
|
||||||
|
|
||||||
|
水电站
|
||||||
|
雅鲁藏布江
|
||||||
|
|
||||||
|
新质生产力
|
||||||
|
|
||||||
|
月球
|
||||||
|
登月
|
||||||
|
火星
|
||||||
|
宇宙
|
||||||
|
飞船
|
||||||
|
航空
|
||||||
|
|
@ -0,0 +1,90 @@
|
||||||
|
additionalProperties:
|
||||||
|
formFields:
|
||||||
|
- default: ./data
|
||||||
|
envKey: DATA_PATH
|
||||||
|
labelZh: 输出路径
|
||||||
|
labelEn: Output Path
|
||||||
|
label:
|
||||||
|
zh: 输出路径
|
||||||
|
zh-Hant: 輸出路徑
|
||||||
|
en: Output Path
|
||||||
|
ja: 出力パス
|
||||||
|
ko: 출력 경로
|
||||||
|
ms: Laluan Output
|
||||||
|
pt-br: Caminho de Saída
|
||||||
|
ru: Выходной путь
|
||||||
|
tr: Çıkış Yolu
|
||||||
|
description:
|
||||||
|
zh: 生成的报告和数据保存位置
|
||||||
|
zh-Hant: 生成的報告和數據保存位置
|
||||||
|
en: Generated reports and data storage location
|
||||||
|
ja: 生成されたレポートとデータの保存場所
|
||||||
|
ko: 생성된 보고서 및 데이터 저장 위치
|
||||||
|
ms: Lokasi penyimpanan laporan dan data yang dihasilkan
|
||||||
|
pt-br: Local de armazenamento de relatórios e dados gerados
|
||||||
|
ru: Место хранения сгенерированных отчетов и данных
|
||||||
|
tr: Oluşturulan raporların ve verilerin saklama konumu
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
edit: true
|
||||||
|
- default: "*/30 * * * *"
|
||||||
|
envKey: CRON_SCHEDULE
|
||||||
|
labelZh: 定时任务表达式
|
||||||
|
labelEn: Cron Expression
|
||||||
|
label:
|
||||||
|
zh: 定时任务表达式
|
||||||
|
zh-Hant: 定時任務表達式
|
||||||
|
en: Cron Expression
|
||||||
|
ja: クロン式
|
||||||
|
ko: 크론 표현식
|
||||||
|
ms: Ungkapan Cron
|
||||||
|
pt-br: Expressão Cron
|
||||||
|
ru: Cron-выражение
|
||||||
|
tr: Cron İfadesi
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
edit: true
|
||||||
|
- default: cron
|
||||||
|
envKey: RUN_MODE
|
||||||
|
labelZh: 运行模式
|
||||||
|
labelEn: Run Mode
|
||||||
|
label:
|
||||||
|
zh: 运行模式
|
||||||
|
zh-Hant: 執行模式
|
||||||
|
en: Run Mode
|
||||||
|
ja: 実行モード
|
||||||
|
ko: 실행 모드
|
||||||
|
ms: Mod Operasi
|
||||||
|
pt-br: Modo de Execução
|
||||||
|
ru: Режим работы
|
||||||
|
tr: Çalışma Modu
|
||||||
|
required: false
|
||||||
|
type: select
|
||||||
|
values:
|
||||||
|
- label: Cron
|
||||||
|
value: cron
|
||||||
|
- label: Once
|
||||||
|
value: once
|
||||||
|
edit: true
|
||||||
|
- default: "false"
|
||||||
|
envKey: IMMEDIATE_RUN
|
||||||
|
labelZh: 启动时立即执行一次
|
||||||
|
labelEn: Execute immediately upon startup
|
||||||
|
label:
|
||||||
|
zh: 启动时立即执行一次
|
||||||
|
zh-Hant: 啟動時立即執行一次
|
||||||
|
en: Execute immediately upon startup
|
||||||
|
ja: 起動時に即時実行
|
||||||
|
ko: 시작 시 즉시 실행
|
||||||
|
ms: Laksanakan segera semasa permulaan
|
||||||
|
pt-br: Executar imediatamente na inicialização
|
||||||
|
ru: Выполнить немедленно при запуске
|
||||||
|
tr: Başlangıçta hemen yürüt
|
||||||
|
required: false
|
||||||
|
type: select
|
||||||
|
values:
|
||||||
|
- label: "True"
|
||||||
|
value: "true"
|
||||||
|
- label: "False"
|
||||||
|
value: "false"
|
||||||
|
edit: true
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
services:
|
||||||
|
trend-radar:
|
||||||
|
image: wantcat/trendradar:3.1.1
|
||||||
|
container_name: ${CONTAINER_NAME}
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./config:/app/config:ro
|
||||||
|
- ${DATA_PATH}:/app/output
|
||||||
|
environment:
|
||||||
|
- CRON_SCHEDULE=${CRON_SCHEDULE}
|
||||||
|
- RUN_MODE=${RUN_MODE}
|
||||||
|
- IMMEDIATE_RUN=${IMMEDIATE_RUN}
|
||||||
|
networks:
|
||||||
|
- 1panel-network
|
||||||
|
labels:
|
||||||
|
createdBy: Apps
|
||||||
|
networks:
|
||||||
|
1panel-network:
|
||||||
|
external: true
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
|
||||||
|
## 配置和使用说明
|
||||||
|
|
||||||
|
安装应用后请前往 `应用安装目录/config/config.yaml` 配置剩余参数。
|
||||||
|
|
||||||
|
安装应用后请前往 `应用安装目录/config/frequency_words.txt` 配置你关心的热点词汇。
|
||||||
|
|
||||||
|
> [关键词配置](https://github.com/sansan0/TrendRadar#2-%E5%85%B3%E9%94%AE%E8%AF%8D%E9%85%8D%E7%BD%AE)
|
||||||
|
|
||||||
|
## 产品介绍
|
||||||
|
|
||||||
|
简单的舆情监控分析 - 多平台热点聚合+基于 MCP 的AI分析工具。
|
||||||
|
|
||||||
|
> 本身不集成 AI, 需要额外安装MCP服务。
|
||||||
|
|
||||||
|
## 主要功能
|
||||||
|
|
||||||
|
- **全网热点聚合**: 默认监控知乎、抖音、B站等 11 个个主流平台,也可自行增加额外的平台;
|
||||||
|
- **智能推送策略**: 支持当日汇总、当前榜单、增量监控等三种推送模式;
|
||||||
|
- **精准内容筛选**: 设置个人关键词,只推送相关热点,过滤无关信息;
|
||||||
|
- **热点趋势分析**: 实时追踪新闻热度变化;
|
||||||
|
- **个性化热点算法**: TrendRadar 特有权重算法;
|
||||||
|
- **多渠道实时推送**: 支持企微(+ 微信)、飞书、钉钉、Telegram、邮件、ntfy 等推送渠道;
|
||||||
|
- **AI 智能分析**: 需额外部署 MCP 服务,参考[文档](https://github.com/sansan0/TrendRadar#-ai-%E6%99%BA%E8%83%BD%E5%88%86%E6%9E%90)
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
## Configuration and Usage Instructions
|
||||||
|
|
||||||
|
After installing the application, please go to `application installation directory/config/config.yaml` to configure the remaining parameters.
|
||||||
|
|
||||||
|
After installing the application, please navigate to `application installation directory/config/frequency_words.txt` to configure the hot keywords you care about.
|
||||||
|
|
||||||
|
> [Keyword Configuration](https://github.com/sansan0/TrendRadar/blob/master/README-EN.md#2-keyword-configuration)
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
Simple public opinion monitoring and analysis - multi-platform hotspots aggregation + AI analysis tool based on MCP.
|
||||||
|
|
||||||
|
> Does not integrate AI by default, MCP service needs to be installed separately.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- **Aggregation of Hotspots Across the Network**: By default, monitors 11 major platforms such as Zhihu, Douyin, Bilibili, etc., and additional platforms can also be added manually;
|
||||||
|
- **Intelligent Push Strategy**: Supports three push modes: daily summary, current ranking, and incremental monitoring;
|
||||||
|
- **Precise Content Filtering**: Set personal keywords, only push relevant hotspots, filter irrelevant information;
|
||||||
|
- **Trend Analysis**: Real-time tracking of news popularity changes;
|
||||||
|
- **Personalized Hotspot Algorithm**: TrendRadar's proprietary weighted algorithm;
|
||||||
|
- **Multi-channel Real-time Push**: Supports WeCom (+ WeChat), Lark, DingTalk, Telegram, email, ntfy, and other push channels;
|
||||||
|
- **AI Intelligent Analysis**: Requires additional deployment of MCP service, refer to [documentation](https://github.com/sansan0/TrendRadar#-ai-%E6%99%BA%E8%83%BD%E5%88%86%E6%9E%90)
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
name: TrendRadar
|
||||||
|
tags:
|
||||||
|
- 实用工具
|
||||||
|
title: 多平台热点推送
|
||||||
|
description: 多平台热点推送
|
||||||
|
additionalProperties:
|
||||||
|
key: trendradar
|
||||||
|
name: TrendRadar
|
||||||
|
tags:
|
||||||
|
- Tool
|
||||||
|
shortDescZh: 多平台热点推送
|
||||||
|
shortDescEn: Multi-platform Hot Content Push
|
||||||
|
description:
|
||||||
|
en: Multi-platform Hot Content Push
|
||||||
|
zh: 多平台热点推送
|
||||||
|
zh-Hant: 多平台熱點推送
|
||||||
|
ja: マルチプラットフォームホットコンテンツプッシュ
|
||||||
|
ms: Tolakan Kandungan Panas Pelbagai Platform
|
||||||
|
pt-br: Push de Conteúdo Quente Multiplataforma
|
||||||
|
ru: Мультиплатформенная пуш-рассылка горячего контента
|
||||||
|
ko: 멀티 플랫폼 핫 콘텐츠 푸시
|
||||||
|
type: tool
|
||||||
|
crossVersionUpdate: true
|
||||||
|
limit: 0
|
||||||
|
website: https://github.com/sansan0/TrendRadar
|
||||||
|
github: https://github.com/sansan0/TrendRadar
|
||||||
|
document: https://github.com/sansan0/TrendRadar
|
||||||
|
architectures:
|
||||||
|
- amd64
|
||||||
|
- arm64
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 5.5 KiB |
Loading…
Reference in New Issue