自我量化 Dashboard — 每天自动刷新 GitHub 个人主页 README
每天自动刷新 GitHub 个人主页 README,展示一个「活的人」:最近听的歌、代码时长、在读的书、今日步数等。别人点进你主页看到的是动态的生活切片,不是冷冰冰的 repo 列表。
| 数据源 | 说明 | 需要配置 |
|---|---|---|
| 🎵 Spotify | 最近播放的 5 首歌 | SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET, SPOTIFY_REFRESH_TOKEN |
| ⏱️ WakaTime | 本周编码时长和语言分布 | WAKATIME_API_KEY |
| 📚 微信读书 | 当前在读的书籍 | WEREAD_COOKIE |
| 🐙 GitHub | 最近动态 | gh CLI 登录即可 |
| 🌤️ 天气 | 当前城市天气 | 无需配置(可选 WEATHER_CITY) |
| 🏃 步数 | 今日步数 | FITNESS_STEPS 或 FITNESS_FILE |
# 安装依赖
pip install -r requirements.txt
# 查看配置状态
python -m dashboard.cli config
# 预览生成结果(不推送)
python -m dashboard.cli update --dry-run
# 完整更新(推送到 GitHub)
python -m dashboard.cli update
# 只更新部分数据源
python -m dashboard.cli update --only github,weather
# 本地预览 HTML
python -m dashboard.cli preview- Fork 本仓库
- 在仓库 Settings → Secrets 中配置 API Keys
- 工作流会每天 UTC 8:00(北京时间 16:00)自动运行
github-profile-dashboard/
├── dashboard/
│ ├── cli.py # CLI 接口
│ ├── dashboard.py # 主流程
│ ├── card_renderer.py # SVG 卡片生成器
│ ├── readme_generator.py # README 生成器
│ ├── updater.py # GitHub 推送器
│ ├── collectors/ # 数据源采集器
│ │ ├── base.py # 基类
│ │ ├── spotify.py # Spotify
│ │ ├── wakatime.py # WakaTime
│ │ ├── weread.py # 微信读书
│ │ ├── github.py # GitHub
│ │ ├── weather.py # 天气
│ │ └── fitness.py # 步数
│ └── templates/
│ └── readme.md.j2 # README 模板
├── tests/ # 测试
├── assets/ # 生成的 SVG 文件
└── examples/ # 示例 README
- Python 3.10+
- Click (CLI)
- Jinja2 (模板)
- Requests (HTTP)
- SVG 纯手写
MIT