你的个性化热点追踪助手TrendRadar

简介

什么是 TrendRadar?

TrendRadar 是一个开源项目,旨在帮助用户从海量信息中筛选出真正感兴趣的热点新闻。它通过配置关键词和推送平台,自动抓取、分析并推送个性化的新闻报告,让你告别信息过载,高效获取有价值的信息。

主要特点

  • 个性化追踪:通过自定义关键词,精准捕捉你关注的热点。
  • 多平台推送:支持企业微信、飞书、钉钉、Telegram 等多种消息平台,灵活选择接收通知的方式。
  • 多种报告模式:提供日报、实时分析、增量监控等多种报告模式,满足不同场景下的信息获取需求。
  • 轻量易部署:支持 GitHub Actions 自动化运行,或通过 Docker 轻松自部署,无需复杂配置。
  • 开源免费:完全开源,代码透明,可自由使用和定制,社区活跃。

应用场景

  • 个人信息管理:追踪个人兴趣领域、技术发展、行业动态等,保持知识更新。
  • 团队信息共享:将团队关注的热点新闻自动推送到工作群组,提升团队协作效率。
  • 市场趋势监控:监控特定产品、品牌或竞争对手的市场动态和舆情,辅助商业决策。
  • 舆情分析:初步筛选与特定事件相关的网络舆情,为进一步分析提供线索。

TrendRadar 以其灵活的配置和强大的功能,适合各类用户在不同场景中使用。

安装

在群晖上以 Docker 方式安装。当然如果你没有支持 docker 环境的 NAS,也可以通过 GitHub Actions 自动化运行。

在注册表中搜索 trendradar ,选择 wantcat/trendradar,版本选择 latest

官方推荐的安装方式是作为一个定时自动化运行的工具,一旦发现你关心的热点新闻,就会推送到你设置的聊天工具里,但老苏更喜欢 Github Pages 的网页效果,所以增加了 nginxweb 服务

增加了 nginx 容器后,变成了多容器应用,所以采用 docker-compose 安装更简单

建目录

通过 SSH 登录到您的群晖,执行下面的命令

1
2
3
4
5
# 新建文件夹 trendradar 和 子目录
mkdir -p /volume1/docker/trendradar/{config,output}

# 进入 trendradar 目录
cd /volume1/docker/trendradar

docker-compose.yml

将下面的内容保存为 docker-compose.yml 文件

增加了中文注释,一定要记得采用 UTF-8 格式保存;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
version: '3.8'

services:
# TrendRadar 服务,用于抓取数据并生成报告
trendradar:
image: wantcat/trendradar:latest
container_name: trendradar
restart: unless-stopped
volumes:
# 将本地的 config 目录挂载到容器的 /app/config,只读模式
- ./config:/app/config:ro
# 将本地的 output 目录挂载到容器的 /app/output,用于存放生成的报告
- ./output:/app/output
environment:
# 定时任务表达式,每 30 分钟执行一次(比如 8点,8点半,9点,9点半这种时间规律执行)
- CRON_SCHEDULE=*/30 * * * *
# 运行模式,cron 表示定时执行
- RUN_MODE=cron
# 启动时是否立即运行一次
- IMMEDIATE_RUN=true

# Nginx 服务,用于将 output 目录作为静态网站发布
nginx:
image: nginx:latest
container_name: trendradar-nginx
restart: unless-stopped
ports:
# 将主机的 8145 端口映射到容器的 80 端口
# 你可以通过 http://<你的服务器IP>:8145 访问
- "8145:80"
volumes:
# 将本地的 output 目录挂载到 Nginx 的默认网站根目录,只读模式
# Nginx 会将此目录下的 index.html 作为首页
- ./output:/usr/share/nginx/html:ro
# 将本地的 nginx.conf 挂载为 Nginx 的默认配置
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
# 确保 trendradar 服务先于 Nginx 启动(虽然不是必须,但逻辑上更清晰)
- trendradar

nginx.conf

主要是为了避免没有 index.html 导致的 403 Forbidden 错误,启用了目录列表功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
server {
listen 80;
server_name localhost;

# 设置响应的字符集为 UTF-8,解决中文乱码问题
charset utf-8;

# Nginx 将从这个目录提供文件
root /usr/share/nginx/html;

location / {
# 启用目录列表功能
autoindex on;
# 显示文件精确大小 (off 为显示近似大小,如 KB, MB)
autoindex_exact_size off;
# 显示文件本地时间 (on 为显示服务器本地时间)
autoindex_localtime on;

# 如果存在 index.html,仍然优先显示它。如果不存在,则显示目录列表。
index index.html index.htm;
}

# 可选:忽略 favicon.ico 的 404 错误日志
location = /favicon.ico {
log_not_found off;
access_log off;
}
}

config.yaml

推送设置 文件,可根据里面的描述文字操作

通过下面的命令直接下载

1
2
3
4
5
# 下载推送配置文件模板
wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/config/config.yaml -P config/

# 或者通过代理下载配置文件模版
https://gh-proxy.com/raw.githubusercontent.com/sansan0/TrendRadar/master/config/config.yaml -P config/

例如:在 config/config.yaml 中修改 report.mode 设置:

模式 推送时机 显示内容 适用场景
当日汇总模式
daily
按时推送 当日所有匹配新闻
+ 新增新闻区域
日报总结
全面了解当日热点趋势
当前榜单模式
current
按时推送 当前榜单匹配新闻
+ 新增新闻区域
实时热点追踪
了解当前最火的内容
增量监控模式
incremental
有新增才推送 新出现的匹配频率词新闻 避免重复信息干扰
高频监控场景

frequency_words.txt

关键词配置 文件,支持普通词、必须词(+)、过滤词(!)三种语法和词组功能。

关键词越靠前,新闻的优先级越高,可以根据自己的关注度调整关键词顺序

详细的说明请参考: https://github.com/sansan0/TrendRadar#-使用方式frequency_words.txt 配置教程

文件可通过下面的命令直接下载

1
2
3
4
5
# 下载关键词配置文件模板
wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/config/frequency_words.txt -P config/

# 或者通过代理下载关键词配置文件模板
wget https://gh-proxy.com/raw.githubusercontent.com/sansan0/TrendRadar/master/config/frequency_words.txt -P config/

目录结构

完成后的目录结构应该是

1
2
3
4
5
6
当前目录/
├── config/
│ ├── config.yaml
│ └── frequency_words.txt
├── docker-compose.yml
└── nginx.conf

运行

在浏览器中输入 http://群晖IP:8145 就能看到目录列表。

逐级进入

html

任意打开一个文件

手机上的效果

参考文档

sansan0/TrendRadar: 🎯 告别信息过载,只看真正关心的新闻 - 多平台热点聚合工具,一键监控今日头条、百度热搜、微博、抖音、知乎、B站等35个平台,智能关键词筛选,自动生成热点分析报告。支持企业微信、飞书、钉钉、Telegram推送,30秒网页部署,1分钟手机通知,无需编程基础。也支持docker私人部署⭐ 让算法为你服务,而非被算法绑架
地址:https://github.com/sansan0/TrendRadar