name: fetch epg

on:
  schedule:
    - cron: "45 2,10,18 * * *"
  workflow_dispatch:

jobs:
  epg-fetcher:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Cache venv
        uses: actions/cache@v3
        with:
          path: .venv
          key: shared-venv-${{ runner.os }}-${{ hashFiles('uv.lock') }}
          restore-keys: |
            shared-venv-${{ runner.os }}-

      - name: Install uv
        uses: astral-sh/setup-uv@v6
        with:
          version: "latest"
          enable-cache: true
          ignore-nothing-to-cache: true
          cache-dependency-glob: "uv.lock"

      - name: Setup Python
        uses: actions/setup-python@v5
        with:
          python-version-file: "pyproject.toml"

      - name: Fetch EPG
        run: uv run EPG/fetch.py

      - name: Push changes
        uses: stefanzweifel/git-auto-commit-action@v6
        with:
          commit_message: "update EPG"
          file_pattern: "EPG/TV.xml"
          commit_author: "GitHub Actions Bot <actions@github.com>"
          commit_user_name: "GitHub Actions Bot"
          commit_user_email: "actions@github.com"
