Fetch Trakt Data #63
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 定时抓取 Trakt 观影数据 | |
| # 每 2 小时执行一次,或手动触发 | |
| name: Fetch Trakt Data | |
| on: | |
| schedule: | |
| # 每 2 小时运行一次(UTC 时间) | |
| - cron: '0 */2 * * *' | |
| # 允许手动触发(用于首次运行或调试) | |
| workflow_dispatch: | |
| # 授予 GITHUB_TOKEN 写权限,允许自动 commit & push | |
| permissions: | |
| contents: write | |
| jobs: | |
| fetch: | |
| runs-on: ubuntu-latest | |
| # 超时时间:10 分钟,防止 API 请求卡死 | |
| timeout-minutes: 10 | |
| steps: | |
| # ① 检出公开仓库代码 | |
| - name: 检出仓库 | |
| uses: actions/checkout@v4 | |
| # ② 从私有仓库拉取数据库(增量基准) | |
| - name: 拉取私有仓库数据 | |
| run: | | |
| git clone https://x-access-token:${{ secrets.GH_PAT }}@github.com/shengdaozm/traktData.git /tmp/data-repo | |
| mkdir -p data/reports | |
| cp /tmp/data-repo/data/trakt.db data/trakt.db | |
| cp -r /tmp/data-repo/data/reports/. data/reports/ 2>/dev/null || true | |
| # ③ 配置 Python 环境 | |
| - name: 配置 Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| cache: 'pip' | |
| # ④ 安装依赖 | |
| - name: 安装 Python 依赖 | |
| run: pip install -r requirements.txt | |
| # ⑤ 执行数据抓取 | |
| - name: 抓取 Trakt 数据 | |
| run: python -m scripts.fetch | |
| env: | |
| TRAKT_CLIENT_ID: ${{ secrets.TRAKT_CLIENT_ID }} | |
| TRAKT_USERNAME: ${{ secrets.TRAKT_USERNAME }} | |
| TMDB_API_KEY: ${{ secrets.TMDB_API_KEY }} | |
| # ⑥ 生成前端 JSON 数据 | |
| - name: 生成前端数据 | |
| run: python -m scripts.render | |
| # ⑦ 推送数据到私有仓库(数据库 + 前端 JSON) | |
| - name: 推送数据到私有仓库 | |
| run: | | |
| cp data/trakt.db /tmp/data-repo/data/trakt.db | |
| mkdir -p /tmp/data-repo/data/reports | |
| cp -r data/reports/. /tmp/data-repo/data/reports/ 2>/dev/null || true | |
| mkdir -p /tmp/data-repo/web/data | |
| cp -r web/data/. /tmp/data-repo/web/data/ 2>/dev/null || true | |
| cd /tmp/data-repo | |
| git config user.name "github-actions[bot]" | |
| git config user.email "github-actions[bot]@users.noreply.github.com" | |
| git add data/ web/data/ | |
| if git diff --cached --quiet; then | |
| echo "数据无变更,跳过提交" | |
| else | |
| git commit -m "data: 自动更新 $(date -u +'%Y-%m-%dT%H:%M:%SZ')" | |
| git push | |
| fi | |
| # ⑧ 提交前端数据到公开仓库 | |
| - name: 提交前端数据变更 | |
| run: | | |
| git config user.name "github-actions[bot]" | |
| git config user.email "github-actions[bot]@users.noreply.github.com" | |
| git add -f web/data/ | |
| if git diff --cached --quiet; then | |
| echo "前端数据无变更,跳过提交" | |
| else | |
| git commit -m "data: 自动更新前端数据 $(date -u +'%Y-%m-%dT%H:%M:%SZ')" | |
| git push | |
| fi |