name: Sort My Privacy DNS's lists

on:
  push:
    branches:
      - 'master'
    # schedule:
    #   - cron: '10 * * * *'

env:
  GIT_NAME: '${{ secrets.GIT_NAME }}'
  GIT_EMAIL: '${{ secrets.GIT_EMAIL }}'
  GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'

jobs:
  scheduler:
    name: Trigger action
    runs-on: '${{ matrix.os }}'

    strategy:
      fail-fast: false
      matrix:
        python_version:
          - '3.11'
        os:
          - ubuntu-latest

    steps:
      - uses: actions/checkout@main #Obviously yet another american...
        name: Clone repository
        with:
          token: '${{ secrets.GITHUB_TOKEN }}'

      - name: Install requirements
        run: |
          sudo bash "${{ github.workspace }}/scripts/dependencies.sh"

      - name: Install MyPDNS
        run: |
          pip install --no-cache-dir mypdns

      # - name: 'Sort our lists for doublets and order by alphabet'
      # run: sh "${{ github.workspace }}/tools/domain-list-sort.sh

      - name: 'Sort our rpz-nsdname for doublets and order by alphabet'
        run: |
          find "${{ github.workspace }}/source/" -type f -name '*.rpz-nsdname' \
          -exec bash -c "sort -i -u -f '{}' -o '{}' " \;

      # - name: 'Combine domain and wildcard domains for external usages'
      #   run: |
      #     cd "${{ github.workspace }}"
      #     find "${{ github.workspace }}/source/" -type f -name 'combined.txt' \
      #     -delete

      #     for d in `find source/ -mindepth 1 -maxdepth 3 -type d`
      #     do
      #         cat ${d[@]}/*.list > ${d[@]}/combined.txt
      #     done

      - name: 'import ShadowWhisperer'
        continue-on-error: true
        run: |
          curl "https://raw.githubusercontent.com/ShadowWhisperer/BlockLists/master/RAW/Adult" \
            -o "${{ github.workspace }}/source/porn_filters/imported/adult.ShadowWhisperer"

      # - name: 'Import latest working example of safe search from safesearch.mypdns.cloud'
      #   run: |
      #     rm "${{ github.workspace }}/safesearch/safesearch.mypdns.cloud.rpz"

      #     drill axfr @axfr.mypdns.cloud -p 5303 safesearch.mypdns.cloud \
      #       | grep -vE '^($|;)' >> ${{ github.workspace }}/safesearch/safesearch.mypdns.cloud.rpz

      - name: Git Status
        run: git status

      - name: Commit changes
        continue-on-error: true
        run: |
          tag=$(date +'day: %j of year %Y %H:%M:%S')
          git config --local user.email "$GIT_EMAIL"
          git config --local user.name "$GIT_NAME"
          git commit -m "Committed new lists $tag" -a
          git pull --rebase

      - name: Push changes
        continue-on-error: true
        uses: ad-m/github-push-action@master
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          branch: ${{ github.ref }}
