- daily/holiday.py: 抓取 xiaoai.me 全年节假日并缓存到 .cache/holidays-<year>.json, is_workday() 判定(法定节假日/周末休息,调休补班日上班),联网失败回退本地缓存 - scheduler: tick_once 前置工作日闸门,非工作日标记完成并跳过,判定失败降级为正常工作日避免漏跑 - config/.env.example: 新增 DAILY_WORKDAY_ONLY 开关(默认开) - tests: test_holiday 8 例 + scheduler 非工作日闸门 2 例 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
131 lines
4.9 KiB
Plaintext
131 lines
4.9 KiB
Plaintext
# 企微群机器人 webhook(早报推送)
|
||
WECOM_WEBHOOK_KEY=your-webhook-key
|
||
|
||
# 早报内容
|
||
DAILY_TRENDING_LIMIT=150
|
||
DAILY_HOT_LIMIT=150
|
||
DAILY_GITHUB_TRENDING_LIMIT=10
|
||
DAILY_GITHUB_EMERGING_LIMIT=10
|
||
DAILY_GITHUB_TOPIC_LIMIT=10
|
||
|
||
# 企微版可选行(默认均开)
|
||
# DAILY_WECOM_TOP_LINE=1 # 顶部「今日主题」行,无评分命中时回退主题名
|
||
# DAILY_FEATURED_REASON=1 # 首推下「为什么值得点开」理由行
|
||
|
||
# GitHub Trending
|
||
GITHUB_TRENDING_SINCE=daily
|
||
# GITHUB_TRENDING_LANGUAGE=python
|
||
# GITHUB_TRENDING_MODE=scrape
|
||
# scrape — 爬 github.com/trending,失败时用 token + Search API 补充
|
||
# api — 仅 Search API(必须 GITHUB_TOKEN)
|
||
|
||
# GitHub 新兴 / Topic(Search API,需 GITHUB_TOKEN)
|
||
# GITHUB_EMERGING_DAYS=14
|
||
# GITHUB_EMERGING_MIN_STARS=200
|
||
# GITHUB_TOPIC=llm
|
||
# GITHUB_TOPIC_PUSHED_DAYS=7
|
||
# GITHUB_TOPIC_MIN_STARS=50
|
||
|
||
# GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxx
|
||
# GITHUB_API_ENRICH=1
|
||
|
||
# 企微短版(各榜 Top N,默认 5;周内不重复见 DAILY_BOARD_DEDUP_DAYS)
|
||
DAILY_WECOM_TRENDING=5
|
||
DAILY_WECOM_HOT=5
|
||
DAILY_WECOM_GITHUB_TRENDING=5
|
||
DAILY_WECOM_GITHUB_EMERGING=5
|
||
DAILY_WECOM_GITHUB_TOPIC=5
|
||
DAILY_WECOM_AI_NEWS=10
|
||
# research 模式额外技术类时讯条数(叠加在 AI 时讯精选之上)
|
||
DAILY_WECOM_AI_NEWS_TECH=5
|
||
DAILY_WECOM_CN_AI_NEWS=10
|
||
# 企微新闻摘要字数(句读/词边界截断,不加省略号)
|
||
# DAILY_WECOM_NEWS_DESC_LIMIT=72
|
||
# 企微 Skills 合并前扫描池大小(同 source 合并后仍凑满 Top N)
|
||
# DAILY_WECOM_SKILL_POOL=200
|
||
|
||
# Skills 榜单来源:website=skills.sh 官网(600+ 条)| feed=第三方 feed.json(50 条)
|
||
# SKILLS_BOARD_SOURCE=website
|
||
# 企微单条 markdown 上限 4096;超长自动分多条推送(不截断正文)
|
||
DAILY_WECOM_CHUNK_BYTES=4096
|
||
# DAILY_WECOM_MAX_PARTS=5
|
||
|
||
# 企微列表模式:delta=仅展示新入榜 | full=全量 Top 榜(回退)
|
||
DAILY_WECOM_MODE=delta
|
||
# Delta 模式下新入榜优先,不足时用当日 Top 榜补满各区块条数(0=仅展示变化)
|
||
# 补榜时会排除近 N 天 baseline 已出现过的条目,避免周内重复(默认 7 天)
|
||
DAILY_WECOM_DELTA_PAD=1
|
||
# 补榜时从更大候选池选取(默认展示条数×5,至少 50)
|
||
# DAILY_WECOM_PAD_POOL=50
|
||
# 无历史 data.json 时:full=首日全量一次 | empty=列表为空
|
||
DAILY_DELTA_BASELINE_FALLBACK=full
|
||
# 推送闸门不满足时跳过 webhook(仍写 output)
|
||
DAILY_SKIP_PUSH_WHEN_SILENT=1
|
||
# DAILY_FORCE_PUSH=1
|
||
# 已推送新闻 link 去重天数
|
||
DAILY_NEWS_DEDUP_DAYS=7
|
||
|
||
# 常驻调度(python -m daily schedule)
|
||
DAILY_SCHEDULE_TZ=Asia/Shanghai
|
||
DAILY_SCHEDULE_GENERATE_AT=08:50
|
||
DAILY_SCHEDULE_PUSH_AT=09:00
|
||
# 仅工作日生成/推送(法定节假日、周末跳过;调休补班日照常)
|
||
# 节假日数据取自 xiaoai.me,缓存于 .cache/holidays-<year>.json,每年首次自动获取一次
|
||
DAILY_WORKDAY_ONLY=1
|
||
|
||
# 编辑指定今日首推(可选):关键词,或 关键词|URL
|
||
# Python Step 0 检索 → featured.json;Agent / classic 企微「今日首推」优先使用
|
||
# DAILY_FEATURED_PICK=gstack
|
||
# DAILY_FEATURED_PICK=gstack|https://github.com/you/gstack
|
||
|
||
# 国际 AI 时讯(RSS,见 daily/news/feeds.py)
|
||
DAILY_AI_NEWS=1
|
||
# 国内 AI 时讯(RSS,见 daily/news/feeds_cn.py;research 模式下忽略)
|
||
DAILY_CN_AI_NEWS=1
|
||
# AI 时讯来源:rss=RSS 抓取 | research=Cursor SDK + deep-research(WebSearch)
|
||
# DAILY_AI_NEWS_MODE=research
|
||
# 英文描述 → 简短中文(DAILY_CURSOR_EDITOR=0 时生效)
|
||
# DAILY_ZH_DESC=1
|
||
# DAILY_ZH_DESC_BATCH=20
|
||
# DAILY_LLM_API_KEY=
|
||
# DAILY_LLM_API_BASE=https://api.openai.com/v1
|
||
# DAILY_LLM_MODEL=gpt-4o-mini
|
||
|
||
# Tier B:Cursor 编辑层(主题 + 速览 + 中文描述,一次 LLM 调用)
|
||
# 需 CURSOR_API_KEY 或 DAILY_LLM_API_KEY;开启后 DAILY_ZH_DESC 自动跳过
|
||
# DAILY_CURSOR_EDITOR=1
|
||
|
||
# Agent 工作流(推荐:叙事化早报)
|
||
# DAILY_REPORT_MODE=agent
|
||
# CURSOR_API_KEY=cursor_...
|
||
# CURSOR_MODEL=composer-2.5
|
||
# DAILY_CURSOR_CWD=d:\LY\diy\skills-hot-daily
|
||
|
||
# 新增榜对比(较昨日 Top15,供 Agent 导语/signals;列表展示 Top N)
|
||
# DAILY_DELTA_COMPARE_DEPTH=15
|
||
# DAILY_WECOM_NEW_MAX=10
|
||
# DAILY_DELTA_LOOKBACK_DAYS=7
|
||
# DAILY_FULL_DESC_LIMIT=0
|
||
# DAILY_FULL_NEWS_SUMMARY_LIMIT=0
|
||
DAILY_AI_NEWS_HOURS=24
|
||
DAILY_AI_NEWS_PER_FEED=3
|
||
DAILY_AI_NEWS_PER_CATEGORY=5
|
||
|
||
# 多样性 / 去重(见 docs/superpowers/specs/2026-07-14-wecom-diversity-dedup-design.md)
|
||
DAILY_BOARD_DEDUP_DAYS=7
|
||
# DAILY_BOARD_POOL_SIZE=50
|
||
# DAILY_FEATURED_DEDUP_DAYS=30
|
||
# DAILY_THEME_BAN_DAYS=7
|
||
# DAILY_NARRATIVE_AXIS_DAYS=3
|
||
DAILY_NEWS_BACKFILL=0
|
||
# 国际时讯:在 24h 滚动窗口基础上,不早于今日 0 点(DAILY_AI_NEWS_TZ)
|
||
DAILY_AI_NEWS_FLOOR_TODAY=1
|
||
# DAILY_AI_NEWS_TZ=Asia/Shanghai
|
||
|
||
# Reddit RSS(403/429 时在 Reddit 偏好设置 → RSS feeds 复制 user / feed 参数)
|
||
# REDDIT_RSS_USER=your_username
|
||
# REDDIT_RSS_FEED=your_feed_token
|
||
|
||
# 可选:关注仓库 Release
|
||
# GITHUB_REPOS=vercel-labs/skills,obra/superpowers
|