name: Test IPTV file quality

on:
  push:
    branches: [ master ]
  workflow_dispatch:

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Setup Node
        uses: actions/setup-node@v1
        with:
          node-version: "16.x"

      - name: Install m3u-linter and check the playlist
        run: |
          npm install -g m3u-linter || true
          cat <<EOF > M3u-linter.config.json
            {
              "files": ["playlist1.m3u", "playlist2.m3u"],
              "rules": {
                "no-empty-lines": true,
                "require-header": true,
                "attribute-quotes": true,
                "require-info": true,
                "no-trailing-spaces": true,
                "no-whitespace-before-title": true,
                "no-multi-spaces": false,
                "no-extra-comma": true,
                "space-before-paren": false,
                "no-dash": true
              }
            }
          EOF
          ls -lar ./ || true
          cat playlist.m3u8 || true
          m3u-linter -c ./M3u-linter.config.json ./playlist.m3u8

      - name: Install IPTV Checker and check the playlist
        run: |
          npm install -g iptv-checker || true
          mkdir -p output
          sudo apt-get install -y ffmpeg
          iptv-checker -o output -p 100 -t 120000 ./playlist.m3u8