TrendRadar/config/config.yaml

187 lines
9.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

app:
version_check_url: "https://raw.githubusercontent.com/sansan0/TrendRadar/refs/heads/master/version"
show_version_update: true # 控制显示版本更新提示,如果 false则不接受新版本提示
# 时区配置(影响所有时间显示、推送窗口判断、数据存储)
# 常用时区:
# - Asia/Shanghai (北京时间 UTC+8)
# - America/New_York (美东时间 UTC-5/-4)
# - Europe/London (伦敦时间 UTC+0/+1)
# 完整时区列表: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
timezone: "Asia/Shanghai"
# 存储配置
storage:
# 存储后端选择: local / remote / auto
# - local: 本地 SQLite + TXT/HTML 文件
# - remote: 远程云存储S3 兼容协议,支持 R2/OSS/COS 等)
# - auto: 自动选择GitHub Actions 环境且配置了远程存储则用 remote否则用 local
backend: "auto"
# 数据格式选项
formats:
sqlite: true # 主存储(必须启用)
txt: false # 是否生成 TXT 快照
html: false # 是否生成 HTML 报告(⚠️ 邮件推送必须设为 true否则会报错
# 本地存储配置
local:
data_dir: "output" # 数据目录
retention_days: 0 # 本地数据保留天数0 = 不清理)
# 远程存储配置S3 兼容协议)
# 支持: Cloudflare R2, 阿里云 OSS, 腾讯云 COS, AWS S3, MinIO 等
# 建议将敏感信息配置在 GitHub Secrets 或环境变量中
remote:
# 数据保留天数0 = 不清理远程数据)
retention_days: 0
# S3 兼容配置
endpoint_url: "" # 服务端点(或环境变量 S3_ENDPOINT_URL
# Cloudflare R2: https://<account_id>.r2.cloudflarestorage.com
# 阿里云 OSS: https://oss-cn-hangzhou.aliyuncs.com
# 腾讯云 COS: https://cos.ap-guangzhou.myqcloud.com
bucket_name: "" # 存储桶名称(或环境变量 S3_BUCKET_NAME
access_key_id: "" # 访问密钥 ID或环境变量 S3_ACCESS_KEY_ID
secret_access_key: "" # 访问密钥(或环境变量 S3_SECRET_ACCESS_KEY
region: "" # 区域(可选,部分服务商需要,或环境变量 S3_REGION
# 数据拉取配置(从远程同步到本地)
# 用于 MCP Server 等场景爬虫存到远程MCP 拉取到本地分析
pull:
enabled: false # 是否启用启动时自动拉取
days: 7 # 拉取最近 N 天的数据0 = 不拉取)
crawler:
request_interval: 1000 # 请求间隔(毫秒)
enable_crawler: true # 是否启用爬取新闻功能,如果 false则直接停止程序
use_proxy: false # 是否启用代理false 时为关闭
default_proxy: "http://127.0.0.1:10801"
# 🔸 daily当日汇总模式
# • 推送时机:按时推送(默认每小时推送一次)
# • 显示内容:当日所有匹配新闻 + 新增新闻区域
# • 适用场景:日报总结、全面了解当日热点趋势
#
# 🔸 current当前榜单模式
# • 推送时机:按时推送(默认每小时推送一次)
# • 显示内容:当前榜单匹配新闻 + 新增新闻区域
# • 适用场景:实时热点追踪、了解当前最火的内容
#
# 🔸 incremental增量监控模式
# • 推送时机:有新增才推送
# • 显示内容:新出现的匹配频率词新闻
# • 适用场景:避免重复信息干扰
# 推送模式选择
report:
mode: "daily" # 可选: "daily"|"incremental"|"current"
rank_threshold: 5 # 排名高亮阈值
sort_by_position_first: false # 排序优先级true=先按配置位置排序false=先按热点条数排序
max_news_per_keyword: 0 # 每个关键词最大显示数量0=不限制
reverse_content_order: false # 内容顺序false=热点词汇统计在前true=新增热点新闻在前
notification:
enable_notification: true # 是否启用通知功能,如果 false则不发送手机通知
message_batch_size: 4000 # 消息分批大小(字节)(这个配置别动)
dingtalk_batch_size: 20000 # 钉钉消息分批大小(字节)(这个配置也别动)
feishu_batch_size: 30000 # 飞书消息分批大小(字节)
bark_batch_size: 4000 # Bark消息分批大小字节
slack_batch_size: 4000 # Slack消息分批大小字节
batch_send_interval: 3 # 批次发送间隔(秒)
feishu_message_separator: "━━━━━━━━━━━━━━━━━━━" # feishu 消息分割线
max_accounts_per_channel: 3 # 每个渠道最大账号数量,建议不超过 3
# 🕐 推送时间窗口控制(可选功能)
# 用途:限制推送的时间范围,避免非工作时间打扰
# 适用场景:
# - 只想在工作日白天接收推送(如 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则窗口内每次执行都推送
# ⚠️⚠️⚠️ 重要安全警告 / 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.)
#
# ⚠️⚠️⚠️ 多账号推送说明 / MULTI-ACCOUNT PUSH NOTICE ⚠️⚠️⚠️
#
# 🔸 多账号支持:
# • 请使用分号(;)分隔多个账号,如:"url1;url2;url3"
# • 示例telegram_bot_token: "token1;token2" 对应 telegram_chat_id: "id1;id2"
# • 对于需要配对的配置(如 Telegram 的 token 和 chat_id数量必须一致
# • 每个渠道最多支持 max_accounts_per_channel 个账号(见上方配置)
# • 邮箱已支持多收件人(逗号分隔),保持不变
#
# 🔸 Multi-Account Support:
# • Use semicolon(;) to separate multiple accounts, e.g., "url1;url2;url3"
# • Example: telegram_bot_token: "token1;token2" with telegram_chat_id: "id1;id2"
# • For paired configs (e.g., Telegram token and chat_id), quantities must match
# • Each channel supports up to max_accounts_per_channel accounts (see above config)
# • Email already supports multiple recipients (comma-separated), unchanged
#
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多账号用 ; 分隔,需与 chat_id 数量一致)
telegram_chat_id: "" # Telegram Chat ID多账号用 ; 分隔,需与 bot_token 数量一致)
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访问令牌可选用于私有主题多账号用 ; 分隔)
bark_url: "" # Bark推送URL多账号用 ; 分隔格式https://api.day.app/your_device_key 或自建服务器地址)
slack_webhook_url: "" # Slack Incoming Webhook URL多账号用 ; 分隔格式https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
# 用于让关注度更高的新闻在更前面显示,即用算法重新组合不同平台的热搜排序形成你侧重的热搜,合起来是 1 就行
weight:
rank_weight: 0.6 # 排名权重
frequency_weight: 0.3 # 频次权重
hotness_weight: 0.1 # 热度权重
# name 可以定义任意名称,只具有显示作用,即使项目运行了几天后,忽然改掉 name 也不会影响代码的正常运行
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: "知乎"