diff --git a/apps/trendradar/3.1.1/config/config.yaml b/apps/trendradar/3.1.1/config/config.yaml new file mode 100644 index 000000000..d63638d6a --- /dev/null +++ b/apps/trendradar/3.1.1/config/config.yaml @@ -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: "知乎" \ No newline at end of file diff --git a/apps/trendradar/3.1.1/config/frequency_words.txt b/apps/trendradar/3.1.1/config/frequency_words.txt new file mode 100644 index 000000000..9e19f6971 --- /dev/null +++ b/apps/trendradar/3.1.1/config/frequency_words.txt @@ -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 +人工智能 + +自动驾驶 + +机器人 + +国产 +中国 + +美国 +日本 +韩国 + +芯片 +光刻机 + +科技 + +核能 + +水电站 +雅鲁藏布江 + +新质生产力 + +月球 +登月 +火星 +宇宙 +飞船 +航空 \ No newline at end of file diff --git a/apps/trendradar/3.1.1/data.yml b/apps/trendradar/3.1.1/data.yml new file mode 100644 index 000000000..986efcad6 --- /dev/null +++ b/apps/trendradar/3.1.1/data.yml @@ -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 diff --git a/apps/trendradar/3.1.1/docker-compose.yml b/apps/trendradar/3.1.1/docker-compose.yml new file mode 100644 index 000000000..61370ccb1 --- /dev/null +++ b/apps/trendradar/3.1.1/docker-compose.yml @@ -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 diff --git a/apps/trendradar/README.md b/apps/trendradar/README.md new file mode 100644 index 000000000..e55726682 --- /dev/null +++ b/apps/trendradar/README.md @@ -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) diff --git a/apps/trendradar/README_en.md b/apps/trendradar/README_en.md new file mode 100644 index 000000000..6916ddd03 --- /dev/null +++ b/apps/trendradar/README_en.md @@ -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) diff --git a/apps/trendradar/data.yml b/apps/trendradar/data.yml new file mode 100644 index 000000000..19259fab5 --- /dev/null +++ b/apps/trendradar/data.yml @@ -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 diff --git a/apps/trendradar/logo.png b/apps/trendradar/logo.png new file mode 100644 index 000000000..e91a76afd Binary files /dev/null and b/apps/trendradar/logo.png differ