name: Config Update

on:
  push:
    branches: [ main ]
  workflow_dispatch:
  schedule:
    - cron: '0 12 * * *'

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: "Setup sing-box"
      env:
        SING_BOX_DEB_URL: "https://github.com/SagerNet/sing-box/releases/download/v1.10.0-alpha.27/sing-box_1.10.0-alpha.27_linux_amd64.deb"
      run: |
          set -Eeuo pipefail
          wget -O sing-box.deb $SING_BOX_DEB_URL
          sudo dpkg -i sing-box.deb
    - name: Set up Python3
      uses: actions/setup-python@v2
      with:
        python-version: 3.x
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install pandas requests pyyaml
    - name: Download content
      run: |
        URL="https://raw.githubusercontent.com/AdguardTeam/AdguardFilters/master/BaseFilter/sections/adservers.txt"
        OUTPUT_FILE="./rule/adservers.txt"

        curl -L $URL -o $OUTPUT_FILE

        if [ -f "$OUTPUT_FILE" ]; then
          echo "Download successful: $OUTPUT_FILE"
        else
          echo "Download failed."
          exit 1
        fi
    - name: Convert AdGuard DNS Filter to sing-box rule set
      run: |
        sing-box rule-set convert --type adguard --output ./rule/adservers.srs ./rule/adservers.txt
    - name: Run script
      run: python ../main.py
      working-directory: ./rule/
    - name: Commit and push config.json
      run: |
        git config --global user.email "action@github.com"
        git config --global user.name "GitHub Action"
        git add ./rule/*.json
        git add ./rule/*.srs
        git add ./rule/*.txt

        # 检查是否有文件被修改
        if git diff --staged --quiet; then
          echo "No changes to commit"
          exit 0
        else
          git commit -m "Update rules"
          git push
        fi
