1
0
Fork 0

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:
pooneyy 2025-11-22 22:39:24 +08:00
parent 5b225d4491
commit 3c290bcf6c
No known key found for this signature in database
8 changed files with 415 additions and 0 deletions

View File

@ -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 SecretSettings → 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: "知乎"

View File

@ -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
人工智能
自动驾驶
机器人
国产
中国
美国
日本
韩国
芯片
光刻机
科技
核能
水电站
雅鲁藏布江
新质生产力
月球
登月
火星
宇宙
飞船
航空

View File

@ -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

View File

@ -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

24
apps/trendradar/README.md Normal file
View File

@ -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)

View File

@ -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)

30
apps/trendradar/data.yml Normal file
View File

@ -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

BIN
apps/trendradar/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB