✨ 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