diff --git a/.github/workflows/_check.yml b/.github/workflows/_check.yml index 341e0f8d..e2e0f0ef 100644 --- a/.github/workflows/_check.yml +++ b/.github/workflows/_check.yml @@ -8,12 +8,24 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - name: Download channels from API + with: + fetch-depth: 2 + - name: Download data from API run: | mkdir -p scripts/data curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - id: files - uses: jitterbit/get-changed-files@v1 - - run: npm install - - run: npm run lint -- ${{ steps.files.outputs.added_modified }} - - run: npm run validate -- ${{ steps.files.outputs.added_modified }} + - uses: actions/setup-node@v2 + if: ${{ !env.ACT && steps.files.outputs.any_changed == 'true' }} + with: + node-version: '14' + cache: 'npm' + - uses: tj-actions/changed-files@v12.2 + id: files + with: + files: 'sites' + - name: validate + if: steps.files.outputs.any_changed == 'true' + run: | + npm install + npm run channels:lint -- ${{ steps.files.outputs.all_changed_files }} + npm run channels:validate -- ${{ steps.files.outputs.all_changed_files }} diff --git a/.github/workflows/_load.yml b/.github/workflows/_load.yml new file mode 100644 index 00000000..17e58f35 --- /dev/null +++ b/.github/workflows/_load.yml @@ -0,0 +1,48 @@ +name: _load +on: + workflow_call: + inputs: + site: + required: true + type: string + secrets: + APP_ID: + required: true + APP_PRIVATE_KEY: + required: true +jobs: + load: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Download data from API + run: | + mkdir -p scripts/data + curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json + - uses: FedericoCarboni/setup-ffmpeg@v1 + - uses: actions/setup-node@v2 + if: ${{ !env.ACT }} + with: + node-version: '14' + cache: 'npm' + - run: npm install + - run: CHANNELS_PATH=sites/${{inputs.site}}/*.channels.xml npm run queue:create -- --max-clusters=1 --days=2 + - run: NODE_OPTIONS=--insecure-http-parser npm run cluster:load -- --timeout=30000 --cluster-id=1 + - run: npm run programs:save + - run: npm run guides:update + - uses: tibdex/github-app-token@v1 + if: ${{ !env.ACT }} + id: create-app-token + with: + app_id: ${{ secrets.APP_ID }} + private_key: ${{ secrets.APP_PRIVATE_KEY }} + - uses: JamesIves/github-pages-deploy-action@4.1.1 + if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} + with: + branch: gh-pages + folder: .gh-pages + token: ${{ steps.create-app-token.outputs.token }} + git-config-name: iptv-bot[bot] + git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com + commit-message: '[Bot] Deploy to GitHub Pages' + clean: false diff --git a/.github/workflows/_trigger.yml b/.github/workflows/_trigger.yml new file mode 100644 index 00000000..e866e272 --- /dev/null +++ b/.github/workflows/_trigger.yml @@ -0,0 +1,8 @@ +name: _trigger +on: + workflow_dispatch: +jobs: + start: + runs-on: ubuntu-latest + steps: + - run: echo 'Starting all workflows...' diff --git a/.github/workflows/_update-api.yml b/.github/workflows/_update-api.yml index 38433931..927ed780 100644 --- a/.github/workflows/_update-api.yml +++ b/.github/workflows/_update-api.yml @@ -4,12 +4,17 @@ on: schedule: - cron: '0 12 * * *' jobs: - check: + update: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + if: ${{ !env.ACT }} + with: + node-version: '14' + cache: 'npm' - run: npm install - - run: node scripts/commands/update-api.js + - run: npm run api:update - uses: tibdex/github-app-token@v1 if: ${{ !env.ACT }} id: create-app-token @@ -21,7 +26,7 @@ jobs: with: repository-name: iptv-org/api branch: gh-pages - folder: .gh-pages/api + folder: .api token: ${{ steps.create-app-token.outputs.token }} git-config-name: iptv-bot[bot] git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com diff --git a/.github/workflows/_update-readme.yml b/.github/workflows/_update-readme.yml new file mode 100644 index 00000000..1a1e1132 --- /dev/null +++ b/.github/workflows/_update-readme.yml @@ -0,0 +1,57 @@ +name: _update-readme +on: + workflow_dispatch: + schedule: + - cron: '0 12 * * *' +jobs: + update: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - run: echo "::set-output name=branch_name::$(date +'bot/auto-update-%s')" + id: create-branch-name + - run: git config user.name 'iptv-bot[bot]' + - run: git config user.email '84861620+iptv-bot[bot]@users.noreply.github.com' + - run: git checkout -b ${{ steps.create-branch-name.outputs.branch_name }} + - name: Download data from API + run: | + mkdir -p scripts/data + curl -L -o scripts/data/countries.json https://iptv-org.github.io/api/countries.json + - uses: actions/setup-node@v2 + if: ${{ !env.ACT }} + with: + node-version: '14' + cache: 'npm' + - run: npm install + - run: npm run readme:update + - name: Commit Changes + if: ${{ !env.ACT }} + run: | + git add README.md + git commit -m "[Bot] Update README.md" + git status + git push -u origin ${{ steps.create-branch-name.outputs.branch_name }} + - uses: tibdex/github-app-token@v1 + if: ${{ !env.ACT }} + id: create-app-token + with: + app_id: ${{ secrets.APP_ID }} + private_key: ${{ secrets.APP_PRIVATE_KEY }} + - uses: repo-sync/pull-request@v2 + if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} + id: pull-request + with: + github_token: ${{ steps.create-app-token.outputs.token }} + source_branch: ${{ steps.create-branch-name.outputs.branch_name }} + destination_branch: 'master' + pr_title: '[Bot] Daily update' + pr_body: | + This pull request is created via [update-readme][1] workflow. + + [1]: https://github.com/iptv-org/epg/actions/runs/${{ github.run_id }} + - uses: juliangruber/merge-pull-request-action@v1 + if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} + with: + github-token: ${{ secrets.PAT }} + number: ${{ steps.pull-request.outputs.pr_number }} + method: squash diff --git a/.github/workflows/allente.se.yml b/.github/workflows/allente.se.yml index 9b14dc89..6cce784f 100644 --- a/.github/workflows/allente.se.yml +++ b/.github/workflows/allente.se.yml @@ -1,36 +1,17 @@ name: allente.se on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/andorradifusio.ad.yml b/.github/workflows/andorradifusio.ad.yml index 4a2c7b2f..3c9e7273 100644 --- a/.github/workflows/andorradifusio.ad.yml +++ b/.github/workflows/andorradifusio.ad.yml @@ -1,36 +1,17 @@ name: andorradifusio.ad on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/arianaafgtv.com.yml b/.github/workflows/arianaafgtv.com.yml index b92af68c..ecc02af7 100644 --- a/.github/workflows/arianaafgtv.com.yml +++ b/.github/workflows/arianaafgtv.com.yml @@ -1,36 +1,17 @@ name: arianaafgtv.com on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/arianatelevision.com.yml b/.github/workflows/arianatelevision.com.yml index b42327ac..8cbe2661 100644 --- a/.github/workflows/arianatelevision.com.yml +++ b/.github/workflows/arianatelevision.com.yml @@ -1,36 +1,17 @@ name: arianatelevision.com on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/astro.com.my.yml b/.github/workflows/astro.com.my.yml index 15dc23cf..0ae0724f 100644 --- a/.github/workflows/astro.com.my.yml +++ b/.github/workflows/astro.com.my.yml @@ -1,36 +1,17 @@ name: astro.com.my on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/beinsports.com.yml b/.github/workflows/beinsports.com.yml index 7b736c96..33f05e27 100644 --- a/.github/workflows/beinsports.com.yml +++ b/.github/workflows/beinsports.com.yml @@ -1,36 +1,17 @@ name: beinsports.com on: - workflow_dispatch: schedule: - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/canalplus-afrique.com.yml b/.github/workflows/canalplus-afrique.com.yml index c05ab90c..959f8817 100644 --- a/.github/workflows/canalplus-afrique.com.yml +++ b/.github/workflows/canalplus-afrique.com.yml @@ -1,36 +1,17 @@ name: canalplus-afrique.com on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/canalplus-caraibes.com.yml b/.github/workflows/canalplus-caraibes.com.yml index fec86a58..e29f7ce8 100644 --- a/.github/workflows/canalplus-caraibes.com.yml +++ b/.github/workflows/canalplus-caraibes.com.yml @@ -1,36 +1,17 @@ name: canalplus-caraibes.com on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/canalplus-haiti.com.yml b/.github/workflows/canalplus-haiti.com.yml index 329b69d5..fe871859 100644 --- a/.github/workflows/canalplus-haiti.com.yml +++ b/.github/workflows/canalplus-haiti.com.yml @@ -1,36 +1,17 @@ name: canalplus-haiti.com on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/canalplus-reunion.com.yml b/.github/workflows/canalplus-reunion.com.yml index d4ef3da4..38f6c038 100644 --- a/.github/workflows/canalplus-reunion.com.yml +++ b/.github/workflows/canalplus-reunion.com.yml @@ -1,36 +1,17 @@ name: canalplus-reunion.com on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/chaines-tv.orange.fr.yml b/.github/workflows/chaines-tv.orange.fr.yml index 644bf577..450403d4 100644 --- a/.github/workflows/chaines-tv.orange.fr.yml +++ b/.github/workflows/chaines-tv.orange.fr.yml @@ -1,36 +1,17 @@ name: chaines-tv.orange.fr on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/comteco.com.bo.yml b/.github/workflows/comteco.com.bo.yml index f0bd98a8..df258366 100644 --- a/.github/workflows/comteco.com.bo.yml +++ b/.github/workflows/comteco.com.bo.yml @@ -1,36 +1,17 @@ name: comteco.com.bo on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/cosmote.gr.yml b/.github/workflows/cosmote.gr.yml index f410bf3d..9e2dc33d 100644 --- a/.github/workflows/cosmote.gr.yml +++ b/.github/workflows/cosmote.gr.yml @@ -1,36 +1,17 @@ name: cosmote.gr on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/delta.nl.yml b/.github/workflows/delta.nl.yml index 4c56358d..dd14616e 100644 --- a/.github/workflows/delta.nl.yml +++ b/.github/workflows/delta.nl.yml @@ -1,36 +1,17 @@ name: delta.nl on: - workflow_dispatch: schedule: - cron: '10 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/digiturk.com.tr.yml b/.github/workflows/digiturk.com.tr.yml index 9b574ef7..c3fd0075 100644 --- a/.github/workflows/digiturk.com.tr.yml +++ b/.github/workflows/digiturk.com.tr.yml @@ -1,36 +1,17 @@ name: digiturk.com.tr on: - workflow_dispatch: schedule: - - cron: '0 0 * * *' + - cron: '10 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/directv.com.yml b/.github/workflows/directv.com.yml index 9089dd42..56024334 100644 --- a/.github/workflows/directv.com.yml +++ b/.github/workflows/directv.com.yml @@ -1,36 +1,17 @@ name: directv.com on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/dishtv.in.yml b/.github/workflows/dishtv.in.yml index 37cd6537..3ea9921b 100644 --- a/.github/workflows/dishtv.in.yml +++ b/.github/workflows/dishtv.in.yml @@ -1,36 +1,17 @@ name: dishtv.in on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/dsmart.com.tr.yml b/.github/workflows/dsmart.com.tr.yml index d6512491..055f3339 100644 --- a/.github/workflows/dsmart.com.tr.yml +++ b/.github/workflows/dsmart.com.tr.yml @@ -1,36 +1,17 @@ name: dsmart.com.tr on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/dstv.com.yml b/.github/workflows/dstv.com.yml index 27b2ba6b..7c94c891 100644 --- a/.github/workflows/dstv.com.yml +++ b/.github/workflows/dstv.com.yml @@ -1,36 +1,17 @@ name: dstv.com on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/elcinema.com.yml b/.github/workflows/elcinema.com.yml index 2f9a3ef6..85d8839d 100644 --- a/.github/workflows/elcinema.com.yml +++ b/.github/workflows/elcinema.com.yml @@ -1,36 +1,17 @@ name: elcinema.com on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/frikanalen.no.yml b/.github/workflows/frikanalen.no.yml index b9c3fdba..a3a1c0cd 100644 --- a/.github/workflows/frikanalen.no.yml +++ b/.github/workflows/frikanalen.no.yml @@ -1,36 +1,17 @@ name: frikanalen.no on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/gatotv.com.yml b/.github/workflows/gatotv.com.yml index a7c53db1..5c176e90 100644 --- a/.github/workflows/gatotv.com.yml +++ b/.github/workflows/gatotv.com.yml @@ -1,36 +1,17 @@ name: gatotv.com on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/guidatv.sky.it.yml b/.github/workflows/guidatv.sky.it.yml index 7eb69d59..d49848ea 100644 --- a/.github/workflows/guidatv.sky.it.yml +++ b/.github/workflows/guidatv.sky.it.yml @@ -1,36 +1,17 @@ name: guidatv.sky.it on: - workflow_dispatch: schedule: - - cron: '0 0 * * *' + - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/hd-plus.de.yml b/.github/workflows/hd-plus.de.yml index 486616b6..cbd18d3a 100644 --- a/.github/workflows/hd-plus.de.yml +++ b/.github/workflows/hd-plus.de.yml @@ -1,36 +1,17 @@ name: hd-plus.de on: - workflow_dispatch: schedule: - - cron: '0 0 * * *' + - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/ipko.com.yml b/.github/workflows/ipko.com.yml index 53de7a6f..35b1bf32 100644 --- a/.github/workflows/ipko.com.yml +++ b/.github/workflows/ipko.com.yml @@ -1,36 +1,17 @@ name: ipko.com on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/knr.gl.yml b/.github/workflows/knr.gl.yml index f30896e3..3faa5eac 100644 --- a/.github/workflows/knr.gl.yml +++ b/.github/workflows/knr.gl.yml @@ -1,36 +1,17 @@ name: knr.gl on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/kvf.fo.yml b/.github/workflows/kvf.fo.yml index 27f77d63..a33e8245 100644 --- a/.github/workflows/kvf.fo.yml +++ b/.github/workflows/kvf.fo.yml @@ -1,36 +1,17 @@ name: kvf.fo on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/m.tv.sms.cz.yml b/.github/workflows/m.tv.sms.cz.yml index 554e7c0e..46b8c7f1 100644 --- a/.github/workflows/m.tv.sms.cz.yml +++ b/.github/workflows/m.tv.sms.cz.yml @@ -1,36 +1,17 @@ name: m.tv.sms.cz on: - workflow_dispatch: schedule: - - cron: '0 0 * * *' + - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/magticom.ge.yml b/.github/workflows/magticom.ge.yml index ad923448..fbb4832b 100644 --- a/.github/workflows/magticom.ge.yml +++ b/.github/workflows/magticom.ge.yml @@ -1,36 +1,17 @@ name: magticom.ge on: - workflow_dispatch: schedule: - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/maxtv.hrvatskitelekom.hr.yml b/.github/workflows/maxtv.hrvatskitelekom.hr.yml index 318b8a42..601d261e 100644 --- a/.github/workflows/maxtv.hrvatskitelekom.hr.yml +++ b/.github/workflows/maxtv.hrvatskitelekom.hr.yml @@ -1,36 +1,17 @@ name: maxtv.hrvatskitelekom.hr on: - workflow_dispatch: schedule: - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/maxtvgo.mk.yml b/.github/workflows/maxtvgo.mk.yml index 8aa45c99..a8fd5a3e 100644 --- a/.github/workflows/maxtvgo.mk.yml +++ b/.github/workflows/maxtvgo.mk.yml @@ -1,36 +1,17 @@ name: maxtvgo.mk on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/mbc.net.yml b/.github/workflows/mbc.net.yml index a6dbd993..bc33eae3 100644 --- a/.github/workflows/mbc.net.yml +++ b/.github/workflows/mbc.net.yml @@ -1,36 +1,17 @@ name: mbc.net on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/mediaset.it.yml b/.github/workflows/mediaset.it.yml index e3998d61..e96f1efb 100644 --- a/.github/workflows/mediaset.it.yml +++ b/.github/workflows/mediaset.it.yml @@ -1,36 +1,17 @@ name: mediaset.it on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/meo.pt.yml b/.github/workflows/meo.pt.yml index 3ad344ca..e3384f6f 100644 --- a/.github/workflows/meo.pt.yml +++ b/.github/workflows/meo.pt.yml @@ -1,36 +1,17 @@ name: meo.pt on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/mi.tv.yml b/.github/workflows/mi.tv.yml index 62a18f3b..02c27257 100644 --- a/.github/workflows/mi.tv.yml +++ b/.github/workflows/mi.tv.yml @@ -1,36 +1,17 @@ name: mi.tv on: - workflow_dispatch: schedule: - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/mncvision.id.yml b/.github/workflows/mncvision.id.yml index c853896e..75007453 100644 --- a/.github/workflows/mncvision.id.yml +++ b/.github/workflows/mncvision.id.yml @@ -1,36 +1,17 @@ name: mncvision.id on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/mtel.ba.yml b/.github/workflows/mtel.ba.yml index 6ece9460..f1f62068 100644 --- a/.github/workflows/mtel.ba.yml +++ b/.github/workflows/mtel.ba.yml @@ -1,36 +1,17 @@ name: mtel.ba on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/mts.rs.yml b/.github/workflows/mts.rs.yml index 6505b594..93ae2f33 100644 --- a/.github/workflows/mts.rs.yml +++ b/.github/workflows/mts.rs.yml @@ -1,36 +1,17 @@ name: mts.rs on: - workflow_dispatch: schedule: - - cron: '5 0 * * *' + - cron: '10 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/novacyprus.com.yml b/.github/workflows/novacyprus.com.yml index 37eee38d..53d3b27c 100644 --- a/.github/workflows/novacyprus.com.yml +++ b/.github/workflows/novacyprus.com.yml @@ -1,36 +1,17 @@ name: novacyprus.com on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/nowplayer.now.com.yml b/.github/workflows/nowplayer.now.com.yml index 0ffdf567..fc1c1b45 100644 --- a/.github/workflows/nowplayer.now.com.yml +++ b/.github/workflows/nowplayer.now.com.yml @@ -1,36 +1,17 @@ name: nowplayer.now.com on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/ontvtonight.com.yml b/.github/workflows/ontvtonight.com.yml index 42ed8d77..c45fc3d0 100644 --- a/.github/workflows/ontvtonight.com.yml +++ b/.github/workflows/ontvtonight.com.yml @@ -1,36 +1,17 @@ name: ontvtonight.com on: - workflow_dispatch: schedule: - - cron: '0 0 * * *' + - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/osn.com.yml b/.github/workflows/osn.com.yml index 0f429afb..228945d9 100644 --- a/.github/workflows/osn.com.yml +++ b/.github/workflows/osn.com.yml @@ -1,36 +1,17 @@ name: osn.com on: - workflow_dispatch: schedule: - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/pbsguam.org.yml b/.github/workflows/pbsguam.org.yml index 3f108a33..d5c85dd0 100644 --- a/.github/workflows/pbsguam.org.yml +++ b/.github/workflows/pbsguam.org.yml @@ -1,36 +1,17 @@ name: pbsguam.org on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/programacion-tv.elpais.com.yml b/.github/workflows/programacion-tv.elpais.com.yml index e6de61d4..52ebf0d2 100644 --- a/.github/workflows/programacion-tv.elpais.com.yml +++ b/.github/workflows/programacion-tv.elpais.com.yml @@ -1,36 +1,17 @@ name: programacion-tv.elpais.com on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/programetv.ro.yml b/.github/workflows/programetv.ro.yml index 923ad715..da0829b2 100644 --- a/.github/workflows/programetv.ro.yml +++ b/.github/workflows/programetv.ro.yml @@ -1,36 +1,17 @@ name: programetv.ro on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/programme-tv.net.yml b/.github/workflows/programme-tv.net.yml index 7e2c8c17..c7525968 100644 --- a/.github/workflows/programme-tv.net.yml +++ b/.github/workflows/programme-tv.net.yml @@ -1,36 +1,17 @@ name: programme-tv.net on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/programme-tv.vini.pf.yml b/.github/workflows/programme-tv.vini.pf.yml index 7af6630b..2ebdb93f 100644 --- a/.github/workflows/programme-tv.vini.pf.yml +++ b/.github/workflows/programme-tv.vini.pf.yml @@ -1,36 +1,17 @@ name: programme-tv.vini.pf on: - workflow_dispatch: schedule: - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/programtv.onet.pl.yml b/.github/workflows/programtv.onet.pl.yml index 27607c7b..0f2703fc 100644 --- a/.github/workflows/programtv.onet.pl.yml +++ b/.github/workflows/programtv.onet.pl.yml @@ -1,36 +1,17 @@ name: programtv.onet.pl on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/rev.bs.yml b/.github/workflows/rev.bs.yml index fa5462a5..87d8a91c 100644 --- a/.github/workflows/rev.bs.yml +++ b/.github/workflows/rev.bs.yml @@ -1,36 +1,17 @@ name: rev.bs on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/rotana.net.yml b/.github/workflows/rotana.net.yml index ff14faaa..3c2834a0 100644 --- a/.github/workflows/rotana.net.yml +++ b/.github/workflows/rotana.net.yml @@ -1,36 +1,17 @@ name: rotana.net on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/rtb.gov.bn.yml b/.github/workflows/rtb.gov.bn.yml index 5f4a7b62..3467fb71 100644 --- a/.github/workflows/rtb.gov.bn.yml +++ b/.github/workflows/rtb.gov.bn.yml @@ -1,36 +1,17 @@ name: rtb.gov.bn on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/ruv.is.yml b/.github/workflows/ruv.is.yml index d703c3d3..8fde6f06 100644 --- a/.github/workflows/ruv.is.yml +++ b/.github/workflows/ruv.is.yml @@ -1,36 +1,17 @@ name: ruv.is on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/siba.com.co.yml b/.github/workflows/siba.com.co.yml index a244874b..ca1b77a1 100644 --- a/.github/workflows/siba.com.co.yml +++ b/.github/workflows/siba.com.co.yml @@ -1,36 +1,17 @@ name: siba.com.co on: - workflow_dispatch: schedule: - - cron: '5 0 * * *' + - cron: '10 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/sky.com.yml b/.github/workflows/sky.com.yml index 4d7289fa..eb63199f 100644 --- a/.github/workflows/sky.com.yml +++ b/.github/workflows/sky.com.yml @@ -1,36 +1,17 @@ name: sky.com on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/sky.de.yml b/.github/workflows/sky.de.yml new file mode 100644 index 00000000..0e2c6e97 --- /dev/null +++ b/.github/workflows/sky.de.yml @@ -0,0 +1,17 @@ +name: sky.de +on: + schedule: + - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed +jobs: + load: + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/teliatv.ee.yml b/.github/workflows/teliatv.ee.yml index 7904ea46..eb61d449 100644 --- a/.github/workflows/teliatv.ee.yml +++ b/.github/workflows/teliatv.ee.yml @@ -1,36 +1,17 @@ name: teliatv.ee on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/telkussa.fi.yml b/.github/workflows/telkussa.fi.yml index d67c1183..6efb54bd 100644 --- a/.github/workflows/telkussa.fi.yml +++ b/.github/workflows/telkussa.fi.yml @@ -1,36 +1,17 @@ name: telkussa.fi on: - workflow_dispatch: schedule: - - cron: '0 0 * * *' + - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/turksatkablo.com.tr.yml b/.github/workflows/turksatkablo.com.tr.yml index 64203051..0728a43d 100644 --- a/.github/workflows/turksatkablo.com.tr.yml +++ b/.github/workflows/turksatkablo.com.tr.yml @@ -1,36 +1,17 @@ name: turksatkablo.com.tr on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tv.blue.ch.yml b/.github/workflows/tv.blue.ch.yml index 76bb4f19..171a30cc 100644 --- a/.github/workflows/tv.blue.ch.yml +++ b/.github/workflows/tv.blue.ch.yml @@ -1,36 +1,17 @@ name: tv.blue.ch on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tv.cctv.com.yml b/.github/workflows/tv.cctv.com.yml index 51bef710..889684b9 100644 --- a/.github/workflows/tv.cctv.com.yml +++ b/.github/workflows/tv.cctv.com.yml @@ -1,36 +1,17 @@ name: tv.cctv.com on: - workflow_dispatch: schedule: - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tv.dir.bg.yml b/.github/workflows/tv.dir.bg.yml index 49b3bfd9..3626c0c3 100644 --- a/.github/workflows/tv.dir.bg.yml +++ b/.github/workflows/tv.dir.bg.yml @@ -1,36 +1,17 @@ name: tv.dir.bg on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tv.lv.yml b/.github/workflows/tv.lv.yml index af73a648..94317775 100644 --- a/.github/workflows/tv.lv.yml +++ b/.github/workflows/tv.lv.yml @@ -1,36 +1,17 @@ name: tv.lv on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tv.mail.ru.yml b/.github/workflows/tv.mail.ru.yml index e6666813..35c29526 100644 --- a/.github/workflows/tv.mail.ru.yml +++ b/.github/workflows/tv.mail.ru.yml @@ -1,36 +1,17 @@ name: tv.mail.ru on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tv.trueid.net.yml b/.github/workflows/tv.trueid.net.yml index 832cb182..f328a1ce 100644 --- a/.github/workflows/tv.trueid.net.yml +++ b/.github/workflows/tv.trueid.net.yml @@ -1,36 +1,17 @@ name: tv.trueid.net on: - workflow_dispatch: schedule: - - cron: '0 0 * * *' + - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tv.yandex.ru.yml b/.github/workflows/tv.yandex.ru.yml index 0e4d1448..bbd031d3 100644 --- a/.github/workflows/tv.yandex.ru.yml +++ b/.github/workflows/tv.yandex.ru.yml @@ -1,36 +1,17 @@ name: tv.yandex.ru on: - workflow_dispatch: schedule: - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tv2go.t-2.net.yml b/.github/workflows/tv2go.t-2.net.yml index 59a02dd2..d28c5449 100644 --- a/.github/workflows/tv2go.t-2.net.yml +++ b/.github/workflows/tv2go.t-2.net.yml @@ -1,36 +1,17 @@ name: tv2go.t-2.net on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tva.tv.yml b/.github/workflows/tva.tv.yml index 59847130..d72cf934 100644 --- a/.github/workflows/tva.tv.yml +++ b/.github/workflows/tva.tv.yml @@ -1,36 +1,17 @@ name: tva.tv on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tvarenasport.com.yml b/.github/workflows/tvarenasport.com.yml index 16826cc9..8d0d65fe 100644 --- a/.github/workflows/tvarenasport.com.yml +++ b/.github/workflows/tvarenasport.com.yml @@ -1,36 +1,17 @@ name: tvarenasport.com on: - workflow_dispatch: schedule: - - cron: '0 0 * * *' + - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tvarenasport.hr.yml b/.github/workflows/tvarenasport.hr.yml index 044c6aa9..d7c21394 100644 --- a/.github/workflows/tvarenasport.hr.yml +++ b/.github/workflows/tvarenasport.hr.yml @@ -1,36 +1,17 @@ name: tvarenasport.hr on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tvcubana.icrt.cu.yml b/.github/workflows/tvcubana.icrt.cu.yml index 877a7b52..7a666b7f 100644 --- a/.github/workflows/tvcubana.icrt.cu.yml +++ b/.github/workflows/tvcubana.icrt.cu.yml @@ -1,36 +1,17 @@ name: tvcubana.icrt.cu on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tvgid.ua.yml b/.github/workflows/tvgid.ua.yml index cbc44b7a..ca5add6e 100644 --- a/.github/workflows/tvgid.ua.yml +++ b/.github/workflows/tvgid.ua.yml @@ -1,36 +1,17 @@ name: tvgid.ua on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tvguide.com.yml b/.github/workflows/tvguide.com.yml index af05b20c..2b8b8ca1 100644 --- a/.github/workflows/tvguide.com.yml +++ b/.github/workflows/tvguide.com.yml @@ -1,36 +1,17 @@ name: tvguide.com on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tvguide.myjcom.jp.yml b/.github/workflows/tvguide.myjcom.jp.yml index 642d756f..22c0a402 100644 --- a/.github/workflows/tvguide.myjcom.jp.yml +++ b/.github/workflows/tvguide.myjcom.jp.yml @@ -1,36 +1,17 @@ name: tvguide.myjcom.jp on: - workflow_dispatch: schedule: - - cron: '0 0 * * *' + - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tvheute.at.yml b/.github/workflows/tvheute.at.yml index de72d826..ac4afdb2 100644 --- a/.github/workflows/tvheute.at.yml +++ b/.github/workflows/tvheute.at.yml @@ -1,36 +1,17 @@ name: tvheute.at on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tvim.tv.yml b/.github/workflows/tvim.tv.yml index 95252295..db5d2c87 100644 --- a/.github/workflows/tvim.tv.yml +++ b/.github/workflows/tvim.tv.yml @@ -1,36 +1,17 @@ name: tvim.tv on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tvmusor.hu.yml b/.github/workflows/tvmusor.hu.yml index 12118897..39776be4 100644 --- a/.github/workflows/tvmusor.hu.yml +++ b/.github/workflows/tvmusor.hu.yml @@ -1,36 +1,17 @@ name: tvmusor.hu on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tvplus.com.tr.yml b/.github/workflows/tvplus.com.tr.yml index c1ee765e..8867361b 100644 --- a/.github/workflows/tvplus.com.tr.yml +++ b/.github/workflows/tvplus.com.tr.yml @@ -1,36 +1,17 @@ name: tvplus.com.tr on: - workflow_dispatch: schedule: - - cron: '0 0 * * *' + - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tvprofil.com.yml b/.github/workflows/tvprofil.com.yml index abab5e00..11db75f8 100644 --- a/.github/workflows/tvprofil.com.yml +++ b/.github/workflows/tvprofil.com.yml @@ -1,36 +1,17 @@ name: tvprofil.com on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/tvtv.us.yml b/.github/workflows/tvtv.us.yml index 620b36d4..5afbce88 100644 --- a/.github/workflows/tvtv.us.yml +++ b/.github/workflows/tvtv.us.yml @@ -1,36 +1,17 @@ name: tvtv.us on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/vidio.com.yml b/.github/workflows/vidio.com.yml index 76fb436b..05497572 100644 --- a/.github/workflows/vidio.com.yml +++ b/.github/workflows/vidio.com.yml @@ -1,36 +1,17 @@ name: vidio.com on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/vivacom.bg.yml b/.github/workflows/vivacom.bg.yml index 14b6b1f8..6a0a45b1 100644 --- a/.github/workflows/vivacom.bg.yml +++ b/.github/workflows/vivacom.bg.yml @@ -1,36 +1,17 @@ name: vivacom.bg on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/vtm.be.yml b/.github/workflows/vtm.be.yml index 6ddc99e8..833efae9 100644 --- a/.github/workflows/vtm.be.yml +++ b/.github/workflows/vtm.be.yml @@ -1,36 +1,17 @@ name: vtm.be on: - workflow_dispatch: schedule: - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/walesi.com.fj.yml b/.github/workflows/walesi.com.fj.yml index b362bdf0..9f33eb61 100644 --- a/.github/workflows/walesi.com.fj.yml +++ b/.github/workflows/walesi.com.fj.yml @@ -1,36 +1,17 @@ name: walesi.com.fj on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/zap.co.ao.yml b/.github/workflows/zap.co.ao.yml index 51c3ad63..784fa93b 100644 --- a/.github/workflows/zap.co.ao.yml +++ b/.github/workflows/zap.co.ao.yml @@ -1,36 +1,17 @@ name: zap.co.ao on: - workflow_dispatch: schedule: - cron: '5 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/znbc.co.zm.yml b/.github/workflows/znbc.co.zm.yml index 0eb8281b..dfb2d98d 100644 --- a/.github/workflows/znbc.co.zm.yml +++ b/.github/workflows/znbc.co.zm.yml @@ -1,36 +1,17 @@ name: znbc.co.zm on: - workflow_dispatch: schedule: - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed jobs: load: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Download channels from API - run: | - mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - - uses: FedericoCarboni/setup-ffmpeg@v1 - - run: npm install - - run: CHANNELS_PATH=sites/${{github.workflow}}/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2 - - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --timeout=30000 --cluster-id=1 - - run: node scripts/commands/save-results.js - - run: node scripts/commands/update-guides.js - - uses: tibdex/github-app-token@v1 - if: ${{ !env.ACT }} - id: create-app-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} - with: - branch: gh-pages - folder: .gh-pages - token: ${{ steps.create-app-token.outputs.token }} - git-config-name: iptv-bot[bot] - git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com - commit-message: '[Bot] Deploy to GitHub Pages' - clean: false + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.readme/template.md b/.readme/template.md index 007571fa..9dc85d98 100644 --- a/.readme/template.md +++ b/.readme/template.md @@ -9,14 +9,14 @@ To load a program guide, all you need to do is copy the link to one or more of t #include "./.readme/_countries.md" -## EPG Codes - -📋  [iptv-org.github.io](https://iptv-org.github.io/) - ## API The API documentation can be found in the [iptv-org/api](https://github.com/iptv-org/api) repository. +## Resources + +Links to other useful IPTV-related resources can be found in the [iptv-org/awesome-iptv](https://github.com/iptv-org/awesome-iptv) repository. + ## Contribution If you find a bug or want to contribute to the code or documentation, you can help by submitting an [issue](https://github.com/iptv-org/epg/issues) or a [pull request](https://github.com/iptv-org/epg/pulls). diff --git a/README.md b/README.md index 52223afb..407ef3b3 100644 --- a/README.md +++ b/README.md @@ -38,15 +38,15 @@ To load a program guide, all you need to do is copy the link to one or more of t 🇧🇦 Bosnia and Herzegovina178https://iptv-org.github.io/epg/guides/ba/mtel.ba.epg.xmlmtel.ba 4https://iptv-org.github.io/epg/guides/ba/tvarenasport.com.epg.xmltvarenasport.com 🇧🇼 Botswana130https://iptv-org.github.io/epg/guides/bw/dstv.com.epg.xmldstv.com - 🇧🇷 Brazil248https://iptv-org.github.io/epg/guides/br/mi.tv.epg.xmlmi.tv - 🇧🇬 Bulgaria105https://iptv-org.github.io/epg/guides/bg/tv.dir.bg.epg.xmltv.dir.bg + 🇧🇷 Brazil251https://iptv-org.github.io/epg/guides/br/mi.tv.epg.xmlmi.tv + 🇧🇬 Bulgaria103https://iptv-org.github.io/epg/guides/bg/tv.dir.bg.epg.xmltv.dir.bg 🇧🇫 Burkina Faso242https://iptv-org.github.io/epg/guides/bf/canalplus-afrique.com.epg.xmlcanalplus-afrique.com 128https://iptv-org.github.io/epg/guides/bf/dstv.com.epg.xmldstv.com 🇧🇮 Burundi242https://iptv-org.github.io/epg/guides/bi/canalplus-afrique.com.epg.xmlcanalplus-afrique.com 128https://iptv-org.github.io/epg/guides/bi/dstv.com.epg.xmldstv.com 🇨🇲 Cameroon242https://iptv-org.github.io/epg/guides/cm/canalplus-afrique.com.epg.xmlcanalplus-afrique.com 128https://iptv-org.github.io/epg/guides/cm/dstv.com.epg.xmldstv.com - 🇨🇦 Canada62https://iptv-org.github.io/epg/guides/ca/tvtv.us.epg.xmltvtv.us + 🇨🇦 Canada76https://iptv-org.github.io/epg/guides/ca/tvtv.us.epg.xmltvtv.us 🇨🇻 Cape Verde242https://iptv-org.github.io/epg/guides/cv/canalplus-afrique.com.epg.xmlcanalplus-afrique.com 125https://iptv-org.github.io/epg/guides/cv/dstv.com.epg.xmldstv.com 🇨🇫 Central African Republic242https://iptv-org.github.io/epg/guides/cf/canalplus-afrique.com.epg.xmlcanalplus-afrique.com @@ -57,17 +57,17 @@ To load a program guide, all you need to do is copy the link to one or more of t 98https://iptv-org.github.io/epg/guides/td-en/osn.com.epg.xmlosn.com 🇨🇱 Chile79https://iptv-org.github.io/epg/guides/cl/mi.tv.epg.xmlmi.tv 52https://iptv-org.github.io/epg/guides/cl/gatotv.com.epg.xmlgatotv.com - 🇨🇳 China98https://iptv-org.github.io/epg/guides/cn/tv.cctv.com.epg.xmltv.cctv.com + 🇨🇳 China97https://iptv-org.github.io/epg/guides/cn/tv.cctv.com.epg.xmltv.cctv.com 🇨🇴 Colombia103https://iptv-org.github.io/epg/guides/co/siba.com.co.epg.xmlsiba.com.co 56https://iptv-org.github.io/epg/guides/co/gatotv.com.epg.xmlgatotv.com 42https://iptv-org.github.io/epg/guides/co/mi.tv.epg.xmlmi.tv 🇰🇲 Comoros119https://iptv-org.github.io/epg/guides/km/canalplus-reunion.com.epg.xmlcanalplus-reunion.com 🇨🇷 Costa Rica49https://iptv-org.github.io/epg/guides/cr/gatotv.com.epg.xmlgatotv.com - 🇭🇷 Croatia169https://iptv-org.github.io/epg/guides/hr/maxtv.hrvatskitelekom.hr.epg.xmlmaxtv.hrvatskitelekom.hr + 🇭🇷 Croatia168https://iptv-org.github.io/epg/guides/hr/maxtv.hrvatskitelekom.hr.epg.xmlmaxtv.hrvatskitelekom.hr 10https://iptv-org.github.io/epg/guides/hr/tvarenasport.hr.epg.xmltvarenasport.hr 🇨🇺 Cuba10https://iptv-org.github.io/epg/guides/cu/tvcubana.icrt.cu.epg.xmltvcubana.icrt.cu 🇨🇾 Cyprus30https://iptv-org.github.io/epg/guides/cy/novacyprus.com.epg.xmlnovacyprus.com - 🇨🇿 Czech Republic512https://iptv-org.github.io/epg/guides/cz/m.tv.sms.cz.epg.xmlm.tv.sms.cz + 🇨🇿 Czech Republic519https://iptv-org.github.io/epg/guides/cz/m.tv.sms.cz.epg.xmlm.tv.sms.cz 🇨🇩 Democratic Republic of the Congo242https://iptv-org.github.io/epg/guides/cd/canalplus-afrique.com.epg.xmlcanalplus-afrique.com 126https://iptv-org.github.io/epg/guides/cd/dstv.com.epg.xmldstv.com 🇩🇰 Denmark61https://iptv-org.github.io/epg/guides/dk/allente.se.epg.xmlallente.se @@ -75,8 +75,8 @@ To load a program guide, all you need to do is copy the link to one or more of t 121https://iptv-org.github.io/epg/guides/dj/dstv.com.epg.xmldstv.com 🇩🇴 Dominican Republic60https://iptv-org.github.io/epg/guides/do/gatotv.com.epg.xmlgatotv.com 🇪🇨 Ecuador45https://iptv-org.github.io/epg/guides/ec/gatotv.com.epg.xmlgatotv.com - 🇪🇬 Egypt108https://iptv-org.github.io/epg/guides/eg-ar/elcinema.com.epg.xmlelcinema.com - 108https://iptv-org.github.io/epg/guides/eg-en/elcinema.com.epg.xmlelcinema.com + 🇪🇬 Egypt106https://iptv-org.github.io/epg/guides/eg-ar/elcinema.com.epg.xmlelcinema.com + 106https://iptv-org.github.io/epg/guides/eg-en/elcinema.com.epg.xmlelcinema.com 99https://iptv-org.github.io/epg/guides/eg-ar/osn.com.epg.xmlosn.com 99https://iptv-org.github.io/epg/guides/eg-en/osn.com.epg.xmlosn.com 🇸🇻 El Salvador52https://iptv-org.github.io/epg/guides/sv/gatotv.com.epg.xmlgatotv.com @@ -100,8 +100,9 @@ To load a program guide, all you need to do is copy the link to one or more of t 125https://iptv-org.github.io/epg/guides/ga/dstv.com.epg.xmldstv.com 🇬🇲 Gambia242https://iptv-org.github.io/epg/guides/gm/canalplus-afrique.com.epg.xmlcanalplus-afrique.com 124https://iptv-org.github.io/epg/guides/gm/dstv.com.epg.xmldstv.com - 🇬🇪 Georgia117https://iptv-org.github.io/epg/guides/ge/magticom.ge.epg.xmlmagticom.ge - 🇩🇪 Germany122https://iptv-org.github.io/epg/guides/de/hd-plus.de.epg.xmlhd-plus.de + 🇬🇪 Georgia116https://iptv-org.github.io/epg/guides/ge/magticom.ge.epg.xmlmagticom.ge + 🇩🇪 Germany122https://iptv-org.github.io/epg/guides/de/hd-plus.de.epg.xmlhd-plus.de + 118https://iptv-org.github.io/epg/guides/de/sky.de.epg.xmlsky.de 🇬🇭 Ghana242https://iptv-org.github.io/epg/guides/gh/canalplus-afrique.com.epg.xmlcanalplus-afrique.com 139https://iptv-org.github.io/epg/guides/gh/dstv.com.epg.xmldstv.com 🇬🇷 Greece86https://iptv-org.github.io/epg/guides/gr/cosmote.gr.epg.xmlcosmote.gr @@ -122,13 +123,13 @@ To load a program guide, all you need to do is copy the link to one or more of t 🇭🇺 Hungary91https://iptv-org.github.io/epg/guides/hu/tvmusor.hu.epg.xmltvmusor.hu 🇮🇸 Iceland2https://iptv-org.github.io/epg/guides/is/ruv.is.epg.xmlruv.is 🇮🇳 India364https://iptv-org.github.io/epg/guides/in/dishtv.in.epg.xmldishtv.in - 🇮🇩 Indonesia90https://iptv-org.github.io/epg/guides/id/mncvision.id.epg.xmlmncvision.id - 29https://iptv-org.github.io/epg/guides/id/vidio.com.epg.xmlvidio.com + 🇮🇩 Indonesia98https://iptv-org.github.io/epg/guides/id/mncvision.id.epg.xmlmncvision.id + 53https://iptv-org.github.io/epg/guides/id/vidio.com.epg.xmlvidio.com 🇮🇷 Iran29https://iptv-org.github.io/epg/guides/ir/tva.tv.epg.xmltva.tv 🇮🇶 Iraq99https://iptv-org.github.io/epg/guides/iq-ar/osn.com.epg.xmlosn.com 99https://iptv-org.github.io/epg/guides/iq-en/osn.com.epg.xmlosn.com 🇮🇪 Ireland3https://iptv-org.github.io/epg/guides/ie/ontvtonight.com.epg.xmlontvtonight.com - 🇮🇹 Italy145https://iptv-org.github.io/epg/guides/it/guidatv.sky.it.epg.xmlguidatv.sky.it + 🇮🇹 Italy142https://iptv-org.github.io/epg/guides/it/guidatv.sky.it.epg.xmlguidatv.sky.it 15https://iptv-org.github.io/epg/guides/it/mediaset.it.epg.xmlmediaset.it 🇨🇮 Ivory Coast242https://iptv-org.github.io/epg/guides/ci/canalplus-afrique.com.epg.xmlcanalplus-afrique.com 128https://iptv-org.github.io/epg/guides/ci/dstv.com.epg.xmldstv.com @@ -143,13 +144,13 @@ To load a program guide, all you need to do is copy the link to one or more of t 🇱🇻 Latvia21https://iptv-org.github.io/epg/guides/lv/tv.lv.epg.xmltv.lv 🇱🇧 Lebanon99https://iptv-org.github.io/epg/guides/lb-ar/osn.com.epg.xmlosn.com 99https://iptv-org.github.io/epg/guides/lb-en/osn.com.epg.xmlosn.com - 🇱🇸 Lesotho146https://iptv-org.github.io/epg/guides/ls/dstv.com.epg.xmldstv.com + 🇱🇸 Lesotho145https://iptv-org.github.io/epg/guides/ls/dstv.com.epg.xmldstv.com 🇱🇷 Liberia125https://iptv-org.github.io/epg/guides/lr/dstv.com.epg.xmldstv.com 🇱🇾 Libya99https://iptv-org.github.io/epg/guides/ly-ar/osn.com.epg.xmlosn.com 99https://iptv-org.github.io/epg/guides/ly-en/osn.com.epg.xmlosn.com 🇲🇬 Madagascar125https://iptv-org.github.io/epg/guides/mg/dstv.com.epg.xmldstv.com - 🇲🇼 Malawi132https://iptv-org.github.io/epg/guides/mw/dstv.com.epg.xmldstv.com - 🇲🇾 Malaysia123https://iptv-org.github.io/epg/guides/my/astro.com.my.epg.xmlastro.com.my + 🇲🇼 Malawi131https://iptv-org.github.io/epg/guides/mw/dstv.com.epg.xmldstv.com + 🇲🇾 Malaysia141https://iptv-org.github.io/epg/guides/my/astro.com.my.epg.xmlastro.com.my 🇲🇱 Mali242https://iptv-org.github.io/epg/guides/ml/canalplus-afrique.com.epg.xmlcanalplus-afrique.com 125https://iptv-org.github.io/epg/guides/ml/dstv.com.epg.xmldstv.com 🇲🇶 Martinique128https://iptv-org.github.io/epg/guides/mq/canalplus-caraibes.com.epg.xmlcanalplus-caraibes.com @@ -170,7 +171,7 @@ To load a program guide, all you need to do is copy the link to one or more of t 🇳🇮 Nicaragua50https://iptv-org.github.io/epg/guides/ni/gatotv.com.epg.xmlgatotv.com 🇳🇪 Niger242https://iptv-org.github.io/epg/guides/ne/canalplus-afrique.com.epg.xmlcanalplus-afrique.com 128https://iptv-org.github.io/epg/guides/ne/dstv.com.epg.xmldstv.com - 🇳🇬 Nigeria147https://iptv-org.github.io/epg/guides/ng/dstv.com.epg.xmldstv.com + 🇳🇬 Nigeria146https://iptv-org.github.io/epg/guides/ng/dstv.com.epg.xmldstv.com 🇲🇰 North Macedonia52https://iptv-org.github.io/epg/guides/mk/maxtvgo.mk.epg.xmlmaxtvgo.mk 4https://iptv-org.github.io/epg/guides/mk/tvarenasport.com.epg.xmltvarenasport.com 🇳🇴 Norway71https://iptv-org.github.io/epg/guides/no/allente.se.epg.xmlallente.se @@ -183,15 +184,15 @@ To load a program guide, all you need to do is copy the link to one or more of t 🇵🇾 Paraguay39https://iptv-org.github.io/epg/guides/py/gatotv.com.epg.xmlgatotv.com 🇵🇪 Peru48https://iptv-org.github.io/epg/guides/pe/gatotv.com.epg.xmlgatotv.com 21https://iptv-org.github.io/epg/guides/pe/mi.tv.epg.xmlmi.tv - 🇵🇱 Poland341https://iptv-org.github.io/epg/guides/pl/programtv.onet.pl.epg.xmlprogramtv.onet.pl - 🇵🇹 Portugal110https://iptv-org.github.io/epg/guides/pt/meo.pt.epg.xmlmeo.pt + 🇵🇱 Poland340https://iptv-org.github.io/epg/guides/pl/programtv.onet.pl.epg.xmlprogramtv.onet.pl + 🇵🇹 Portugal203https://iptv-org.github.io/epg/guides/pt/meo.pt.epg.xmlmeo.pt 🇶🇦 Qatar99https://iptv-org.github.io/epg/guides/qa-ar/osn.com.epg.xmlosn.com 99https://iptv-org.github.io/epg/guides/qa-en/osn.com.epg.xmlosn.com 22https://iptv-org.github.io/epg/guides/qa/beinsports.com.epg.xmlbeinsports.com 🇨🇬 Republic of the Congo242https://iptv-org.github.io/epg/guides/cg/canalplus-afrique.com.epg.xmlcanalplus-afrique.com 125https://iptv-org.github.io/epg/guides/cg/dstv.com.epg.xmldstv.com 🇷🇴 Romania224https://iptv-org.github.io/epg/guides/ro/programetv.ro.epg.xmlprogrametv.ro - 🇷🇺 Russia285https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xmltv.yandex.ru + 🇷🇺 Russia283https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xmltv.yandex.ru 🇷🇼 Rwanda242https://iptv-org.github.io/epg/guides/rw/canalplus-afrique.com.epg.xmlcanalplus-afrique.com 132https://iptv-org.github.io/epg/guides/rw/dstv.com.epg.xmldstv.com 🇷🇪 Réunion119https://iptv-org.github.io/epg/guides/re/canalplus-reunion.com.epg.xmlcanalplus-reunion.com @@ -208,13 +209,13 @@ To load a program guide, all you need to do is copy the link to one or more of t 125https://iptv-org.github.io/epg/guides/sl/dstv.com.epg.xmldstv.com 🇸🇮 Slovenia277https://iptv-org.github.io/epg/guides/si/tv2go.t-2.net.epg.xmltv2go.t-2.net 🇸🇴 Somalia120https://iptv-org.github.io/epg/guides/so/dstv.com.epg.xmldstv.com - 🇿🇦 South Africa160https://iptv-org.github.io/epg/guides/za/dstv.com.epg.xmldstv.com + 🇿🇦 South Africa159https://iptv-org.github.io/epg/guides/za/dstv.com.epg.xmldstv.com 🇸🇸 South Sudan125https://iptv-org.github.io/epg/guides/ss/dstv.com.epg.xmldstv.com - 🇪🇸 Spain112https://iptv-org.github.io/epg/guides/es/programacion-tv.elpais.com.epg.xmlprogramacion-tv.elpais.com + 🇪🇸 Spain110https://iptv-org.github.io/epg/guides/es/programacion-tv.elpais.com.epg.xmlprogramacion-tv.elpais.com 58https://iptv-org.github.io/epg/guides/es/gatotv.com.epg.xmlgatotv.com 🇸🇩 Sudan118https://iptv-org.github.io/epg/guides/sd/dstv.com.epg.xmldstv.com 🇸🇿 Swaziland127https://iptv-org.github.io/epg/guides/sz/dstv.com.epg.xmldstv.com - 🇸🇪 Sweden89https://iptv-org.github.io/epg/guides/se/allente.se.epg.xmlallente.se + 🇸🇪 Sweden94https://iptv-org.github.io/epg/guides/se/allente.se.epg.xmlallente.se 🇨🇭 Switzerland598https://iptv-org.github.io/epg/guides/ch/tv.blue.ch.epg.xmltv.blue.ch 🇸🇹 São Tomé and Príncipe128https://iptv-org.github.io/epg/guides/st/dstv.com.epg.xmldstv.com 🇹🇿 Tanzania30https://iptv-org.github.io/epg/guides/tz/dstv.com.epg.xmldstv.com @@ -222,15 +223,15 @@ To load a program guide, all you need to do is copy the link to one or more of t 🇹🇬 Togo242https://iptv-org.github.io/epg/guides/tg/canalplus-afrique.com.epg.xmlcanalplus-afrique.com 137https://iptv-org.github.io/epg/guides/tg/dstv.com.epg.xmldstv.com 🇹🇷 Turkey145https://iptv-org.github.io/epg/guides/tr/tvplus.com.tr.epg.xmltvplus.com.tr - 118https://iptv-org.github.io/epg/guides/tr/digiturk.com.tr.epg.xmldigiturk.com.tr - 105https://iptv-org.github.io/epg/guides/tr/dsmart.com.tr.epg.xmldsmart.com.tr + 117https://iptv-org.github.io/epg/guides/tr/digiturk.com.tr.epg.xmldigiturk.com.tr + 106https://iptv-org.github.io/epg/guides/tr/dsmart.com.tr.epg.xmldsmart.com.tr 🇺🇬 Uganda151https://iptv-org.github.io/epg/guides/ug/dstv.com.epg.xmldstv.com 🇺🇦 Ukraine114https://iptv-org.github.io/epg/guides/ua/tvgid.ua.epg.xmltvgid.ua 🇦🇪 United Arab Emirates99https://iptv-org.github.io/epg/guides/ae-ar/osn.com.epg.xmlosn.com 99https://iptv-org.github.io/epg/guides/ae-en/osn.com.epg.xmlosn.com - 🇬🇧 United Kingdom190https://iptv-org.github.io/epg/guides/uk/sky.com.epg.xmlsky.com + 🇬🇧 United Kingdom258https://iptv-org.github.io/epg/guides/uk/sky.com.epg.xmlsky.com 97https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xmlontvtonight.com - 🇺🇸 United States1298https://iptv-org.github.io/epg/guides/us/tvtv.us.epg.xmltvtv.us + 🇺🇸 United States1683https://iptv-org.github.io/epg/guides/us/tvtv.us.epg.xmltvtv.us 410https://iptv-org.github.io/epg/guides/us/directv.com.epg.xmldirectv.com 88https://iptv-org.github.io/epg/guides/us/tvguide.com.epg.xmltvguide.com 22https://iptv-org.github.io/epg/guides/us/gatotv.com.epg.xmlgatotv.com @@ -244,14 +245,14 @@ To load a program guide, all you need to do is copy the link to one or more of t -## EPG Codes - -📋  [iptv-org.github.io](https://iptv-org.github.io/) - ## API The API documentation can be found in the [iptv-org/api](https://github.com/iptv-org/api) repository. +## Resources + +Links to other useful IPTV-related resources can be found in the [iptv-org/awesome-iptv](https://github.com/iptv-org/awesome-iptv) repository. + ## Contribution If you find a bug or want to contribute to the code or documentation, you can help by submitting an [issue](https://github.com/iptv-org/epg/issues) or a [pull request](https://github.com/iptv-org/epg/pulls). diff --git a/package-lock.json b/package-lock.json index 3de27d75..690e3bbb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "epg-grabber": "^0.20.0", "epg-parser": "^0.1.6", "form-data": "^4.0.0", + "fs-extra": "^10.0.1", "glob": "^7.2.0", "iconv-lite": "^0.4.24", "jest": "^27.3.1", @@ -23,7 +24,6 @@ "lodash": "^4.17.21", "markdown-include": "^0.4.3", "mockdate": "^3.0.5", - "mz": "^2.7.0", "nedb-promises": "^5.0.3", "parse-duration": "^1.0.0", "pdf-parse": "^1.1.1", @@ -1179,11 +1179,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, "node_modules/anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -2346,9 +2341,9 @@ "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" }, "node_modules/follow-redirects": { - "version": "1.14.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz", - "integrity": "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==", + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", "funding": [ { "type": "individual", @@ -2377,6 +2372,27 @@ "node": ">= 6" } }, + "node_modules/fs-extra": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", + "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-extra/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/fs-minipass": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", @@ -3614,6 +3630,25 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonfile/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/keyv": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.4.tgz", @@ -3913,16 +3948,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, "node_modules/nan": { "version": "2.14.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", @@ -5066,25 +5091,6 @@ "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/throat": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", @@ -6460,11 +6466,6 @@ "color-convert": "^2.0.1" } }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, "anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -7368,9 +7369,9 @@ "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" }, "follow-redirects": { - "version": "1.14.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz", - "integrity": "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==" + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" }, "form-data": { "version": "4.0.0", @@ -7382,6 +7383,23 @@ "mime-types": "^2.1.12" } }, + "fs-extra": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", + "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + } + } + }, "fs-minipass": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", @@ -8308,6 +8326,22 @@ "minimist": "^1.2.5" } }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + } + } + }, "keyv": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.4.tgz", @@ -8550,16 +8584,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, "nan": { "version": "2.14.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", @@ -9422,22 +9446,6 @@ "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" }, - "thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "requires": { - "any-promise": "^1.0.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", - "requires": { - "thenify": ">= 3.1.0 < 4" - } - }, "throat": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", diff --git a/package.json b/package.json index 856e4900..57ad993f 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,21 @@ { "name": "epg", "scripts": { - "lint": "node scripts/commands/lint.js", - "validate": "node scripts/commands/validate.js", + "channels:validate": "node scripts/commands/channels/validate.js", + "channels:lint": "node scripts/commands/channels/lint.js", + "channels:parse": "node scripts/commands/channels/parse.js", + "queue:create": "node scripts/commands/queue/create.js", + "cluster:load": "node scripts/commands/cluster/load.js", + "programs:save": "node scripts/commands/programs/save.js", + "guides:update": "node scripts/commands/guides/update.js", + "api:update": "node scripts/commands/api/update.js", + "readme:update": "node scripts/commands/readme/update.js", "test": "npx jest --runInBand", "test:commands": "npx jest --runInBand -- commands", "test:sites": "npx jest --runInBand -- sites", - "act": "act workflow_dispatch", - "update-readme": "node scripts/commands/update-readme.js" + "act:check": "act workflow_dispatch -W .github/workflows/_check.yml", + "act:update-readme": "act workflow_dispatch -W .github/workflows/_update-readme.yml", + "act:update-api": "act workflow_dispatch -W .github/workflows/_update-api.yml" }, "private": true, "author": "Arhey", @@ -25,6 +33,7 @@ "epg-grabber": "^0.20.0", "epg-parser": "^0.1.6", "form-data": "^4.0.0", + "fs-extra": "^10.0.1", "glob": "^7.2.0", "iconv-lite": "^0.4.24", "jest": "^27.3.1", @@ -32,7 +41,6 @@ "lodash": "^4.17.21", "markdown-include": "^0.4.3", "mockdate": "^3.0.5", - "mz": "^2.7.0", "nedb-promises": "^5.0.3", "parse-duration": "^1.0.0", "pdf-parse": "^1.1.1", diff --git a/scripts/commands/api/update.js b/scripts/commands/api/update.js new file mode 100644 index 00000000..d69e26ce --- /dev/null +++ b/scripts/commands/api/update.js @@ -0,0 +1,42 @@ +const { file, parser, logger } = require('../../core') +const { program } = require('commander') +const _ = require('lodash') + +const CHANNELS_PATH = process.env.CHANNELS_PATH || 'sites/**/*.channels.xml' +const OUTPUT_DIR = process.env.OUTPUT_DIR || '.api' + +async function main() { + let guides = [] + + try { + const files = await file.list(CHANNELS_PATH) + for (const filepath of files) { + const { site, channels } = await parser.parseChannels(filepath) + const dir = file.dirname(filepath) + const config = require(file.resolve(`${dir}/${site}.config.js`)) + if (config.ignore) continue + + const filename = file.basename(filepath) + const [__, suffix] = filename.match(/\_(.*)\.channels\.xml$/) || [null, null] + + for (const channel of channels) { + guides.push({ + channel: channel.xmltv_id, + site, + lang: channel.lang, + url: `https://iptv-org.github.io/epg/guides/${suffix}/${site}.epg.xml` + }) + } + } + } catch (err) { + console.error(err) + } + + guides = _.sortBy(guides, 'channel') + + const outputFilepath = `${OUTPUT_DIR}/guides.json` + await file.create(outputFilepath, JSON.stringify(guides)) + logger.info(`saved to "${outputFilepath}"...`) +} + +main() diff --git a/scripts/commands/lint.js b/scripts/commands/channels/lint.js similarity index 94% rename from scripts/commands/lint.js rename to scripts/commands/channels/lint.js index a970bb8c..c14453a9 100644 --- a/scripts/commands/lint.js +++ b/scripts/commands/channels/lint.js @@ -1,7 +1,7 @@ const chalk = require('chalk') const libxml = require('libxmljs') const { program } = require('commander') -const { logger, file } = require('../core') +const { logger, file } = require('../../core') const xsd = ` diff --git a/scripts/commands/channels/parse.js b/scripts/commands/channels/parse.js new file mode 100644 index 00000000..11b76958 --- /dev/null +++ b/scripts/commands/channels/parse.js @@ -0,0 +1,43 @@ +const { logger, file, xml } = require('../../core') +const { Command } = require('commander') +const path = require('path') +const _ = require('lodash') + +const program = new Command() +program + .requiredOption('-c, --config ', 'Config file') + .option('-s, --set [args...]', 'Set custom arguments', []) + .option('-o, --output ', 'Output file') + .parse(process.argv) + +const options = program.opts() + +async function main() { + const config = require(path.resolve(options.config)) + const args = {} + options.set.forEach(arg => { + const [key, value] = arg.split(':') + args[key] = value + }) + + let channels = config.channels(args) + if (isPromise(channels)) { + channels = await channels + } + channels = _.sortBy(channels, 'xmltv_id') + + const dir = file.dirname(options.config) + const outputFilepath = options.output || `${dir}/${config.site}.channels.xml` + + const output = xml.create(channels, config.site) + + await file.write(outputFilepath, output) + + logger.info(`File '${output}' successfully saved`) +} + +main() + +function isPromise(promise) { + return !!promise && typeof promise.then === 'function' +} diff --git a/scripts/commands/validate.js b/scripts/commands/channels/validate.js similarity index 52% rename from scripts/commands/validate.js rename to scripts/commands/channels/validate.js index b7637b30..f841b598 100644 --- a/scripts/commands/validate.js +++ b/scripts/commands/channels/validate.js @@ -1,4 +1,4 @@ -const { parser, logger, api } = require('../core') +const { parser, logger, api } = require('../../core') const { program } = require('commander') const chalk = require('chalk') @@ -8,8 +8,8 @@ async function main() { await api.channels.load() const stats = { - channels: 0, - files: 0 + files: 0, + errors: 0 } if (!program.args.length) { @@ -21,26 +21,32 @@ async function main() { const { site, channels } = await parser.parseChannels(filepath) - const output = [] + const buffer = {} + const errors = [] for (const channel of channels) { + if (!buffer[channel.xmltv_id]) { + buffer[channel.xmltv_id] = channel + } else { + errors.push({ type: 'duplicate', ...channel }) + stats.errors++ + } + if (!api.channels.find({ id: channel.xmltv_id })) { - output.push(channel) - stats.channels++ + errors.push({ type: 'wrong_xmltv_id', ...channel }) + stats.errors++ } } - if (output.length) { + if (errors.length) { logger.info(chalk.underline(filepath)) - console.table(output, ['lang', 'xmltv_id', 'site_id', 'name']) + console.table(errors, ['type', 'lang', 'xmltv_id', 'site_id', 'name']) console.log() stats.files++ } } - if (stats.channels > 0) { - logger.error( - chalk.red(`${stats.channels} channel(s) in ${stats.files} file(s) have the wrong xmltv_id`) - ) + if (stats.errors > 0) { + logger.error(chalk.red(`${stats.errors} error(s) in ${stats.files} file(s)`)) process.exit(1) } } diff --git a/scripts/commands/load-cluster.js b/scripts/commands/cluster/load.js similarity index 93% rename from scripts/commands/load-cluster.js rename to scripts/commands/cluster/load.js index ddfe5848..ce478689 100644 --- a/scripts/commands/load-cluster.js +++ b/scripts/commands/cluster/load.js @@ -1,7 +1,7 @@ const _ = require('lodash') const grabber = require('epg-grabber') const { program } = require('commander') -const { db, logger, timer, file, parser } = require('../core') +const { db, logger, timer, file, parser } = require('../../core') const options = program .requiredOption('-c, --cluster-id ', 'The ID of cluster to load', parser.parseNumber) @@ -16,7 +16,7 @@ const options = program .opts() const LOGS_DIR = process.env.LOGS_DIR || 'scripts/logs' -const CLUSTER_PATH = `${LOGS_DIR}/load-cluster/cluster_${options.clusterId}.log` +const CLUSTER_PATH = `${LOGS_DIR}/cluster/load/cluster_${options.clusterId}.log` async function main() { logger.info('Starting...') diff --git a/scripts/commands/create-matrix.js b/scripts/commands/create-matrix.js deleted file mode 100644 index 98780ada..00000000 --- a/scripts/commands/create-matrix.js +++ /dev/null @@ -1,16 +0,0 @@ -const { logger, db } = require('../core') - -async function main() { - await db.queue.load() - const docs = await db.queue.find({}).sort({ cluster_id: 1 }) - const cluster_id = docs.reduce((acc, curr) => { - if (!acc.includes(curr.cluster_id)) acc.push(curr.cluster_id) - return acc - }, []) - - const matrix = { cluster_id } - const output = `::set-output name=matrix::${JSON.stringify(matrix)}` - logger.info(output) -} - -main() diff --git a/scripts/commands/guides/update.js b/scripts/commands/guides/update.js new file mode 100644 index 00000000..d40a28aa --- /dev/null +++ b/scripts/commands/guides/update.js @@ -0,0 +1,76 @@ +const { db, logger, file, api } = require('../../core') +const grabber = require('epg-grabber') +const _ = require('lodash') + +const PUBLIC_DIR = process.env.PUBLIC_DIR || '.gh-pages' + +async function main() { + logger.info(`Generating guides/...`) + + logger.info('Loading "database/programs.db"...') + await db.programs.load() + await api.channels.load() + + const grouped = groupByGroup(await loadQueue()) + for (const key in grouped) { + let channels = {} + let programs = [] + for (const item of grouped[key]) { + if (item.error) continue + + const itemPrograms = await loadProgramsForItem(item) + programs = programs.concat(itemPrograms) + + if (channels[item.channel.xmltv_id]) continue + const channel = api.channels.find({ id: item.channel.xmltv_id }) + if (channel) { + channels[channel.id] = { + xmltv_id: channel.id, + name: item.channel.display_name, + logo: channel.logo, + site: item.channel.site + } + } + } + channels = Object.values(channels) + channels = _.sortBy(channels, 'xmltv_id') + programs = _.sortBy(programs, ['channel', 'start']) + + const filepath = `${PUBLIC_DIR}/guides/${key}.epg.xml` + logger.info(`Creating "${filepath}"...`) + const output = grabber.convertToXMLTV({ channels, programs }) + await file.create(filepath, output) + } + + logger.info(`Done`) +} + +main() + +function groupByGroup(items = []) { + const groups = {} + + items.forEach(item => { + item.groups.forEach(key => { + if (!groups[key]) { + groups[key] = [] + } + + groups[key].push(item) + }) + }) + + return groups +} + +async function loadQueue() { + logger.info('Loading queue...') + + await db.queue.load() + + return await db.queue.find({}).sort({ xmltv_id: 1 }) +} + +async function loadProgramsForItem(item) { + return await db.programs.find({ _qid: item._id }).sort({ channel: 1, start: 1 }) +} diff --git a/scripts/commands/save-results.js b/scripts/commands/programs/save.js similarity index 90% rename from scripts/commands/save-results.js rename to scripts/commands/programs/save.js index 26a4bb55..f2ff7161 100644 --- a/scripts/commands/save-results.js +++ b/scripts/commands/programs/save.js @@ -1,4 +1,4 @@ -const { db, logger, file, parser } = require('../core') +const { db, logger, file, parser } = require('../../core') const _ = require('lodash') const LOGS_DIR = process.env.LOGS_DIR || 'scripts/logs' @@ -7,7 +7,7 @@ async function main() { await db.queue.load() await db.programs.load() await db.programs.reset() - const files = await file.list(`${LOGS_DIR}/load-cluster/cluster_*.log`) + const files = await file.list(`${LOGS_DIR}/cluster/load/cluster_*.log`) for (const filepath of files) { logger.info(`Parsing "${filepath}"...`) const results = await parser.parseLogs(filepath) diff --git a/scripts/commands/create-queue.js b/scripts/commands/queue/create.js similarity index 53% rename from scripts/commands/create-queue.js rename to scripts/commands/queue/create.js index e63d0778..bdba5f56 100644 --- a/scripts/commands/create-queue.js +++ b/scripts/commands/queue/create.js @@ -1,4 +1,4 @@ -const { db, file, parser, logger, date, api } = require('../core') +const { db, file, parser, logger, date, api } = require('../../core') const { program } = require('commander') const _ = require('lodash') @@ -37,53 +37,57 @@ async function createQueue() { const utcDate = date.getUTC() const dates = Array.from({ length: options.days }, (_, i) => utcDate.add(i, 'd')) for (const filepath of files) { - const dir = file.dirname(filepath) - const { site, channels: items } = await parser.parseChannels(filepath) - if (!site) continue - const configPath = `${dir}/${site}.config.js` - const config = require(file.resolve(configPath)) - if (config.ignore) continue - const filename = file.basename(filepath) - const [__, region] = filename.match(/_([a-z-]+)\.channels\.xml/i) || [null, null] - const groupId = `${region}/${site}` - for (const item of items) { - if (!item.site || !item.site_id || !item.xmltv_id) continue - const channel = api.channels.find({ id: item.xmltv_id }) - if (!channel) { - await logError(groupId, { - xmltv_id: item.xmltv_id, - site: item.site, - site_id: item.site_id, - lang: item.lang, - date: undefined, - error: 'The channel has the wrong xmltv_id' - }) - continue - } + try { + const dir = file.dirname(filepath) + const { site, channels: items } = await parser.parseChannels(filepath) + if (!site) continue + const configPath = `${dir}/${site}.config.js` + const config = require(file.resolve(configPath)) + if (config.ignore) continue + const filename = file.basename(filepath) + const [__, region] = filename.match(/_([a-z-]+)\.channels\.xml/i) || [null, null] + const groupId = `${region}/${site}` + for (const item of items) { + if (!item.site || !item.site_id || !item.xmltv_id) continue + const channel = api.channels.find({ id: item.xmltv_id }) + if (!channel) { + await logError(groupId, { + xmltv_id: item.xmltv_id, + site: item.site, + site_id: item.site_id, + lang: item.lang, + date: undefined, + error: 'The channel has the wrong xmltv_id' + }) + continue + } - for (const d of dates) { - const dString = d.toJSON() - const key = `${item.site}:${item.lang}:${item.xmltv_id}:${dString}` - if (!queue[key]) { - queue[key] = { - channel: { - lang: item.lang, - xmltv_id: item.xmltv_id, - display_name: item.name, - site_id: item.site_id, - site: item.site - }, - date: dString, - configPath, - groups: [], - error: null + for (const d of dates) { + const dString = d.toJSON() + const key = `${item.site}:${item.lang}:${item.xmltv_id}:${dString}` + if (!queue[key]) { + queue[key] = { + channel: { + lang: item.lang, + xmltv_id: item.xmltv_id, + display_name: item.name, + site_id: item.site_id, + site: item.site + }, + date: dString, + configPath, + groups: [], + error: null + } + } + + if (!queue[key].groups.includes(groupId)) { + queue[key].groups.push(groupId) } } - - if (!queue[key].groups.includes(groupId)) { - queue[key].groups.push(groupId) - } } + } catch (err) { + console.error(err) } } diff --git a/scripts/commands/update-readme.js b/scripts/commands/readme/update.js similarity index 75% rename from scripts/commands/update-readme.js rename to scripts/commands/readme/update.js index e6ab084f..add0eb2d 100644 --- a/scripts/commands/update-readme.js +++ b/scripts/commands/readme/update.js @@ -1,4 +1,4 @@ -const { file, markdown, parser, logger, api, table } = require('../core') +const { file, markdown, parser, logger, api, table } = require('../../core') const { program } = require('commander') const _ = require('lodash') @@ -10,25 +10,30 @@ const options = program .opts() async function main() { - await api.countries.load() - const files = await file.list(CHANNELS_PATH) const items = [] - for (const filepath of files) { - const { site, channels } = await parser.parseChannels(filepath) - const dir = file.dirname(filepath) - const config = require(file.resolve(`${dir}/${site}.config.js`)) - if (config.ignore) continue - const filename = file.basename(filepath) - const [__, suffix] = filename.match(/\_(.*)\.channels\.xml$/) || [null, null] - const [code] = suffix.split('-') + try { + await api.countries.load() + const files = await file.list(CHANNELS_PATH) + for (const filepath of files) { + const { site, channels } = await parser.parseChannels(filepath) + const dir = file.dirname(filepath) + const config = require(file.resolve(`${dir}/${site}.config.js`)) + if (config.ignore) continue - items.push({ - code, - site, - count: channels.length, - group: `${suffix}/${site}` - }) + const filename = file.basename(filepath) + const [__, suffix] = filename.match(/\_(.*)\.channels\.xml$/) || [null, null] + const [code] = suffix.split('-') + + items.push({ + code, + site, + count: channels.length, + group: `${suffix}/${site}` + }) + } + } catch (err) { + console.error(err) } await generateCountriesTable(items) diff --git a/scripts/commands/update-api.js b/scripts/commands/update-api.js deleted file mode 100644 index 67e454ec..00000000 --- a/scripts/commands/update-api.js +++ /dev/null @@ -1,37 +0,0 @@ -const { file, parser, logger } = require('../core') -const { program } = require('commander') -const _ = require('lodash') - -const CHANNELS_PATH = process.env.CHANNELS_PATH || 'sites/**/*.channels.xml' -const OUTPUT_DIR = process.env.OUTPUT_DIR || '.gh-pages/api' - -async function main() { - const files = await file.list(CHANNELS_PATH) - let guides = [] - for (const filepath of files) { - const { site, channels } = await parser.parseChannels(filepath) - const dir = file.dirname(filepath) - const config = require(file.resolve(`${dir}/${site}.config.js`)) - if (config.ignore) continue - - const filename = file.basename(filepath) - const [__, suffix] = filename.match(/\_(.*)\.channels\.xml$/) || [null, null] - - for (const channel of channels) { - guides.push({ - channel: channel.xmltv_id, - site, - lang: channel.lang, - url: `https://iptv-org.github.io/epg/guides/${suffix}/${site}.epg.xml` - }) - } - } - - guides = _.sortBy(guides, 'channel') - - const outputFilepath = `${OUTPUT_DIR}/guides.json` - await file.create(outputFilepath, JSON.stringify(guides)) - logger.info(`saved to "${outputFilepath}"...`) -} - -main() diff --git a/scripts/commands/update-guides.js b/scripts/commands/update-guides.js deleted file mode 100644 index 831548ab..00000000 --- a/scripts/commands/update-guides.js +++ /dev/null @@ -1,149 +0,0 @@ -const { db, logger, file, api } = require('../core') -const grabber = require('epg-grabber') -const _ = require('lodash') - -const LOGS_DIR = process.env.LOGS_DIR || 'scripts/logs' -const PUBLIC_DIR = process.env.PUBLIC_DIR || '.gh-pages' -const GUIDES_PATH = `${LOGS_DIR}/guides.log` - -async function main() { - await setUp() - await generateGuides() -} - -main() - -async function generateGuides() { - logger.info(`Generating guides/...`) - - logger.info('Loading "database/programs.db"...') - await db.programs.load() - await api.channels.load() - - const grouped = groupByGroup(await loadQueue()) - for (const key in grouped) { - const filepath = `${PUBLIC_DIR}/guides/${key}.epg.xml` - const criticalErrors = [] - let channels = {} - let programs = [] - for (const item of grouped[key]) { - const itemPrograms = await loadProgramsForItem(item) - programs = programs.concat(itemPrograms) - - if (channels[item.channel.xmltv_id]) continue - - if (item.error) { - const error = { - xmltv_id: item.channel.xmltv_id, - site: item.channel.site, - site_id: item.channel.site_id, - lang: item.channel.lang, - date: item.date, - error: item.error - } - criticalErrors.push(error) - await logError(key, error) - } else { - if (!itemPrograms.length) { - await logError(key, { - xmltv_id: item.channel.xmltv_id, - site: item.channel.site, - site_id: item.channel.site_id, - lang: item.channel.lang, - date: item.date, - error: 'Programs not found' - }) - continue - } - - const channel = api.channels.find({ id: item.channel.xmltv_id }) - if (!channel) { - await logError(key, { - xmltv_id: item.channel.xmltv_id, - site: item.channel.site, - site_id: item.channel.site_id, - lang: item.channel.lang, - date: item.date, - error: 'The channel has the wrong xmltv_id' - }) - continue - } - - channels[channel.id] = { - xmltv_id: channel.id, - name: item.channel.display_name, - logo: channel.logo, - site: item.channel.site - } - } - } - - channels = Object.values(channels) - channels = _.sortBy(channels, 'xmltv_id') - programs = _.sortBy(programs, ['channel', 'start']) - - logger.info(`Creating "${filepath}"...`) - const output = grabber.convertToXMLTV({ channels, programs }) - await file.create(filepath, output) - - let status = 0 - if (criticalErrors.length > 0 || !channels.length) { - status = 1 - } - - await logGuide({ - group: key, - count: channels.length, - status - }) - } - - logger.info(`Done`) -} - -function groupByGroup(items = []) { - const groups = {} - - items.forEach(item => { - item.groups.forEach(key => { - if (!groups[key]) { - groups[key] = [] - } - - groups[key].push(item) - }) - }) - - return groups -} - -async function loadQueue() { - logger.info('Loading queue...') - - await db.queue.load() - - return await db.queue.find({}).sort({ xmltv_id: 1 }) -} - -async function loadProgramsForItem(item) { - return await db.programs.find({ _qid: item._id }).sort({ channel: 1, start: 1 }) -} - -async function setUp() { - logger.info(`Creating '${GUIDES_PATH}'...`) - await file.create(GUIDES_PATH) - await file.createDir(`${LOGS_DIR}/errors`) -} - -async function logGuide(data) { - await file.append(GUIDES_PATH, JSON.stringify(data) + '\r\n') -} - -async function logError(key, data) { - const filepath = `${LOGS_DIR}/errors/${key}.log` - if (!(await file.exists(filepath))) { - await file.create(filepath) - } - - await file.append(filepath, JSON.stringify(data) + '\r\n') -} diff --git a/scripts/core/file.js b/scripts/core/file.js index ecb4a040..d191cc84 100644 --- a/scripts/core/file.js +++ b/scripts/core/file.js @@ -1,6 +1,6 @@ const path = require('path') const glob = require('glob') -const fs = require('mz/fs') +const fs = require('fs-extra') const file = {} diff --git a/scripts/core/index.js b/scripts/core/index.js index ccbdd057..807edaad 100644 --- a/scripts/core/index.js +++ b/scripts/core/index.js @@ -7,3 +7,4 @@ exports.markdown = require('./markdown') exports.api = require('./api') exports.date = require('./date') exports.table = require('./table') +exports.xml = require('./xml') diff --git a/scripts/commands/parse-channels.js b/scripts/core/xml.js similarity index 53% rename from scripts/commands/parse-channels.js rename to scripts/core/xml.js index 7cb6ec93..5cd6c3f6 100644 --- a/scripts/commands/parse-channels.js +++ b/scripts/core/xml.js @@ -1,61 +1,6 @@ -const { Command } = require('commander') -const { db, logger } = require('../core') -const path = require('path') -const _ = require('lodash') -const fs = require('fs') +const xml = {} -const program = new Command() -program - .requiredOption('-c, --config ', 'Config file') - .option('-s, --set [args...]', 'Set custom arguments', []) - .option('-o, --output ', 'Output file') - .parse(process.argv) - -const options = program.opts() - -async function main() { - await db.channels.load() - const config = require(path.resolve(options.config)) - const args = {} - options.set.forEach(arg => { - const [key, value] = arg.split(':') - args[key] = value - }) - let channels = config.channels(args) - if (isPromise(channels)) { - channels = await channels - } - channels = _.uniqBy(channels, 'site_id') - - const siteChannels = await db.channels.find({ site: config.site }) - for (const channel of channels) { - if (channel.xmltv_id) continue - const data = siteChannels.find(c => c.site_id === channel.site_id.toString()) - if (data) { - channel.xmltv_id = data.xmltv_id - channel.name = data.name - } - } - - channels = _.sortBy(channels, 'xmltv_id') - - const xml = json2xml(channels, config.site) - - const dir = path.parse(options.config).dir - const output = options.output || `${dir}/${config.site}.channels.xml` - - fs.writeFileSync(path.resolve(output), xml) - - logger.info(`File '${output}' successfully saved`) -} - -main() - -function isPromise(promise) { - return !!promise && typeof promise.then === 'function' -} - -function json2xml(items, site) { +xml.create = function (items, site) { let output = `\r\n\r\n \r\n` items.forEach(channel => { @@ -101,4 +46,4 @@ function escapeString(string, defaultValue = '') { .trim() } -module.exports = { json2xml } +module.exports = xml diff --git a/sites/allente.se/allente.se_dk.channels.xml b/sites/allente.se/allente.se_dk.channels.xml index e07cde9d..b0d4c229 100644 --- a/sites/allente.se/allente.se_dk.channels.xml +++ b/sites/allente.se/allente.se_dk.channels.xml @@ -2,7 +2,7 @@ 6'eren - Aljazeera English + Aljazeera English BBC World News Europe Boomerang Nordic Canal 9 diff --git a/sites/allente.se/allente.se_no.channels.xml b/sites/allente.se/allente.se_no.channels.xml index 0febe7a9..ae2e9248 100644 --- a/sites/allente.se/allente.se_no.channels.xml +++ b/sites/allente.se/allente.se_no.channels.xml @@ -1,7 +1,7 @@ - Aljazeera English + Aljazeera English BBC World News Europe Cartoon Network Nordic CNBC Europe diff --git a/sites/allente.se/allente.se_se.channels.xml b/sites/allente.se/allente.se_se.channels.xml index aa20d03d..d16c4512 100644 --- a/sites/allente.se/allente.se_se.channels.xml +++ b/sites/allente.se/allente.se_se.channels.xml @@ -1,20 +1,24 @@ - Aljazeera English + Aljazeera English ATG Live + BBC Earth HD Sverige + BBC Brit HD Sverige BBC World News Europe + Bloomberg TV Sverige Boomerang Nordic Cartoon Network Nordic C More First C More Fotboll - C More Golf C More Hits C More Hockey C More Live C More Live 2 C More Live 3 C More Live 4 + C More Live 4 + C More Mix C More Series C More Stars CNBC Europe @@ -27,11 +31,12 @@ DR Ramasjang E! Europe EuroNews English - Eurosport 1 Sverige + Eurosport 1 Sverige Eurosport 2 Sverige Godare God TV Scandinavia History Sverige + H2 Sverige Horse & Country TV Sverige Kanal 5 Kanal 9 diff --git a/sites/astro.com.my/astro.com.my_my.channels.xml b/sites/astro.com.my/astro.com.my_my.channels.xml index a69b012e..a4ce31d1 100644 --- a/sites/astro.com.my/astro.com.my_my.channels.xml +++ b/sites/astro.com.my/astro.com.my_my.channels.xml @@ -5,7 +5,7 @@ ABC Australia Asia AXN East Asia Adithya TV - Aljazeera English + Aljazeera English Animal Planet Southeast Asia Asian Food Network Astro AEC diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_bf.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_bf.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_bf.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_bf.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_bi.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_bi.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_bi.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_bi.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_bj.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_bj.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_bj.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_bj.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_cd.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_cd.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_cd.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_cd.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_cf.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_cf.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_cf.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_cf.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_cg.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_cg.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_cg.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_cg.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_ci.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_ci.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_ci.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_ci.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_cm.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_cm.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_cm.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_cm.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_cv.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_cv.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_cv.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_cv.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_dj.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_dj.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_dj.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_dj.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_ga.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_ga.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_ga.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_ga.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_gh.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_gh.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_gh.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_gh.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_gm.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_gm.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_gm.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_gm.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_gn.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_gn.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_gn.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_gn.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_gq.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_gq.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_gq.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_gq.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_gw.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_gw.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_gw.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_gw.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_ml.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_ml.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_ml.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_ml.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_mr.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_mr.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_mr.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_mr.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_ne.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_ne.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_ne.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_ne.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_rw.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_rw.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_rw.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_rw.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_sl.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_sl.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_sl.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_sl.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_sn.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_sn.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_sn.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_sn.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_td.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_td.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_td.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_td.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/canalplus-afrique.com/canalplus-afrique.com_tg.channels.xml b/sites/canalplus-afrique.com/canalplus-afrique.com_tg.channels.xml index fffdd29c..e94158b2 100644 --- a/sites/canalplus-afrique.com/canalplus-afrique.com_tg.channels.xml +++ b/sites/canalplus-afrique.com/canalplus-afrique.com_tg.channels.xml @@ -12,7 +12,7 @@ Africable TV Africanews Alafia TV - Aljazeera Channel + Aljazeera Channel Animaux Antenne A A+ diff --git a/sites/chaines-tv.orange.fr/chaines-tv.orange.fr_fr.channels.xml b/sites/chaines-tv.orange.fr/chaines-tv.orange.fr_fr.channels.xml index 28af13e5..1ab7b8a7 100644 --- a/sites/chaines-tv.orange.fr/chaines-tv.orange.fr_fr.channels.xml +++ b/sites/chaines-tv.orange.fr/chaines-tv.orange.fr_fr.channels.xml @@ -7,7 +7,7 @@ 6ter AB 1 Action - Aljazeera English + Aljazeera English Animaux A+ Kids TV ARTE Français diff --git a/sites/cosmote.gr/cosmote.gr_gr.channels.xml b/sites/cosmote.gr/cosmote.gr_gr.channels.xml index 1a693b6a..808b6402 100644 --- a/sites/cosmote.gr/cosmote.gr_gr.channels.xml +++ b/sites/cosmote.gr/cosmote.gr_gr.channels.xml @@ -5,7 +5,7 @@ Action 24 Aigaio TV Alarabiya - Aljazeera English + Aljazeera English Alpha TV Ant1 Baby TV Europe diff --git a/sites/delta.nl/delta.nl_nl.channels.xml b/sites/delta.nl/delta.nl_nl.channels.xml index fb280803..e175fd07 100644 --- a/sites/delta.nl/delta.nl_nl.channels.xml +++ b/sites/delta.nl/delta.nl_nl.channels.xml @@ -7,7 +7,7 @@ 192 TV AAVISIE Albrandswaard TV - Aljazeera English + Aljazeera English Altena TV Animal Planet Europe ARTE Deutsch diff --git a/sites/digiturk.com.tr/digiturk.com.tr_tr.channels.xml b/sites/digiturk.com.tr/digiturk.com.tr_tr.channels.xml index 79fc0efb..22d9969d 100644 --- a/sites/digiturk.com.tr/digiturk.com.tr_tr.channels.xml +++ b/sites/digiturk.com.tr/digiturk.com.tr_tr.channels.xml @@ -5,7 +5,7 @@ 360 A2 A Haber - Aljazeera English + Aljazeera English A Para A Spor ATV Türkiye @@ -23,7 +23,7 @@ BeIn Movies Action BeIn Movies Action 2 BeIn Movies Family - BeIn Movies Premiere + BeIn Movies Premiere BeIn Movies Premiere 2 BeIn Movies Stars BeIn Movies Turk @@ -38,7 +38,6 @@ BeIn Sports Haber BeIn Sports Max 1 Türkiye BeIn Sports Max 2 Türkiye - BeIn Türkiye Beyaz TV Bloomberg HT Bloomberg TV Europe diff --git a/sites/directv.com/directv.com_us.channels.xml b/sites/directv.com/directv.com_us.channels.xml index 3a6b60cb..22d182f2 100644 --- a/sites/directv.com/directv.com_us.channels.xml +++ b/sites/directv.com/directv.com_us.channels.xml @@ -252,7 +252,7 @@ Penthouse TV Penthouse TV Monthly Offer Perú Mágico - Perviy kanal America + Pervyy kanal America Phoenix Hong Kong Phoenix InfoNews Channel Phoenix North America Chinese Channel diff --git a/sites/dishtv.in/dishtv.in_in.channels.xml b/sites/dishtv.in/dishtv.in_in.channels.xml index a29354a1..143c6602 100644 --- a/sites/dishtv.in/dishtv.in_in.channels.xml +++ b/sites/dishtv.in/dishtv.in_in.channels.xml @@ -14,7 +14,10 @@ ABP Majha ABP News India Alankar TV - Aljazeera English + Aljazeera English + & pictures + & privé HD + & TV Animal Planet HD World India Animal Planet India Argus News @@ -192,14 +195,12 @@ Odisha TV Paras Gold Peace of Mind TV - & pictures Pitaara Pogo Prag News Prameya News 7 Prarthana TV Pratidin Time - & privé HD PTC Music PTC News PTC Punjabi @@ -272,14 +273,6 @@ Sun Bangla Sun TV Swayam Prabha 1 - Swayam Prabha 2 - Swayam Prabha 3 - Swayam Prabha 4 - Swayam Prabha 5 - Swayam Prabha 6 - Swayam Prabha 7 - Swayam Prabha 8 - Swayam Prabha 9 Swayam Prabha 10 Swayam Prabha 11 Swayam Prabha 12 @@ -290,15 +283,22 @@ Swayam Prabha 17 Swayam Prabha 18 Swayam Prabha 19 + Swayam Prabha 2 Swayam Prabha 20 Swayam Prabha 21 Swayam Prabha 22 + Swayam Prabha 3 + Swayam Prabha 4 + Swayam Prabha 5 + Swayam Prabha 6 + Swayam Prabha 7 + Swayam Prabha 8 + Swayam Prabha 9 Tarang TV The Q India Times Now World TLC India Topper TV - & TV TV 9 Bangla TV 9 Gujarati TV 9 Kannada @@ -307,6 +307,13 @@ UTV Action UTV Movies VANDE Gujarat 1 + VANDE Gujarat 10 + VANDE Gujarat 11 + VANDE Gujarat 12 + VANDE Gujarat 13 + VANDE Gujarat 14 + VANDE Gujarat 15 + VANDE Gujarat 16 VANDE Gujarat 2 VANDE Gujarat 3 VANDE Gujarat 4 @@ -315,13 +322,6 @@ VANDE Gujarat 7 VANDE Gujarat 8 VANDE Gujarat 9 - VANDE Gujarat 10 - VANDE Gujarat 11 - VANDE Gujarat 12 - VANDE Gujarat 13 - VANDE Gujarat 14 - VANDE Gujarat 15 - VANDE Gujarat 16 VH1 India Vijay TV VTV News diff --git a/sites/dstv.com/dstv.com_ao.channels.xml b/sites/dstv.com/dstv.com_ao.channels.xml index 4a1c1398..ac88c66b 100644 --- a/sites/dstv.com/dstv.com_ao.channels.xml +++ b/sites/dstv.com/dstv.com_ao.channels.xml @@ -4,7 +4,7 @@ Africa Magic Epic Africa Magic Family Afro Music Channel - Aljazeera English + Aljazeera English AXN Movies AXN Portugal Banda TV diff --git a/sites/dstv.com/dstv.com_bf.channels.xml b/sites/dstv.com/dstv.com_bf.channels.xml index 819f1633..64a9bc54 100644 --- a/sites/dstv.com/dstv.com_bf.channels.xml +++ b/sites/dstv.com/dstv.com_bf.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_bi.channels.xml b/sites/dstv.com/dstv.com_bi.channels.xml index 1eac597a..8df1c998 100644 --- a/sites/dstv.com/dstv.com_bi.channels.xml +++ b/sites/dstv.com/dstv.com_bi.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_bj.channels.xml b/sites/dstv.com/dstv.com_bj.channels.xml index ba324150..7de408a5 100644 --- a/sites/dstv.com/dstv.com_bj.channels.xml +++ b/sites/dstv.com/dstv.com_bj.channels.xml @@ -11,7 +11,7 @@ Africa Magic Yoruba Africanews AIT International - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_bw.channels.xml b/sites/dstv.com/dstv.com_bw.channels.xml index 751a3107..5b88edcb 100644 --- a/sites/dstv.com/dstv.com_bw.channels.xml +++ b/sites/dstv.com/dstv.com_bw.channels.xml @@ -8,7 +8,7 @@ Africa Magic Urban Africanews Afro Music Pop - Aljazeera English + Aljazeera English BBC Brit South Africa BBC Lifestyle South Africa BBC World News Africa diff --git a/sites/dstv.com/dstv.com_cd.channels.xml b/sites/dstv.com/dstv.com_cd.channels.xml index aba5dd8d..67e8cafb 100644 --- a/sites/dstv.com/dstv.com_cd.channels.xml +++ b/sites/dstv.com/dstv.com_cd.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English B4U Movies UK BET Africa Bloomberg TV Africa diff --git a/sites/dstv.com/dstv.com_cf.channels.xml b/sites/dstv.com/dstv.com_cf.channels.xml index 1c479142..cc0c4d8e 100644 --- a/sites/dstv.com/dstv.com_cf.channels.xml +++ b/sites/dstv.com/dstv.com_cf.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_cg.channels.xml b/sites/dstv.com/dstv.com_cg.channels.xml index 809345fc..1bb2da85 100644 --- a/sites/dstv.com/dstv.com_cg.channels.xml +++ b/sites/dstv.com/dstv.com_cg.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_ci.channels.xml b/sites/dstv.com/dstv.com_ci.channels.xml index a6a61a1b..e6d70253 100644 --- a/sites/dstv.com/dstv.com_ci.channels.xml +++ b/sites/dstv.com/dstv.com_ci.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_cm.channels.xml b/sites/dstv.com/dstv.com_cm.channels.xml index 26c030d2..d9b2046e 100644 --- a/sites/dstv.com/dstv.com_cm.channels.xml +++ b/sites/dstv.com/dstv.com_cm.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_cv.channels.xml b/sites/dstv.com/dstv.com_cv.channels.xml index be214b33..7af8aed1 100644 --- a/sites/dstv.com/dstv.com_cv.channels.xml +++ b/sites/dstv.com/dstv.com_cv.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_dj.channels.xml b/sites/dstv.com/dstv.com_dj.channels.xml index ed95b163..b1be0e80 100644 --- a/sites/dstv.com/dstv.com_dj.channels.xml +++ b/sites/dstv.com/dstv.com_dj.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_er.channels.xml b/sites/dstv.com/dstv.com_er.channels.xml index 1f3b6e85..a10309d0 100644 --- a/sites/dstv.com/dstv.com_er.channels.xml +++ b/sites/dstv.com/dstv.com_er.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_et.channels.xml b/sites/dstv.com/dstv.com_et.channels.xml index a2e2a04c..ea4b1834 100644 --- a/sites/dstv.com/dstv.com_et.channels.xml +++ b/sites/dstv.com/dstv.com_et.channels.xml @@ -13,7 +13,7 @@ Africa Magic Yoruba Africanews Ahadu TV - Aljazeera English + Aljazeera English Amhara TV ARTS TV Asham TV diff --git a/sites/dstv.com/dstv.com_ga.channels.xml b/sites/dstv.com/dstv.com_ga.channels.xml index 94dce54e..33fa180e 100644 --- a/sites/dstv.com/dstv.com_ga.channels.xml +++ b/sites/dstv.com/dstv.com_ga.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_gh.channels.xml b/sites/dstv.com/dstv.com_gh.channels.xml index fb505d38..af480b87 100644 --- a/sites/dstv.com/dstv.com_gh.channels.xml +++ b/sites/dstv.com/dstv.com_gh.channels.xml @@ -11,7 +11,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English B4U Movies UK BET Africa Bloomberg TV Africa diff --git a/sites/dstv.com/dstv.com_gm.channels.xml b/sites/dstv.com/dstv.com_gm.channels.xml index 5eec8e72..ca0e6802 100644 --- a/sites/dstv.com/dstv.com_gm.channels.xml +++ b/sites/dstv.com/dstv.com_gm.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English B4U Movies UK BET Africa Bloomberg TV Africa diff --git a/sites/dstv.com/dstv.com_gn.channels.xml b/sites/dstv.com/dstv.com_gn.channels.xml index 76864ffa..b95948e1 100644 --- a/sites/dstv.com/dstv.com_gn.channels.xml +++ b/sites/dstv.com/dstv.com_gn.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_gq.channels.xml b/sites/dstv.com/dstv.com_gq.channels.xml index 75594f91..ed6b7caf 100644 --- a/sites/dstv.com/dstv.com_gq.channels.xml +++ b/sites/dstv.com/dstv.com_gq.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_gw.channels.xml b/sites/dstv.com/dstv.com_gw.channels.xml index 3e9637ff..07d837b6 100644 --- a/sites/dstv.com/dstv.com_gw.channels.xml +++ b/sites/dstv.com/dstv.com_gw.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_ke.channels.xml b/sites/dstv.com/dstv.com_ke.channels.xml index f4a80084..8fcc000c 100644 --- a/sites/dstv.com/dstv.com_ke.channels.xml +++ b/sites/dstv.com/dstv.com_ke.channels.xml @@ -12,7 +12,7 @@ Africa Magic Yoruba Africanews Akili Kids! - Aljazeera English + Aljazeera English B4U Movies UK BET Africa Bloomberg TV Africa diff --git a/sites/dstv.com/dstv.com_lr.channels.xml b/sites/dstv.com/dstv.com_lr.channels.xml index 4c5c7ada..30e523c3 100644 --- a/sites/dstv.com/dstv.com_lr.channels.xml +++ b/sites/dstv.com/dstv.com_lr.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_ls.channels.xml b/sites/dstv.com/dstv.com_ls.channels.xml index 4a3f14ba..b96f437a 100644 --- a/sites/dstv.com/dstv.com_ls.channels.xml +++ b/sites/dstv.com/dstv.com_ls.channels.xml @@ -8,7 +8,7 @@ Africa Magic Urban Africanews Afro Music Pop - Aljazeera English + Aljazeera English BBC Brit South Africa BBC Earth South Africa BBC Lifestyle South Africa @@ -128,7 +128,6 @@ SuperSport Variety 4 Africa TBN Africa Telemundo Africa - Telemundo Africa Tellytrack 1 The Home Channel TLC Africa diff --git a/sites/dstv.com/dstv.com_mg.channels.xml b/sites/dstv.com/dstv.com_mg.channels.xml index df827c05..109debcf 100644 --- a/sites/dstv.com/dstv.com_mg.channels.xml +++ b/sites/dstv.com/dstv.com_mg.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_ml.channels.xml b/sites/dstv.com/dstv.com_ml.channels.xml index c83da9b2..fc83cb19 100644 --- a/sites/dstv.com/dstv.com_ml.channels.xml +++ b/sites/dstv.com/dstv.com_ml.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_mr.channels.xml b/sites/dstv.com/dstv.com_mr.channels.xml index 48857942..a6a24284 100644 --- a/sites/dstv.com/dstv.com_mr.channels.xml +++ b/sites/dstv.com/dstv.com_mr.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_mu.channels.xml b/sites/dstv.com/dstv.com_mu.channels.xml index c357741b..e6f81d4f 100644 --- a/sites/dstv.com/dstv.com_mu.channels.xml +++ b/sites/dstv.com/dstv.com_mu.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English B4U Movies UK BET Africa Bloomberg TV Africa diff --git a/sites/dstv.com/dstv.com_mw.channels.xml b/sites/dstv.com/dstv.com_mw.channels.xml index fd63b2e7..26e7c385 100644 --- a/sites/dstv.com/dstv.com_mw.channels.xml +++ b/sites/dstv.com/dstv.com_mw.channels.xml @@ -8,14 +8,13 @@ Africa Magic Urban Africanews Afro Music Pop - Aljazeera English + Aljazeera English BBC Brit South Africa BBC Lifestyle South Africa BBC World News Africa BET Africa Bloomberg TV Africa Boomerang EMEA - Boomerang EMEA BusinessDay TV Cartoon Network Middle East & Africa CBeebies South Africa diff --git a/sites/dstv.com/dstv.com_mz.channels.xml b/sites/dstv.com/dstv.com_mz.channels.xml index 3bc90012..de0a01e1 100644 --- a/sites/dstv.com/dstv.com_mz.channels.xml +++ b/sites/dstv.com/dstv.com_mz.channels.xml @@ -4,7 +4,7 @@ Africa Magic Epic Africa Magic Family Afro Music Channel - Aljazeera English + Aljazeera English AXN Movies AXN Portugal Banda TV diff --git a/sites/dstv.com/dstv.com_na.channels.xml b/sites/dstv.com/dstv.com_na.channels.xml index cb3fe4f7..ef1f2358 100644 --- a/sites/dstv.com/dstv.com_na.channels.xml +++ b/sites/dstv.com/dstv.com_na.channels.xml @@ -8,7 +8,7 @@ Africa Magic Urban Africanews Afro Music Pop - Aljazeera English + Aljazeera English BBC Brit South Africa BBC Lifestyle South Africa BBC World News Africa diff --git a/sites/dstv.com/dstv.com_ne.channels.xml b/sites/dstv.com/dstv.com_ne.channels.xml index a9e51149..79af0c8b 100644 --- a/sites/dstv.com/dstv.com_ne.channels.xml +++ b/sites/dstv.com/dstv.com_ne.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_ng.channels.xml b/sites/dstv.com/dstv.com_ng.channels.xml index 4208c188..f382bd1e 100644 --- a/sites/dstv.com/dstv.com_ng.channels.xml +++ b/sites/dstv.com/dstv.com_ng.channels.xml @@ -11,7 +11,7 @@ Africa Magic Yoruba Africanews AIT International - Aljazeera English + Aljazeera English Arewa 24 Arise News B4U Movies UK @@ -112,7 +112,6 @@ SuperSport Blitz Africa SuperSport Cricket Africa SuperSport Football Africa - SuperSport Football Africa SuperSport Golf Africa SuperSport Grandstand Africa SuperSport LaLiga Africa diff --git a/sites/dstv.com/dstv.com_rw.channels.xml b/sites/dstv.com/dstv.com_rw.channels.xml index 0c271308..804f51da 100644 --- a/sites/dstv.com/dstv.com_rw.channels.xml +++ b/sites/dstv.com/dstv.com_rw.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_sc.channels.xml b/sites/dstv.com/dstv.com_sc.channels.xml index edfbc350..df8e6bf5 100644 --- a/sites/dstv.com/dstv.com_sc.channels.xml +++ b/sites/dstv.com/dstv.com_sc.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_sd.channels.xml b/sites/dstv.com/dstv.com_sd.channels.xml index 115c118c..4b9c8255 100644 --- a/sites/dstv.com/dstv.com_sd.channels.xml +++ b/sites/dstv.com/dstv.com_sd.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_sl.channels.xml b/sites/dstv.com/dstv.com_sl.channels.xml index f48d5463..2a17d0f1 100644 --- a/sites/dstv.com/dstv.com_sl.channels.xml +++ b/sites/dstv.com/dstv.com_sl.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_sn.channels.xml b/sites/dstv.com/dstv.com_sn.channels.xml index 85b12395..5e4ebce3 100644 --- a/sites/dstv.com/dstv.com_sn.channels.xml +++ b/sites/dstv.com/dstv.com_sn.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_so.channels.xml b/sites/dstv.com/dstv.com_so.channels.xml index 82646457..e36d2198 100644 --- a/sites/dstv.com/dstv.com_so.channels.xml +++ b/sites/dstv.com/dstv.com_so.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_ss.channels.xml b/sites/dstv.com/dstv.com_ss.channels.xml index 2ceff732..7eacf942 100644 --- a/sites/dstv.com/dstv.com_ss.channels.xml +++ b/sites/dstv.com/dstv.com_ss.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_st.channels.xml b/sites/dstv.com/dstv.com_st.channels.xml index 2b2199fd..d6353931 100644 --- a/sites/dstv.com/dstv.com_st.channels.xml +++ b/sites/dstv.com/dstv.com_st.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_sz.channels.xml b/sites/dstv.com/dstv.com_sz.channels.xml index e02c352f..d95576f4 100644 --- a/sites/dstv.com/dstv.com_sz.channels.xml +++ b/sites/dstv.com/dstv.com_sz.channels.xml @@ -8,7 +8,7 @@ Africa Magic Urban Africanews Afro Music Pop - Aljazeera English + Aljazeera English BBC Brit South Africa BBC Lifestyle South Africa BBC World News Africa diff --git a/sites/dstv.com/dstv.com_td.channels.xml b/sites/dstv.com/dstv.com_td.channels.xml index 2fa878d0..2a80971c 100644 --- a/sites/dstv.com/dstv.com_td.channels.xml +++ b/sites/dstv.com/dstv.com_td.channels.xml @@ -10,7 +10,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BET Africa diff --git a/sites/dstv.com/dstv.com_tg.channels.xml b/sites/dstv.com/dstv.com_tg.channels.xml index dbbe4d58..800e8b7d 100644 --- a/sites/dstv.com/dstv.com_tg.channels.xml +++ b/sites/dstv.com/dstv.com_tg.channels.xml @@ -11,7 +11,7 @@ Africa Magic Yoruba Africanews AIT International - Aljazeera English + Aljazeera English AYV TV B4U Movies UK BBC Brit South Africa diff --git a/sites/dstv.com/dstv.com_tz.channels.xml b/sites/dstv.com/dstv.com_tz.channels.xml index 7c537941..e76a13ea 100644 --- a/sites/dstv.com/dstv.com_tz.channels.xml +++ b/sites/dstv.com/dstv.com_tz.channels.xml @@ -4,7 +4,7 @@ Africa Magic Epic Africa Magic Hausa Africa Magic Yoruba - Aljazeera English + Aljazeera English Bloomberg TV Africa CCTV 4 Europe CCTV Entertainment diff --git a/sites/dstv.com/dstv.com_ug.channels.xml b/sites/dstv.com/dstv.com_ug.channels.xml index df753e7d..74e46bf6 100644 --- a/sites/dstv.com/dstv.com_ug.channels.xml +++ b/sites/dstv.com/dstv.com_ug.channels.xml @@ -11,7 +11,7 @@ Africa Magic Urban Africa Magic Yoruba Africanews - Aljazeera English + Aljazeera English B4U Movies UK Baba TV BBC World News Africa diff --git a/sites/dstv.com/dstv.com_za.channels.xml b/sites/dstv.com/dstv.com_za.channels.xml index ff3ce3cb..700a3fe2 100644 --- a/sites/dstv.com/dstv.com_za.channels.xml +++ b/sites/dstv.com/dstv.com_za.channels.xml @@ -8,7 +8,7 @@ Africa Magic Urban Africanews Afro Music Pop - Aljazeera English + Aljazeera English BBC Brit South Africa BBC Earth South Africa BBC Lifestyle South Africa @@ -142,7 +142,6 @@ SuperSport Variety 4 Africa TBN Africa Telemundo Africa - Telemundo Africa Tellytrack 1 The Home Channel TLC Africa diff --git a/sites/dstv.com/dstv.com_zm.channels.xml b/sites/dstv.com/dstv.com_zm.channels.xml index 1a7d3e85..31affc4f 100644 --- a/sites/dstv.com/dstv.com_zm.channels.xml +++ b/sites/dstv.com/dstv.com_zm.channels.xml @@ -8,7 +8,7 @@ Africa Magic Urban Africanews Afro Music Pop - Aljazeera English + Aljazeera English BBC Brit South Africa BBC Lifestyle South Africa BBC World News Africa diff --git a/sites/dstv.com/dstv.com_zw.channels.xml b/sites/dstv.com/dstv.com_zw.channels.xml index 9f02f636..842bce0b 100644 --- a/sites/dstv.com/dstv.com_zw.channels.xml +++ b/sites/dstv.com/dstv.com_zw.channels.xml @@ -8,7 +8,7 @@ Africa Magic Urban Africanews Afro Music Pop - Aljazeera English + Aljazeera English BBC Brit South Africa BBC Lifestyle South Africa BBC World News Africa diff --git a/sites/elcinema.com/elcinema.com_eg-ar.channels.xml b/sites/elcinema.com/elcinema.com_eg-ar.channels.xml index 0858af0c..2e793801 100644 --- a/sites/elcinema.com/elcinema.com_eg-ar.channels.xml +++ b/sites/elcinema.com/elcinema.com_eg-ar.channels.xml @@ -9,7 +9,6 @@ Al Hayat Al Jadeed Al Kahera Wal Nas - Al Kahera Wal Nas Al-Manar TV Al-Nahar Drama Al-Nahar TV @@ -29,7 +28,7 @@ BeIn Drama 1 BeIn Movies Action BeIn Movies Family - BeIn Movies Premiere + BeIn Movies Premiere BeIn Series 1 BeIn Series 2 CBC @@ -73,7 +72,6 @@ MTV Alloubnaniya Musawa National Geographic Middle East - National Geographic Middle East Nessma Nile Comedy Nile Drama diff --git a/sites/elcinema.com/elcinema.com_eg-en.channels.xml b/sites/elcinema.com/elcinema.com_eg-en.channels.xml index ba5de7ad..cb6d562e 100644 --- a/sites/elcinema.com/elcinema.com_eg-en.channels.xml +++ b/sites/elcinema.com/elcinema.com_eg-en.channels.xml @@ -9,7 +9,6 @@ Al Hayat Al Jadeed Al Kahera Wal Nas - Al Kahera Wal Nas Al-Manar TV Al-Nahar Drama Al-Nahar TV @@ -29,7 +28,7 @@ BeIn Drama 1 BeIn Movies Action BeIn Movies Family - BeIn Movies Premiere + BeIn Movies Premiere BeIn Series 1 BeIn Series 2 CBC @@ -73,7 +72,6 @@ MTV Alloubnaniya Musawa National Geographic Middle East - National Geographic Middle East Nessma Nile Comedy Nile Drama diff --git a/sites/gatotv.com/gatotv.com_mx.channels.xml b/sites/gatotv.com/gatotv.com_mx.channels.xml index ed79c522..f1e44709 100644 --- a/sites/gatotv.com/gatotv.com_mx.channels.xml +++ b/sites/gatotv.com/gatotv.com_mx.channels.xml @@ -98,7 +98,7 @@ TNT Series México TUDN México TV Méxiquense - TV UNAM + TV UNAM Unicable Universal TV México Vibra TV diff --git a/sites/guidatv.sky.it/guidatv.sky.it_it.channels.xml b/sites/guidatv.sky.it/guidatv.sky.it_it.channels.xml index 078b4901..23bfe43e 100644 --- a/sites/guidatv.sky.it/guidatv.sky.it_it.channels.xml +++ b/sites/guidatv.sky.it/guidatv.sky.it_it.channels.xml @@ -2,7 +2,7 @@ 20 Mediaset - Aljazeera English + Aljazeera English Baby TV Europe BFC Forbes Bloomberg TV Europe @@ -48,7 +48,6 @@ Giallo HGTV Italia History Italia - History Italia Horse TV I24 News English Inter TV @@ -65,7 +64,6 @@ Milan TV Motor Trend MTV Music Italia - MTV Music Italia National Geographic Italia National Geographic Italia +1 National Geographic Wild Italia @@ -107,7 +105,6 @@ RT News San Marino RTV Sky Arte - Sky Arte Sky Atlantic Sky Atlantic +1 Sky Cinema Action diff --git a/sites/hd-plus.de/hd-plus.de_de.channels.xml b/sites/hd-plus.de/hd-plus.de_de.channels.xml index 9ed46baf..40a6d29f 100644 --- a/sites/hd-plus.de/hd-plus.de_de.channels.xml +++ b/sites/hd-plus.de/hd-plus.de_de.channels.xml @@ -12,7 +12,7 @@ ATV 2 Augsburg TV AXN Deutschland - Bayerisches Fernsehen Nord + Bayerisches Fernsehen Nord Bibel TV Bloomberg TV Europe Boomerang Deutschland diff --git a/sites/m.tv.sms.cz/m.tv.sms.cz_cz.channels.xml b/sites/m.tv.sms.cz/m.tv.sms.cz_cz.channels.xml index 300fe2aa..77348e17 100644 --- a/sites/m.tv.sms.cz/m.tv.sms.cz_cz.channels.xml +++ b/sites/m.tv.sms.cz/m.tv.sms.cz_cz.channels.xml @@ -13,9 +13,9 @@ Adventure Adventure Czechia Alibi Ireland - Aljazeera Balkans - Aljazeera Channel - Aljazeera English + Aljazeera Balkans + Aljazeera Channel + Aljazeera English AMC Cesko Animal Planet Europe Animal Planet UK @@ -32,6 +32,7 @@ AXN Central Europe AXN Czech Republic AXN White + Babes TV Baby TV Europe Barrandov Krimi BBC Entertainment Europe @@ -74,10 +75,12 @@ Cool TV Credo TV Crime + Investigation UK + Crime + Investigation CZ CS Film CS History CS Horror CS Mystery + Chuck TV CT 1 CT 2 CT 24 @@ -144,7 +147,7 @@ FilmBox Family FilmBox Premium Czechia FilmBox Premium Polska - FilmBox Stars Hungary + FilmBox Stars Czechia Film Café Hungary Film Europe Film Europe + @@ -252,6 +255,7 @@ MyZen TV MyZen TV 4K NASA TV Public + NASA TV UHD Public National Geographic Hrvatska National Geographic Hungary & Czechia National Geographic UK @@ -294,7 +298,7 @@ Park TV Passion XXX Pax TV - Perviy kanal + Perviy kanal Phoenix Pick UK Playboy TV Europe @@ -310,7 +314,7 @@ Polsat Sport Polsat Sport Extra Power TV - Premier Sport + Premier Sport 1 Premier Sport 2 Prima Prima Cool @@ -334,19 +338,20 @@ Rai Movie Rai News 24 Rai Premium - Rai Sport 1 - Rai Sport 2 + Rai Sport 1 + Rai Sport 2 Rai Storia Rai Yoyo RBB Berlin Reality Kings TV - Rebel + Rebel Red Carpet Redlight HD Regionální TV Relax Rete 4 Retro Music TV + Rik Rossiya 24 RT Documentary RTG TV @@ -369,6 +374,7 @@ RTVS 1 RTVS 2 RTVS 3 + RTVS Šport Sat. 1 Deutschland Sat. 1 Gold Deutschland Senzi @@ -398,6 +404,7 @@ Sky Sports Premier League UK Sky Witness UK Sláger TV + Slágr Original Slágr 2 Slágr Muzika Slágr Premium @@ -405,6 +412,7 @@ Sony Movie Channel Hungary Sorozat + Spektrum + Spektrum Czech Spektrum Home Sport 1 Czechia Sport 1 Hungary @@ -437,6 +445,7 @@ Trace Sport Stars Travel Channel Europe Travelxp HD Europe + True Amateurs TTV Tuki TV TV 1000 Balkan @@ -462,6 +471,7 @@ TVN TVN 24 TVN 7 + TV Natura TV Noe TV Nova TVN Turbo diff --git a/sites/magticom.ge/magticom.ge_ge.channels.xml b/sites/magticom.ge/magticom.ge_ge.channels.xml index d9ee4d7d..dd87a7c7 100644 --- a/sites/magticom.ge/magticom.ge_ge.channels.xml +++ b/sites/magticom.ge/magticom.ge_ge.channels.xml @@ -53,11 +53,10 @@ Illusion + Imedi TV Investigation Discovery Rossiya - Istoriya Telekanal + Istoriya JimJam Rossiya Karusel International Kavkasia TV - M-1 Global TV Maestro Magti Hiti Magti Kino @@ -81,7 +80,7 @@ Paramount Channel Russia Paramount Comedy Russia Peretz International - Perviy kanal CIS + Perviy kanal CIS Pos TV Pyatnitsa! International Qartuli Arkhi diff --git a/sites/maxtv.hrvatskitelekom.hr/maxtv.hrvatskitelekom.hr_hr.channels.xml b/sites/maxtv.hrvatskitelekom.hr/maxtv.hrvatskitelekom.hr_hr.channels.xml index fe922fa9..8876187e 100644 --- a/sites/maxtv.hrvatskitelekom.hr/maxtv.hrvatskitelekom.hr_hr.channels.xml +++ b/sites/maxtv.hrvatskitelekom.hr/maxtv.hrvatskitelekom.hr_hr.channels.xml @@ -3,7 +3,7 @@ 24 Kitchen Hrvatska 3sat - Aljazeera Balkans + Aljazeera Balkans Arena Sport 10 Hrvatska Arena Sport 1 Hrvatska Arena Sport 2 Hrvatska @@ -36,7 +36,7 @@ CMC TV CNBC Europe CNN International Europe - Crime & Investigation UK + Crime & Investigation UK Das Erste Da Vinci DM Sat @@ -48,7 +48,6 @@ Extreme Sports Channel FashionTV Europe Federalna TV - Fight Channel Fox Crime Hrvatska Fox Hrvatska Fox Life Hrvatska @@ -101,7 +100,7 @@ NTV Mir OTV Valentino Pickbox TV - Pikaboo + Pikaboo Pink BH Pink Extra Pink Fashion @@ -158,7 +157,7 @@ TV Koper-Capodistria TV Slovenija 1 TV Slovenija 2 - Vavoom + Vavoom Viasat Explore East Viasat History Viasat Nature East diff --git a/sites/maxtvgo.mk/maxtvgo.mk_mk.channels.xml b/sites/maxtvgo.mk/maxtvgo.mk_mk.channels.xml index 1a8a15f8..c9835381 100644 --- a/sites/maxtvgo.mk/maxtvgo.mk_mk.channels.xml +++ b/sites/maxtvgo.mk/maxtvgo.mk_mk.channels.xml @@ -2,8 +2,8 @@ Alfa TV - Aljazeera Balkans - Alsat-M + Aljazeera Balkans + Alsat-M Arena Fight Arena Premium 1 Arena Premium 2 diff --git a/sites/meo.pt/meo.pt_pt.channels.xml b/sites/meo.pt/meo.pt_pt.channels.xml index d5129ced..5b39c989 100644 --- a/sites/meo.pt/meo.pt_pt.channels.xml +++ b/sites/meo.pt/meo.pt_pt.channels.xml @@ -12,7 +12,7 @@ AXN Portugal AXN White Portugal Afro Music Channel - Aljazeera English + Aljazeera English Alma Lusa Antena 3 Internacional Atrecine @@ -120,7 +120,7 @@ PFC Internacional Panda Kids Penthouse Gold - Perviy kanal Europa + Perviy kanal Europa Phoenix CNE Playboy TV Europe Porto Canal diff --git a/sites/mtel.ba/mtel.ba_ba.channels.xml b/sites/mtel.ba/mtel.ba_ba.channels.xml index f3fa0da8..4a3a8f01 100644 --- a/sites/mtel.ba/mtel.ba_ba.channels.xml +++ b/sites/mtel.ba/mtel.ba_ba.channels.xml @@ -12,7 +12,7 @@ Adult Channel 6 Adult Channel 7 Agro TV - Aljazeera Balkans + Aljazeera Balkans Amari TV AMC Balkan Animal Planet Europe diff --git a/sites/mts.rs/mts.rs_rs.channels.xml b/sites/mts.rs/mts.rs_rs.channels.xml index 5d496edb..1c91f7b8 100644 --- a/sites/mts.rs/mts.rs_rs.channels.xml +++ b/sites/mts.rs/mts.rs_rs.channels.xml @@ -6,7 +6,7 @@ 360 Tune Box A1 TV Agro TV - Aljazeera Balkans + Aljazeera Balkans Alternativna TV AMC Balkan Animal Planet Europe diff --git a/sites/nowplayer.now.com/nowplayer.now.com_hk-en.channels.xml b/sites/nowplayer.now.com/nowplayer.now.com_hk-en.channels.xml index 30745f88..a3b30744 100644 --- a/sites/nowplayer.now.com/nowplayer.now.com_hk-en.channels.xml +++ b/sites/nowplayer.now.com/nowplayer.now.com_hk-en.channels.xml @@ -2,7 +2,7 @@ ABC Australia Asia - Aljazeera English + Aljazeera English Animal Planet Southeast Asia Animax Asia Asian Food Network diff --git a/sites/nowplayer.now.com/nowplayer.now.com_hk-zh.channels.xml b/sites/nowplayer.now.com/nowplayer.now.com_hk-zh.channels.xml index e462b02a..f8eafccb 100644 --- a/sites/nowplayer.now.com/nowplayer.now.com_hk-zh.channels.xml +++ b/sites/nowplayer.now.com/nowplayer.now.com_hk-zh.channels.xml @@ -2,7 +2,7 @@ ABC Australia Asia - Aljazeera English + Aljazeera English Animal Planet Southeast Asia Animax Asia Asian Food Network diff --git a/sites/ontvtonight.com/ontvtonight.com_uk.channels.xml b/sites/ontvtonight.com/ontvtonight.com_uk.channels.xml index 20ad0e38..5e7dfff8 100644 --- a/sites/ontvtonight.com/ontvtonight.com_uk.channels.xml +++ b/sites/ontvtonight.com/ontvtonight.com_uk.channels.xml @@ -9,7 +9,7 @@ 92 News Ahlulbayt TV Akaal Channel UK - Aljazeera English + Aljazeera English BBC Four BBC News BBC One diff --git a/sites/programacion-tv.elpais.com/programacion-tv.elpais.com_es.channels.xml b/sites/programacion-tv.elpais.com/programacion-tv.elpais.com_es.channels.xml index e17cbcab..a5358b2e 100644 --- a/sites/programacion-tv.elpais.com/programacion-tv.elpais.com_es.channels.xml +++ b/sites/programacion-tv.elpais.com/programacion-tv.elpais.com_es.channels.xml @@ -2,7 +2,7 @@ 7 Televisión Región de Murcia - Aljazeera English + Aljazeera English AMC España Antena 3 Aragón TV @@ -79,7 +79,6 @@ MTV Music 24 National Geographic España National Geographic Wild España - National Geographic Wild España Neox Nickelodeon Iberia Nick Jr España @@ -107,7 +106,6 @@ TVE Internacional Asia TVE Internacional Europa TVE La 1 Madrid - TVE La 1 Madrid TVE La 2 Ve Plus Panregional VH1 Europe diff --git a/sites/programetv.ro/programetv.ro_ro.channels.xml b/sites/programetv.ro/programetv.ro_ro.channels.xml index 130ac8ad..0a9672a0 100644 --- a/sites/programetv.ro/programetv.ro_ro.channels.xml +++ b/sites/programetv.ro/programetv.ro_ro.channels.xml @@ -5,7 +5,7 @@ Agro TV Aleph News Alfa Omega TV - Aljazeera English + Aljazeera English AMC Romania Animal Planet Europe Antena 1 diff --git a/sites/programme-tv.net/programme-tv.net_fr.channels.xml b/sites/programme-tv.net/programme-tv.net_fr.channels.xml index 9ff2dd70..a1d6ca70 100644 --- a/sites/programme-tv.net/programme-tv.net_fr.channels.xml +++ b/sites/programme-tv.net/programme-tv.net_fr.channels.xml @@ -6,7 +6,7 @@ AB 1 AB 3 Action - Aljazeera English + Aljazeera English Altice Studio Animaux A+ @@ -17,9 +17,9 @@ BBC Four BBC One BBC Two - BeIn Sports 1 - BeIn Sports 2 - BeIn Sports 3 + BeIn Sports 1 France + BeIn Sports 2 France + BeIn Sports 3 France BeIn Sports Max 10 France BeIn Sports Max 4 France BeIn Sports Max 5 France @@ -206,4 +206,4 @@ XXL ZDF - \ No newline at end of file + diff --git a/sites/programtv.onet.pl/programtv.onet.pl_pl.channels.xml b/sites/programtv.onet.pl/programtv.onet.pl_pl.channels.xml index ae3e224d..8d399a47 100644 --- a/sites/programtv.onet.pl/programtv.onet.pl_pl.channels.xml +++ b/sites/programtv.onet.pl/programtv.onet.pl_pl.channels.xml @@ -11,7 +11,7 @@ Adult Channel Adventure Ale Kino + - Aljazeera English + Aljazeera English AMC Polska Animal Planet Polska ARD Alpha @@ -198,7 +198,7 @@ ORF 1 ORF 2 Paramount Channel Polska - Perviy kanal Europa + Perviy kanal Europa Phoenix Planete + Polska Playboy TV Europe @@ -246,7 +246,6 @@ RT Documentary RTL 102.5 RadioVisione RTL Deutschland - RTL Deutschland RTL Zwei Deutschland RT News RTR Planeta diff --git a/sites/rev.bs/rev.bs_bs.channels.xml b/sites/rev.bs/rev.bs_bs.channels.xml index e74abd2a..01fdf802 100644 --- a/sites/rev.bs/rev.bs_bs.channels.xml +++ b/sites/rev.bs/rev.bs_bs.channels.xml @@ -3,7 +3,7 @@ 3ABN English A&E East - Aljazeera English + Aljazeera English AMC East Animal Planet East Ant1 Satellite diff --git a/sites/rotana.net/rotana.net_sa.channels.xml b/sites/rotana.net/rotana.net_sa.channels.xml index 91e94f35..b827ccd6 100644 --- a/sites/rotana.net/rotana.net_sa.channels.xml +++ b/sites/rotana.net/rotana.net_sa.channels.xml @@ -9,7 +9,7 @@ Rotana Classic Rotana Comedy Rotana Drama - Rotana Khalejia + Rotana Khalejia Rotana Kids Rotana+ diff --git a/sites/sky.com/sky.com_uk.channels.xml b/sites/sky.com/sky.com_uk.channels.xml index 7d4cd37a..248b3bc2 100644 --- a/sites/sky.com/sky.com_uk.channels.xml +++ b/sites/sky.com/sky.com_uk.channels.xml @@ -16,7 +16,7 @@ Ahlulbayt TV Akaal Channel UK Alibi - Aljazeera English + Aljazeera English Animal Planet Arirang World Arise News @@ -64,7 +64,7 @@ Court TV Craft Extra Create and Craft - Crime & Investigation UK + Crime & Investigation UK Cruise 1st TV DMAX UK Dave UK @@ -241,7 +241,6 @@ TCM Movies TG4 TJC - TJC Takbeer TV Talking Pictures TV The Box UK diff --git a/sites/sky.de/sky.de.config.js b/sites/sky.de/sky.de.config.js new file mode 100644 index 00000000..37576f4f --- /dev/null +++ b/sites/sky.de/sky.de.config.js @@ -0,0 +1,45 @@ +const dayjs = require('dayjs') + +module.exports = { + site: 'sky.de', + url: `https://www.sky.de/sgtvg/service/getBroadcastsForGrid`, + request: { + method: 'POST', + data: function ({ channel, date }) { + return { + cil: [channel.site_id], + d: date.valueOf() + } + } + }, + parser: function ({ content, channel }) { + const programs = [] + const items = parseItems(content, channel) + items.forEach(item => { + programs.push({ + title: item.et, + description: item.epit, + category: item.ec, + start: dayjs(item.bsdt), + stop: dayjs(item.bedt), + season: item.sn, + episode: item.en, + icon: item.pu ? `http://sky.de${item.pu}` : null + }) + }) + + return programs + } +} + + +function parseContent(content, channel) { + const json = JSON.parse(content) + if (!Array.isArray(json.cl)) return null + return json.cl.find(i => i.ci == channel.site_id) + } + +function parseItems(content, channel) { + const data = parseContent(content, channel) + return data && Array.isArray(data.el) ? data.el : [] + } diff --git a/sites/sky.de/sky.de.test.js b/sites/sky.de/sky.de.test.js new file mode 100644 index 00000000..c2f85fb0 --- /dev/null +++ b/sites/sky.de/sky.de.test.js @@ -0,0 +1,55 @@ +const { parser, url } = require('./sky.de.config.js') +const dayjs = require('dayjs') +const utc = require('dayjs/plugin/utc') +dayjs.extend(utc) + +const date = dayjs.utc('2022-02-28', 'YYYY-MM-DD').startOf('d') +const channel = { + site_id: '522', + xmltv_id: 'WarnerTVComedyDeutschlandHD.us' +} + +const content = `{"cl":[{"ci":522,"el":[{"ei":122309300,"bsdt":1645916700000,"bst":"00:05","bedt":1645918200000,"len":25,"et":"King of Queens","ec":"Comedyserie","cop":"USA","yop":2001,"fsk":"ab 0 Jahre","epit":"Der Experte","sn":"4","en":"11","pu":"/static/img/program_guide/1522936_s.jpg"},{"ei":122309301,"bsdt":1645918200000,"bst":"00:30","bedt":1645919700000,"len":25,"et":"King of Queens","ec":"Comedyserie","cop":"USA","yop":2001,"fsk":"ab 0 Jahre","epit":"Speedy Gonzales","sn":"4","en":"12","pu":"/static/img/program_guide/1522937_s.jpg"}]}]}` + + +it('can generate valid url', () => { + expect(url).toBe('https://www.sky.de/sgtvg/service/getBroadcastsForGrid') +}) + +it('can parse response', () => { + const result = parser({ content, channel }).map(p => { + p.start = p.start.toJSON() + p.stop = p.stop.toJSON() + return p + }) + + expect(result).toMatchObject([ + { + title: 'King of Queens', + description: 'Der Experte', + category: 'Comedyserie', + start: '2022-02-26T23:05:00.000Z', + stop: '2022-02-26T23:30:00.000Z', + season: '4', + episode: '11', + icon: 'http://sky.de/static/img/program_guide/1522936_s.jpg' + }, + { + title: 'King of Queens', + description: 'Speedy Gonzales', + category: 'Comedyserie', + start: '2022-02-26T23:30:00.000Z', + stop: '2022-02-26T23:55:00.000Z', + season: '4', + episode: '12', + icon: 'http://sky.de/static/img/program_guide/1522937_s.jpg' + } + ]) +}) + +it('can handle empty guide', () => { + const result = parser({ + content: `[]` + }) + expect(result).toMatchObject([]) + }) diff --git a/sites/sky.de/sky.de_de.channels.xml b/sites/sky.de/sky.de_de.channels.xml new file mode 100644 index 00000000..a0256a7a --- /dev/null +++ b/sites/sky.de/sky.de_de.channels.xml @@ -0,0 +1,123 @@ + + + + 13th Street Deutschland + Beate Uhse TV + Boomerang Deutschland + Cartoon Network Deutschland + Classica HD + Crime + Investigation Deutschland + DAZN 1 Deutschland + DAZN 2 Deutschland + Discovery Channel Deutschland + E! Europe + Eurosport 1 Germany + Eurosport 2 Germany + Eurosport360 HD 1 + Eurosport360 HD 2 + Eurosport360 HD 3 + Eurosport360 HD 4 + Eurosport360 HD 5 + Eurosport360 HD 6 + Eurosport360 HD 7 + Eurosport360 HD 8 + Eurosport360 HD 9 + Heimatkanal + History Deutschland + Jukebox + Junior + Kinowelt TV + Motorvision TV + National Geographic Deutschland + National Geographic Wild Deutschland + Nick Jr Deutschland + Nicktoons Deutschland + Romance TV Deutschland + Sky Atlantic + Sky Cinema Action + Sky Cinema Action HD + Sky Cinema Best Of + Sky Cinema Best Of HD + Sky Cinema Classics + Sky Cinema Family + Sky Cinema Family HD + Sky Cinema Fun + Sky Cinema Premieren + Sky Cinema Premieren +24 + Sky Cinema Premieren +24 HD + Sky Cinema Premieren HD + Sky Cinema Special + Sky Cinema Thriller + Sky Comedy + Sky Crime + Sky Documentaries Deutschland + Sky Krimi HD + Sky Nature Deutschland + Sky One + Sky Replay Deutschland + Sky Sport 1 + Sky Sport 10 + Sky Sport 11 + Sky Sport 2 + Sky Sport 3 + Sky Sport 4 + Sky Sport 5 + Sky Sport 6 + Sky Sport 7 + Sky Sport 8 + Sky Sport 9 + Sky Sport 1 HD + Sky Sport 10 HD + Sky Sport 11 HD + Sky Sport 2 HD + Sky Sport 3 HD + Sky Sport 4 HD + Sky Sport 5 HD + Sky Sport 6 HD + Sky Sport 7 HD + Sky Sport 8 HD + Sky Sport 9 HD + Sky Sport Austria 1 + Sky Sport Austria 2 + Sky Sport Austria 3 + Sky Sport Austria 4 + Sky Sport Austria 5 + Sky Sport Austria 6 + Sky Sport Austria 7 + Sky Sport Bundesliga 1 + Sky Sport Bundesliga 1 HD + Sky Sport Bundesliga 10 + Sky Sport Bundesliga 10 HD + Sky Sport Bundesliga 2 + Sky Sport Bundesliga 2 HD + Sky Sport Bundesliga 3 + Sky Sport Bundesliga 3 HD + Sky Sport Bundesliga 4 + Sky Sport Bundesliga 4 HD + Sky Sport Bundesliga 5 + Sky Sport Bundesliga 5 HD + Sky Sport Bundesliga 6 + Sky Sport Bundesliga 6 HD + Sky Sport Bundesliga 7 + Sky Sport Bundesliga 7 HD + Sky Sport Bundesliga 8 + Sky Sport Bundesliga 8 HD + Sky Sport Bundesliga 9 + Sky Sport Bundesliga 9 HD + Sky Sport Bundesliga UHD + Sky Sport F1 + Sky Sport News + Sky Sport UHD + Spiegel Geschichte + Spiegel Geschichte HD + Spiegel TV Wissen + Sportdigital Fussball + Syfy Deutschland + Universal TV Deutschland + Warner TV Comedy Deutschland + Warner TV Comedy Deutschland HD + Warner TV Film Deutschland + Warner TV Film Deutschland HD + Warner TV Serie Deutschland + + \ No newline at end of file diff --git a/sites/teliatv.ee/teliatv.ee_ee-en.channels.xml b/sites/teliatv.ee/teliatv.ee_ee-en.channels.xml index 9fc0af2a..39a2bab7 100644 --- a/sites/teliatv.ee/teliatv.ee_ee-en.channels.xml +++ b/sites/teliatv.ee/teliatv.ee_ee-en.channels.xml @@ -2,7 +2,7 @@ 1+2 - Aljazeera English + Aljazeera English Alo TV AMC Russia Animal Planet Rossiya @@ -84,7 +84,7 @@ NTV Serial Okhota i Rybalka Orsent TV - Perviy Baltijskyi Kanal + Perviy Baltijskyi Kanal Private TV ProSieben Deutschland Pyatnitsa! International diff --git a/sites/teliatv.ee/teliatv.ee_ee-et.channels.xml b/sites/teliatv.ee/teliatv.ee_ee-et.channels.xml index 67ed72a9..cb81083e 100644 --- a/sites/teliatv.ee/teliatv.ee_ee-et.channels.xml +++ b/sites/teliatv.ee/teliatv.ee_ee-et.channels.xml @@ -2,7 +2,7 @@ 1+2 - Aljazeera English + Aljazeera English Alo TV AMC Russia Animal Planet Rossiya @@ -84,7 +84,7 @@ NTV Serial Okhota i Rybalka Orsent TV - Perviy Baltijskyi Kanal + Perviy Baltijskyi Kanal Private TV ProSieben Deutschland Pyatnitsa! International diff --git a/sites/teliatv.ee/teliatv.ee_ee-ru.channels.xml b/sites/teliatv.ee/teliatv.ee_ee-ru.channels.xml index d070011c..f9b572c6 100644 --- a/sites/teliatv.ee/teliatv.ee_ee-ru.channels.xml +++ b/sites/teliatv.ee/teliatv.ee_ee-ru.channels.xml @@ -2,7 +2,7 @@ 1+2 - Aljazeera English + Aljazeera English Alo TV AMC Russia Animal Planet Rossiya @@ -84,7 +84,7 @@ NTV Serial Okhota i Rybalka Orsent TV - Perviy Baltijskyi Kanal + Perviy Baltijskyi Kanal Private TV ProSieben Deutschland Pyatnitsa! International diff --git a/sites/turksatkablo.com.tr/turksatkablo.com.tr_tr.channels.xml b/sites/turksatkablo.com.tr/turksatkablo.com.tr_tr.channels.xml index dfcd3fe4..d1862934 100644 --- a/sites/turksatkablo.com.tr/turksatkablo.com.tr_tr.channels.xml +++ b/sites/turksatkablo.com.tr/turksatkablo.com.tr_tr.channels.xml @@ -9,8 +9,8 @@ A Haber Akit TV Ala Too 24 - Aljazeera Channel - Aljazeera English + Aljazeera Channel + Aljazeera English A News Animaux A Para diff --git a/sites/tv.blue.ch/tv.blue.ch_ch.channels.xml b/sites/tv.blue.ch/tv.blue.ch_ch.channels.xml index 4e06e4aa..71c3a54e 100644 --- a/sites/tv.blue.ch/tv.blue.ch_ch.channels.xml +++ b/sites/tv.blue.ch/tv.blue.ch_ch.channels.xml @@ -3,7 +3,7 @@ 2M Monde Alarabiya - Aljazeera Channel + Aljazeera Channel Al Masriyah Dubai TV Watania 1 @@ -27,7 +27,6 @@ Auto Motor og Sport TV Auto Motor und Sport Sony AXN - Bayerisches Fernsehen Süd Bergblick Bibel TV Bild @@ -42,6 +41,7 @@ Bodensee TV Bon Gusto Boomerang Deutschland + Bayerisches Fernsehen Süd Cartoon Network Deutschland Comedy Central Hungary Crime + Investigation Deutschland @@ -202,7 +202,7 @@ 5 Select 5 Star 5 USA - Aljazeera English + Aljazeera English BBC Four BBC News BBC One @@ -546,7 +546,7 @@ Karusel International Nash Kinomir Ost West - Perviy kanal Europa + Perviy kanal Europa RTR Planeta Telebom & Teledom ABC News diff --git a/sites/tv.cctv.com/tv.cctv.com_cn.channels.xml b/sites/tv.cctv.com/tv.cctv.com_cn.channels.xml index 3aa9d5c8..31081b67 100644 --- a/sites/tv.cctv.com/tv.cctv.com_cn.channels.xml +++ b/sites/tv.cctv.com/tv.cctv.com_cn.channels.xml @@ -17,7 +17,6 @@ CCTV 1 CCTV 10 CCTV 11 - CCTV戏曲 CCTV 12 CCTV 13 CCTV 14 diff --git a/sites/tv.dir.bg/tv.dir.bg_bg.channels.xml b/sites/tv.dir.bg/tv.dir.bg_bg.channels.xml index 4bb4e32f..892a36f1 100644 --- a/sites/tv.dir.bg/tv.dir.bg_bg.channels.xml +++ b/sites/tv.dir.bg/tv.dir.bg_bg.channels.xml @@ -62,7 +62,6 @@ HBO Adria HGTV Pan Regional History Europe - History Europe Hobby TV Investigation Discovery Europe JimJam Europe @@ -84,7 +83,7 @@ Nova TV NTV Mir Okhota i Rybalka - Perviy kanal + Perviy kanal Planeta Folk Planeta HD POTV @@ -103,7 +102,6 @@ TV Vraca UA TV Viasat Explore East - Viasat History HD Viasat History HD Viasat Nature East diff --git a/sites/tv.lv/tv.lv_lv.channels.xml b/sites/tv.lv/tv.lv_lv.channels.xml index 9125bb91..b8694944 100644 --- a/sites/tv.lv/tv.lv_lv.channels.xml +++ b/sites/tv.lv/tv.lv_lv.channels.xml @@ -8,7 +8,7 @@ History Europe LTV 1 LTV 7 - Perviy kanal Europa + Perviy kanal Europa REN TV Baltic TV 1000 East TV 1000 Russkoe Kino diff --git a/sites/tv.mail.ru/tv.mail.ru_am.channels.xml b/sites/tv.mail.ru/tv.mail.ru_am.channels.xml index f31b6257..0b7a2e1c 100644 --- a/sites/tv.mail.ru/tv.mail.ru_am.channels.xml +++ b/sites/tv.mail.ru/tv.mail.ru_am.channels.xml @@ -8,7 +8,7 @@ ATV ATV Bazmoc TV ATV Filmzone - ATV Hay TV + ATV Hay TV ATV Khaghaliq TV ATV Kinoman ATV Tava TV diff --git a/sites/tv.trueid.net/tv.trueid.net_th.channels.xml b/sites/tv.trueid.net/tv.trueid.net_th.channels.xml index 00633f5c..3b4c95b9 100644 --- a/sites/tv.trueid.net/tv.trueid.net_th.channels.xml +++ b/sites/tv.trueid.net/tv.trueid.net_th.channels.xml @@ -74,7 +74,7 @@ TrueSport HD 2 TrueSport HD 3 TrueSport HD 4 - True Tennis + True Tennis HD True Thai Film True X-Zyte TV5Monde Asie diff --git a/sites/tv.yandex.ru/tv.yandex.ru_kz.channels.xml b/sites/tv.yandex.ru/tv.yandex.ru_kz.channels.xml index 09a3d79f..7a10b1ca 100644 --- a/sites/tv.yandex.ru/tv.yandex.ru_kz.channels.xml +++ b/sites/tv.yandex.ru/tv.yandex.ru_kz.channels.xml @@ -4,7 +4,7 @@ 31 Kanal Almaty TV Atameken Business - Perviy kanal Eurasia + Perviy kanal Evrasia RTR Planeta Setanta Sports Ukraine STS International diff --git a/sites/tv.yandex.ru/tv.yandex.ru_ru.channels.xml b/sites/tv.yandex.ru/tv.yandex.ru_ru.channels.xml index 1287fb60..62c91fab 100644 --- a/sites/tv.yandex.ru/tv.yandex.ru_ru.channels.xml +++ b/sites/tv.yandex.ru/tv.yandex.ru_ru.channels.xml @@ -63,7 +63,6 @@ Fashion One Europe FashionTV Russia Fast & FunBox HD - Fast & FunBox HD Feniks plus Kino FilmBox Arthouse Worldwide Food Network Russia @@ -79,7 +78,7 @@ Illusion + Indijskoe Kino Insight UHD - Istoriya Telekanal + Istoriya Izvestia TV JimJam Rossiya Kaleidoskop TV @@ -172,7 +171,7 @@ OTR Paramount Channel Russia Paramount Comedy Russia - Perviy kanal + Perviy kanal Pobeda Poehali! Priklyucheniya @@ -209,7 +208,6 @@ Shanson TV Shot TV Sony Channel Russia - Sony Channel Russia Sony Sci-Fi Russia Sony Turbo Sovershenno Sekretno TV diff --git a/sites/tv2go.t-2.net/tv2go.t-2.net_si.channels.xml b/sites/tv2go.t-2.net/tv2go.t-2.net_si.channels.xml index a75f145a..ca437601 100644 --- a/sites/tv2go.t-2.net/tv2go.t-2.net_si.channels.xml +++ b/sites/tv2go.t-2.net/tv2go.t-2.net_si.channels.xml @@ -6,8 +6,8 @@ 360 Tune Box A1 TV Agro TV - Aljazeera Balkans - Alsat-M + Aljazeera Balkans + Alsat-M AMC Balkan Animal Planet Europe Anixe HD Serie @@ -168,7 +168,7 @@ Oto OTV OTV Valentino - Perviy kanal Europa + Perviy kanal Europa PeTV Pink Extra Pink Film diff --git a/sites/tvguide.com/tvguide.com_us.channels.xml b/sites/tvguide.com/tvguide.com_us.channels.xml index 20a864d8..61938c27 100644 --- a/sites/tvguide.com/tvguide.com_us.channels.xml +++ b/sites/tvguide.com/tvguide.com_us.channels.xml @@ -21,7 +21,7 @@ Disney XD East DIY Network USA E! East - ESPN + ESPN ESPN 2 US ESPN Classic USA ESPNU diff --git a/sites/tvheute.at/tvheute.at_at.channels.xml b/sites/tvheute.at/tvheute.at_at.channels.xml index ce43140d..924aafee 100644 --- a/sites/tvheute.at/tvheute.at_at.channels.xml +++ b/sites/tvheute.at/tvheute.at_at.channels.xml @@ -5,7 +5,7 @@ ARTE Deutsch ATV ATV 2 - Bayerisches Fernsehen Süd + Bayerisches Fernsehen Süd Das Erste DAZN 1 Deutschland Disney Channel Deutschland diff --git a/sites/tvplus.com.tr/tvplus.com.tr_tr.channels.xml b/sites/tvplus.com.tr/tvplus.com.tr_tr.channels.xml index bf4ee172..284819ed 100644 --- a/sites/tvplus.com.tr/tvplus.com.tr_tr.channels.xml +++ b/sites/tvplus.com.tr/tvplus.com.tr_tr.channels.xml @@ -9,8 +9,8 @@ A Haber Akilli TV Akit TV - Aljazeera Channel - Aljazeera English + Aljazeera Channel + Aljazeera English Animaux A Para A Spor diff --git a/sites/tvprofil.com/tvprofil.com_al.channels.xml b/sites/tvprofil.com/tvprofil.com_al.channels.xml index 6fc695c4..49935069 100644 --- a/sites/tvprofil.com/tvprofil.com_al.channels.xml +++ b/sites/tvprofil.com/tvprofil.com_al.channels.xml @@ -4,8 +4,8 @@ 24 Kitchen Srbija 360 Tune Box 3 Plus - Aljazeera Balkans - Aljazeera English + Aljazeera Balkans + Aljazeera English Alpha TV AMC Balkan Arena Sport 2 @@ -95,7 +95,7 @@ OBN One Ora News - Pikaboo + Pikaboo Pink Srbija Playboy TV Europe Power Türk TV diff --git a/sites/tvprofil.com/tvprofil.com_ba.channels.xml b/sites/tvprofil.com/tvprofil.com_ba.channels.xml index bc0af207..bec96f2f 100644 --- a/sites/tvprofil.com/tvprofil.com_ba.channels.xml +++ b/sites/tvprofil.com/tvprofil.com_ba.channels.xml @@ -38,7 +38,6 @@ Epic Drama Eurosport 2 Face TV - Fight Channel Fight Network Film Klub France 24 Arabic diff --git a/sites/tvprofil.com/tvprofil.com_bg.channels.xml b/sites/tvprofil.com/tvprofil.com_bg.channels.xml index 48e8a249..ec41eb74 100644 --- a/sites/tvprofil.com/tvprofil.com_bg.channels.xml +++ b/sites/tvprofil.com/tvprofil.com_bg.channels.xml @@ -15,7 +15,6 @@ BTV Action BTV Cinema BTV Comedy - BTV Comedy BTV Lady Bulgaria 24 Bulgaria On Air diff --git a/sites/tvtv.us/tvtv.us_us.channels.xml b/sites/tvtv.us/tvtv.us_us.channels.xml index d145518d..dbf8a35a 100644 --- a/sites/tvtv.us/tvtv.us_us.channels.xml +++ b/sites/tvtv.us/tvtv.us_us.channels.xml @@ -64,9 +64,8 @@ Bally Sports Wisconsin BBC America East BBC America West - BeIn Sports en Español BeIn Sports en Español - BeIn Sports USA + BeIn Sports USA BET East BET Gospel BET Her @@ -1141,6 +1140,12 @@ Spectrum SportsNet LA Sportsman Channel Stadium + Stadium 1 + Stadium 2 + Stadium 3 + Stadium College Sports Atlantic + Stadium College Sports Central + Stadium College Sports Pacific Star Bharat Start TV Starz Cinema East @@ -1344,16 +1349,15 @@ Comet (WTLF2) Tallahassee FL TBD. (WTLF3) Tallahassee FL PBS (WFSU1) Tallahassee FL - The Florida Channel (WFSU2) - Create (WFSU3) Tallahassee FL - PBS Kids (WFSU4) Tallahassee FL + The Florida Channel (WFSU2) + Create (WFSU3) Tallahassee FL + PBS Kids (WFSU4) Tallahassee FL ABC (WSB-DT1) Atanta GA Bounce (WSB-DT2) Atanta GA Dabl (WSB-DT3) Atanta GA CBS (WGCL-DT1) Atanta GA Cozi TV (WGCL-DT2) Atanta GA Grit (WGCL-DT3) Atanta GA - Fave TV (WGCL-DT4) Atanta GA NBC (WXIA-DT1) Atanta GA True Crime Network (WXIA-DT3) Atanta GA Quest (WXIA-DT4) Atanta GA @@ -1430,9 +1434,6 @@ Movies! (WNYW-DT2) New York NY The Grio TV (WNYW-DT4) New York NY Decades (WNYW-DT5) New York NY - NYC Life (WNYE-DT1) New York NY - NYC Gov. (WNYE-DT2) New York NY - CUNY TV (WNYE-DT3) New York NY CBS (WWJ-DT1) Detroit MI Start TV (WWJ-DT2) Detroit MI Dabl (WWJ-DT3) Detroit MI @@ -1553,8 +1554,8 @@ Start TV (WFOR-DT2) Miami FL Dabl (WFOR-DT3) Miami FL FAVE TV (WFOR-DT4) Miami FL - FOX (WSVN-DT1) Miami FL - The Grio TV (WSVN-DT2) Miami FL + FOX (WSVN-DT1) Miami FL + The Grio TV (WSVN-DT2) Miami FL NBC (WTVJ-DT1) Miami FL Cozi TV (WTVJ-DT2) Miami FL NBCLX (WTVJ-DT3) Miami FL @@ -1566,9 +1567,9 @@ Antenna TV (WSFL-DT3) Miami FL TrueReal (WSFL-DT4) Miami FL FOX (KDFW-DT1) Dallas TX - MyNetwork TV (KDFW-DT2) Dallas TX - Heores and Icons (KDFW-DT3) Dallas TX - GetTV (KDFW-DT4) Dallas TX + MyNetwork TV (KDFW-DT2) Dallas TX + Heores and Icons (KDFW-DT3) Dallas TX + GetTV (KDFW-DT4) Dallas TX NBC (KXAS-DT1) Dallas TX Cozi TV (KXAS-DT2) Dallas TX NBCLX (KXAS-DT3) Dallas TX @@ -1601,5 +1602,87 @@ My Network TV (WDCA-DT1) Washington D.C. Movies! (WDCA-DT2) Washington D.C. Heroes and Icons (WDCA-DT3) Washington D.C. + NECN + Boomerang + TruTV East + TruTV West + TCM + E! + QVC + NBC (KPNX-DT1) Arizona PX + Shop LC (KPNX-DT2) Arizona PX + True Crime Network (KPNX-DT3) Arizona PX + Quest (KPNX-DT4) Arizona PX + Twist (KPNX-DT5) Arizona PX + FOX (KSAZ-DT1) Arizona PX + Heroes and Icons (KSAZ-DT2) Arizona PX + the Grio TV (KSAZ-DT3) Arizona PX + abc (KNXV-DT1) Arizona PX + Antenna TV(KNXV-DT2) Arizona PX + Laff (KNXV-DT3) Arizona PX + QVC (KNXV-DT4) Arizona PX + CBS (KPHO-DT1) Arizona PX + Cozi TV (KPHO-DT2) Arizona PX + Dabl (KPHO-DT3) Arizona PX + Shop LC (KPHO-DT4) Arizona PX + CW (KASW-DT1) Arizona PX + Grit (KASW-DT2) Arizona PX + PBS (KAET-DT1) Arizona PX + PBS Arizona Life (KAET-DT2) Arizona PX + PBS World (KAET-DT3) Arizona PX + PBS Kids (KAET-DT4) Arizona PX + My Nework TV (KUTP-DT1) Arizona PX + Movies! (KUTP-DT2) Arizona PX + Buzzr (KUTP-DT3) Arizona PX + Decades (KUTP-DT4) Arizona PX + Start TV (KUTP-DT5) Arizona PX + Ion Television (KPPX-DT1) Arizona PX + Bounce (KPPX-DT2) Arizona PX + Court TV(KPPX-DT3) Arizona PX + NewsY (KPPX-DT4) Arizona PX + Defy TV (KPPX-DT5) Arizona PX + TrueReal (KPPX-DT6) Arizona PX + abc (WTXL1) Tallahassee FL + Bounce (WTXL2) Tallahassee FL + Geit (WTXL3) Tallahassee FL + Court TV Mystery (WTXL4) Tallahassee FL + Court TV (WTXL5) Tallahassee FL + NBC (WKYC-DT1) Cleveland OH + True Crime Network (WKYC-DT2) Cleveland OH + Cozi TV (WKYC-DT3) Cleveland OH + Quest (WKYC-DT4) Cleveland OH + Twist (WKYC-DT5) Cleveland OH + Shop LC (WKYC-DT6) Cleveland OH + abc (WEWS-DT1) Cleveland OH + Grit (WEWS-DT2) Cleveland OH + Laff (WEWS-DT3) Cleveland OH + TrueReal (WEWS-DT4) Cleveland OH + HSN (WEWS-DT5) Cleveland OH + FOX (WJW-DT1) Cleveland OH + Antenna TV (WJW-DT2) Cleveland OH + Comet (WJW-DT3) Cleveland OH + Charge (WJW-DT4) Cleveland OH + CBS (WOIO-DT1) Cleveland OH + MeTV /My Network TV (WOIO-DT2) Cleveland OH + Dabl (WOIO-DT3) Cleveland OH + Rewind TV (WOIO-DT4) Cleveland OH + CW (WUAB-DT1) Cleveland OH + Bounce (WUAB-DT2) Cleveland OH + Circle (WUAB-DT3) Cleveland OH + PBS (WVIZ-DT1) Cleveland OH + The Ohio Channel (WVIZ-DT2) Cleveland OH + PBS World (WVIZ-DT3) Cleveland OH + PBS Create (WVIZ-DT4) Cleveland OH + PBS Kids (WVIZ-DT5) Cleveland OH + VSiN + WeatherNation + Nick on PlutoTV + ABC (WFTV-DT1) Orlando FL + CBS (WKMG-DT1) Orlando FL + FOX (WOFL-DT1) Orlando FL + My65 (WRBW-DT1) Orlando FL + NBC (WESH-DT1) Orlando FL + MeTV (WESH-DT2) Orlando FL + NESN Plus diff --git a/sites/vidio.com/vidio.com_id.channels.xml b/sites/vidio.com/vidio.com_id.channels.xml index b60b12da..5eb49687 100644 --- a/sites/vidio.com/vidio.com_id.channels.xml +++ b/sites/vidio.com/vidio.com_id.channels.xml @@ -2,33 +2,57 @@ Ajwa TV - Aljazeera English + Aljazeera English Arirang World BeIn Sports 1 Indonesia - BeIn Sports 2 Indonesia + BeIn Sports 3 Indonesia Berita Satu HD Champions TV 1 Champions TV 2 Champions TV 3 + Champions TV 4 + Champions TV Xtra + Citra Bioskop + Citra Culinary & Travel + Citra Dangdut + Citra Drama + Citra Entertainment + Citra Muslim CNA Da Ai TV + Da Vinci Asia DW English EuroNews English - GTV + Fashion TV Asia + Fashion TV L'Original + Fashion TV Midnite Secret + Hip Hip Horee! + Horee! Indosiar - INews Jak TV Kompas TV + Liverpool FC TV Metro TV - MNC TV + Mentari TV My TV + NBA TV NET + NHK World Japan Nusantara O Channel + Reformed 21 TV + Pet TV + Rock Entertainment + Rock Extreme + RTV SCTV + U Channel Trans 7 Trans TV + TV Edukasi TVRI Nasional Zee Bioskop + Zing Asia + Zoo Moo Asia - \ No newline at end of file + diff --git a/sites/zap.co.ao/zap.co.ao_ao.channels.xml b/sites/zap.co.ao/zap.co.ao_ao.channels.xml index d51c54d1..c3c35951 100644 --- a/sites/zap.co.ao/zap.co.ao_ao.channels.xml +++ b/sites/zap.co.ao/zap.co.ao_ao.channels.xml @@ -7,8 +7,8 @@ AXN Portugal Africanews Afro Music Channel - Aljazeera Channel - Aljazeera English + Aljazeera Channel + Aljazeera English BBC World News Africa Baby TV Europe Band Internacional diff --git a/tests/__data__/database/queue.db b/tests/__data__/database/queue.db new file mode 100644 index 00000000..e69de29b diff --git a/tests/__data__/expected/readme.md b/tests/__data__/expected/_readme.md similarity index 91% rename from tests/__data__/expected/readme.md rename to tests/__data__/expected/_readme.md index ad67cdb3..4d640621 100644 --- a/tests/__data__/expected/readme.md +++ b/tests/__data__/expected/_readme.md @@ -16,14 +16,14 @@ To load a program guide, all you need to do is copy the link to one or more of t -## EPG Codes - -📋  [iptv-org.github.io](https://iptv-org.github.io/) - ## API The API documentation can be found in the [iptv-org/api](https://github.com/iptv-org/api) repository. +## Resources + +Links to other useful IPTV-related resources can be found in the [iptv-org/awesome-iptv](https://github.com/iptv-org/awesome-iptv) repository. + ## Contribution If you find a bug or want to contribute to the code or documentation, you can help by submitting an [issue](https://github.com/iptv-org/epg/issues) or a [pull request](https://github.com/iptv-org/epg/pulls). diff --git a/tests/__data__/expected/logs/load-cluster/cluster_1.log b/tests/__data__/expected/logs/cluster/load/cluster_1.log similarity index 100% rename from tests/__data__/expected/logs/load-cluster/cluster_1.log rename to tests/__data__/expected/logs/cluster/load/cluster_1.log diff --git a/tests/__data__/expected/logs/errors/ca/example.com.log b/tests/__data__/expected/logs/errors/ca/example.com.log deleted file mode 100644 index eb0f2aac..00000000 --- a/tests/__data__/expected/logs/errors/ca/example.com.log +++ /dev/null @@ -1 +0,0 @@ -{"xmltv_id":"CNNInternationalEurope2.us","site":"example.com","site_id":"141","lang":"en","error":"The channel has the wrong xmltv_id"} diff --git a/tests/__data__/expected/logs/errors/ge/magticom.ge.log b/tests/__data__/expected/logs/errors/ge/magticom.ge.log deleted file mode 100644 index 4d8a3977..00000000 --- a/tests/__data__/expected/logs/errors/ge/magticom.ge.log +++ /dev/null @@ -1 +0,0 @@ -{"xmltv_id":"CNNInternationalEurope.us","site":"magticom.ge","site_id":"140","lang":"ru","date":"2022-01-21T00:00:00Z","error":"Programs not found"} diff --git a/tests/__data__/expected/logs/errors/ru/yandex.ru.log b/tests/__data__/expected/logs/errors/ru/yandex.ru.log deleted file mode 100644 index 4fd847ed..00000000 --- a/tests/__data__/expected/logs/errors/ru/yandex.ru.log +++ /dev/null @@ -1 +0,0 @@ -{"xmltv_id":"Perviykanal.ru","site":"yandex.ru","site_id":"1","lang":"ru","date":"2022-01-21T00:00:00Z","error":"Some error"} diff --git a/tests/__data__/expected/logs/errors/us/directv.com.log b/tests/__data__/expected/logs/errors/us/directv.com.log deleted file mode 100644 index 9fb73a9e..00000000 --- a/tests/__data__/expected/logs/errors/us/directv.com.log +++ /dev/null @@ -1 +0,0 @@ -{"xmltv_id":"BravoEast.us","site":"directv.com","site_id":"237","lang":"en","date":"2022-01-21T00:00:00Z","error":"Invalid header value char"} diff --git a/tests/__data__/expected/logs/guides.log b/tests/__data__/expected/logs/guides/update.log similarity index 100% rename from tests/__data__/expected/logs/guides.log rename to tests/__data__/expected/logs/guides/update.log diff --git a/tests/__data__/expected/sites/parse-channels.channels.xml b/tests/__data__/expected/sites/parse-channels.channels.xml new file mode 100644 index 00000000..82cbe2a7 --- /dev/null +++ b/tests/__data__/expected/sites/parse-channels.channels.xml @@ -0,0 +1,6 @@ + + + + CNN International + + diff --git a/tests/__data__/input/logs/load-cluster/cluster_1.log b/tests/__data__/input/logs/cluster/load/cluster_1.log similarity index 100% rename from tests/__data__/input/logs/load-cluster/cluster_1.log rename to tests/__data__/input/logs/cluster/load/cluster_1.log diff --git a/tests/__data__/input/logs/errors.log b/tests/__data__/input/logs/errors.log deleted file mode 100644 index 097e0e87..00000000 --- a/tests/__data__/input/logs/errors.log +++ /dev/null @@ -1 +0,0 @@ -{"lang":"en","xmltv_id":"BravoEast.us","site_id":"237","site":"directv.com","configPath":"sites/directv.com/directv.com.config.js","groups":["us/directv.com"],"cluster_id":84,"_id":"00AluKCrCnfgrl8W","date":"2022-01-21T00:00:00Z","error":"Invalid header value char"} diff --git a/tests/__data__/input/logs/guides.log b/tests/__data__/input/logs/guides/update.log similarity index 100% rename from tests/__data__/input/logs/guides.log rename to tests/__data__/input/logs/guides/update.log diff --git a/tests/__data__/input/_readme.json b/tests/__data__/input/readme.json similarity index 100% rename from tests/__data__/input/_readme.json rename to tests/__data__/input/readme.json diff --git a/tests/__data__/input/sites/duplicate.channels.xml b/tests/__data__/input/sites/duplicate.channels.xml new file mode 100644 index 00000000..000cd700 --- /dev/null +++ b/tests/__data__/input/sites/duplicate.channels.xml @@ -0,0 +1,7 @@ + + + + CNN International + CNN International + + \ No newline at end of file diff --git a/tests/__data__/input/sites/lint.channels.xml b/tests/__data__/input/sites/lint.channels.xml new file mode 100644 index 00000000..b85e8b8d --- /dev/null +++ b/tests/__data__/input/sites/lint.channels.xml @@ -0,0 +1,6 @@ + + + + CNN International + + \ No newline at end of file diff --git a/tests/__data__/input/sites/parse-channels.config.js b/tests/__data__/input/sites/parse-channels.config.js new file mode 100644 index 00000000..9db10dc2 --- /dev/null +++ b/tests/__data__/input/sites/parse-channels.config.js @@ -0,0 +1,19 @@ +module.exports = { + site: 'parse-channels.com', + url() { + return `https://parse-channels.com` + }, + parser() { + return [] + }, + channels() { + return [ + { + lang: 'en', + xmltv_id: 'CNNInternational.us', + site_id: 140, + name: 'CNN International' + } + ] + } +} diff --git a/tests/__data__/input/sites/wrong_xmltv_id.channels.xml b/tests/__data__/input/sites/wrong_xmltv_id.channels.xml new file mode 100644 index 00000000..638ab301 --- /dev/null +++ b/tests/__data__/input/sites/wrong_xmltv_id.channels.xml @@ -0,0 +1,6 @@ + + + + CNN International + + \ No newline at end of file diff --git a/tests/commands/api/update.test.js b/tests/commands/api/update.test.js new file mode 100644 index 00000000..75cffd04 --- /dev/null +++ b/tests/commands/api/update.test.js @@ -0,0 +1,26 @@ +const { execSync } = require('child_process') +const fs = require('fs-extra') +const path = require('path') + +beforeEach(() => { + fs.emptyDirSync('tests/__data__/output') + + const stdout = execSync( + 'CHANNELS_PATH=tests/__data__/input/sites/example.com_ca.channels.xml OUTPUT_DIR=tests/__data__/output/api npm run api:update', + { encoding: 'utf8' } + ) +}) + +it('can generate guides.json', () => { + expect(content('tests/__data__/output/api/guides.json')).toBe( + content('tests/__data__/expected/api/guides.json') + ) +}) + +function content(filepath) { + const data = fs.readFileSync(path.resolve(filepath), { + encoding: 'utf8' + }) + + return JSON.stringify(data) +} diff --git a/tests/commands/channels/lint.test.js b/tests/commands/channels/lint.test.js new file mode 100644 index 00000000..f504efd6 --- /dev/null +++ b/tests/commands/channels/lint.test.js @@ -0,0 +1,19 @@ +const { execSync } = require('child_process') + +it('will show a message if the file contains a syntax error', () => { + try { + const stdout = execSync( + 'npm run channels:lint -- tests/__data__/input/sites/lint.channels.xml', + { + encoding: 'utf8' + } + ) + console.log(stdout) + process.exit(1) + } catch (err) { + expect(err.status).toBe(1) + expect(err.stdout).toBe( + `\n> channels:lint\n> node scripts/commands/channels/lint.js "tests/__data__/input/sites/lint.channels.xml"\n\n\ntests/__data__/input/sites/lint.channels.xml\n 4:0 Element 'channel': The attribute 'lang' is required but missing.\n\n1 error(s)\n` + ) + } +}) diff --git a/tests/commands/channels/parse.test.js b/tests/commands/channels/parse.test.js new file mode 100644 index 00000000..bc82251c --- /dev/null +++ b/tests/commands/channels/parse.test.js @@ -0,0 +1,24 @@ +const { execSync } = require('child_process') +const fs = require('fs-extra') +const path = require('path') + +beforeEach(() => { + fs.emptyDirSync('tests/__data__/output') + + const stdout = execSync( + 'npm run channels:parse -- --config=tests/__data__/input/sites/parse-channels.config.js --output=tests/__data__/output/channels.xml', + { encoding: 'utf8' } + ) +}) + +it('can parse channels', () => { + expect(content('tests/__data__/output/channels.xml')).toEqual( + content('tests/__data__/expected/sites/parse-channels.channels.xml') + ) +}) + +function content(filepath) { + return fs.readFileSync(path.resolve(filepath), { + encoding: 'utf8' + }) +} diff --git a/tests/commands/channels/validate.test.js b/tests/commands/channels/validate.test.js new file mode 100644 index 00000000..0c7e6026 --- /dev/null +++ b/tests/commands/channels/validate.test.js @@ -0,0 +1,49 @@ +const { execSync } = require('child_process') + +it('will show a message if the file contains a duplicate', () => { + try { + const stdout = execSync( + 'npm run channels:validate -- tests/__data__/input/sites/duplicate.channels.xml', + { + encoding: 'utf8' + } + ) + console.log(stdout) + process.exit(1) + } catch (err) { + expect(err.status).toBe(1) + expect(err.stdout).toBe( + `\n> channels:validate\n> node scripts/commands/channels/validate.js "tests/__data__/input/sites/duplicate.channels.xml"\n\ntests/__data__/input/sites/duplicate.channels.xml +┌─────────┬─────────────┬──────┬─────────────────────────────┬─────────┬─────────────────────┐ +│ (index) │ type │ lang │ xmltv_id │ site_id │ name │ +├─────────┼─────────────┼──────┼─────────────────────────────┼─────────┼─────────────────────┤ +│ 0 │ 'duplicate' │ 'en' │ 'CNNInternationalEurope.us' │ '140' │ 'CNN International' │ +└─────────┴─────────────┴──────┴─────────────────────────────┴─────────┴─────────────────────┘ +\n1 error(s) in 1 file(s)\n` + ) + } +}) + +it('will show a message if the file contains a channel with wrong xmltv_id', () => { + try { + const stdout = execSync( + 'npm run channels:validate -- tests/__data__/input/sites/wrong_xmltv_id.channels.xml', + { + encoding: 'utf8' + } + ) + console.log(stdout) + process.exit(1) + } catch (err) { + expect(err.status).toBe(1) + expect(err.stdout).toBe( + `\n> channels:validate\n> node scripts/commands/channels/validate.js "tests/__data__/input/sites/wrong_xmltv_id.channels.xml"\n\ntests/__data__/input/sites/wrong_xmltv_id.channels.xml +┌─────────┬──────────────────┬──────┬────────────────────┬─────────┬─────────────────────┐ +│ (index) │ type │ lang │ xmltv_id │ site_id │ name │ +├─────────┼──────────────────┼──────┼────────────────────┼─────────┼─────────────────────┤ +│ 0 │ 'wrong_xmltv_id' │ 'en' │ 'CNNInternational' │ '140' │ 'CNN International' │ +└─────────┴──────────────────┴──────┴────────────────────┴─────────┴─────────────────────┘ +\n1 error(s) in 1 file(s)\n` + ) + } +}) diff --git a/tests/commands/cluster/load.test.js b/tests/commands/cluster/load.test.js new file mode 100644 index 00000000..6b8af69a --- /dev/null +++ b/tests/commands/cluster/load.test.js @@ -0,0 +1,32 @@ +const { execSync } = require('child_process') +const fs = require('fs-extra') +const path = require('path') + +beforeEach(() => { + fs.emptyDirSync('tests/__data__/output') + fs.copyFileSync('tests/__data__/input/database/queue.db', 'tests/__data__/output/queue.db') + + execSync( + 'DB_DIR=tests/__data__/output LOGS_DIR=tests/__data__/output/logs npm run cluster:load -- --cluster-id=1 --timeout=10000', + { encoding: 'utf8' } + ) +}) + +it('can load cluster', () => { + expect(content('tests/__data__/output/logs/cluster/load/cluster_1.log')).toEqual( + content('tests/__data__/expected/logs/cluster/load/cluster_1.log') + ) +}) + +function content(filepath) { + const data = fs.readFileSync(path.resolve(filepath), { + encoding: 'utf8' + }) + + return data + .split('\n') + .filter(l => l) + .map(l => { + return JSON.parse(l) + }) +} diff --git a/tests/commands/create-matrix.test.js b/tests/commands/create-matrix.test.js deleted file mode 100644 index f06ae06d..00000000 --- a/tests/commands/create-matrix.test.js +++ /dev/null @@ -1,25 +0,0 @@ -const fs = require('fs') -const path = require('path') -const { execSync } = require('child_process') - -beforeEach(() => { - fs.rmdirSync('tests/__data__/output', { recursive: true }) - fs.mkdirSync('tests/__data__/output') - fs.mkdirSync('tests/__data__/temp/database', { recursive: true }) - fs.copyFileSync('tests/__data__/input/database/queue.db', 'tests/__data__/temp/database/queue.db') -}) - -afterEach(() => { - fs.rmdirSync('tests/__data__/temp', { recursive: true }) -}) - -it('can create valid matrix', () => { - const result = execSync( - 'DB_DIR=tests/__data__/temp/database node scripts/commands/create-matrix.js', - { - encoding: 'utf8' - } - ) - - expect(result).toBe('::set-output name=matrix::{"cluster_id":[1,4,84,120]}\n') -}) diff --git a/tests/commands/guides/update.test.js b/tests/commands/guides/update.test.js new file mode 100644 index 00000000..98c8455a --- /dev/null +++ b/tests/commands/guides/update.test.js @@ -0,0 +1,32 @@ +const { execSync } = require('child_process') +const fs = require('fs-extra') +const path = require('path') + +beforeEach(() => { + fs.emptyDirSync('tests/__data__/output') + fs.copyFileSync('tests/__data__/input/database/queue.db', 'tests/__data__/output/queue.db') + fs.copyFileSync('tests/__data__/input/database/programs.db', 'tests/__data__/output/programs.db') + + const stdout = execSync( + 'DB_DIR=tests/__data__/output DATA_DIR=tests/__data__/input/data PUBLIC_DIR=tests/__data__/output npm run guides:update', + { encoding: 'utf8' } + ) +}) + +it('can generate /guides', () => { + expect(content('tests/__data__/output/guides/fr/chaines-tv.orange.fr.epg.xml')).toBe( + content('tests/__data__/expected/guides/fr/chaines-tv.orange.fr.epg.xml') + ) + + expect(content('tests/__data__/output/guides/zw/dstv.com.epg.xml')).toBe( + content('tests/__data__/expected/guides/zw/dstv.com.epg.xml') + ) +}) + +function content(filepath) { + const data = fs.readFileSync(path.resolve(filepath), { + encoding: 'utf8' + }) + + return JSON.stringify(data) +} diff --git a/tests/commands/load-cluster.test.js b/tests/commands/load-cluster.test.js deleted file mode 100644 index 41347eb2..00000000 --- a/tests/commands/load-cluster.test.js +++ /dev/null @@ -1,40 +0,0 @@ -const fs = require('fs') -const path = require('path') -const dayjs = require('dayjs') -const utc = require('dayjs/plugin/utc') -const { execSync } = require('child_process') - -dayjs.extend(utc) - -beforeEach(() => { - fs.rmdirSync('tests/__data__/temp', { recursive: true }) - fs.rmdirSync('tests/__data__/output', { recursive: true }) - fs.mkdirSync('tests/__data__/output') - fs.mkdirSync('tests/__data__/temp/database', { recursive: true }) - fs.copyFileSync('tests/__data__/input/database/queue.db', 'tests/__data__/temp/database/queue.db') - - execSync( - 'DB_DIR=tests/__data__/temp/database LOGS_DIR=tests/__data__/output/logs node scripts/commands/load-cluster.js --cluster-id=1 --timeout=10000', - { encoding: 'utf8' } - ) -}) - -it('can load cluster', () => { - let output = content('tests/__data__/output/logs/load-cluster/cluster_1.log') - let expected = content('tests/__data__/expected/logs/load-cluster/cluster_1.log') - - expect(output).toEqual(expected) -}) - -function content(filepath) { - const data = fs.readFileSync(path.resolve(filepath), { - encoding: 'utf8' - }) - - return data - .split('\n') - .filter(l => l) - .map(l => { - return JSON.parse(l) - }) -} diff --git a/tests/commands/save-results.test.js b/tests/commands/programs/save.test.js similarity index 51% rename from tests/commands/save-results.test.js rename to tests/commands/programs/save.test.js index ff9a5db0..dad307c8 100644 --- a/tests/commands/save-results.test.js +++ b/tests/commands/programs/save.test.js @@ -1,25 +1,19 @@ -const fs = require('fs') -const path = require('path') const { execSync } = require('child_process') +const fs = require('fs-extra') +const path = require('path') beforeEach(() => { - fs.rmdirSync('tests/__data__/output', { recursive: true }) - fs.mkdirSync('tests/__data__/output') - fs.mkdirSync('tests/__data__/output/database', { recursive: true }) - - fs.copyFileSync( - 'tests/__data__/input/database/queue.db', - 'tests/__data__/output/database/queue.db' - ) + fs.emptyDirSync('tests/__data__/output') + fs.copyFileSync('tests/__data__/input/database/queue.db', 'tests/__data__/output/queue.db') const stdout = execSync( - 'DB_DIR=tests/__data__/output/database LOGS_DIR=tests/__data__/input/logs node scripts/commands/save-results.js', + 'DB_DIR=tests/__data__/output LOGS_DIR=tests/__data__/input/logs npm run programs:save', { encoding: 'utf8' } ) }) it('can save programs to database', () => { - let output = content('tests/__data__/output/database/programs.db') + let output = content('tests/__data__/output/programs.db') let expected = content('tests/__data__/expected/database/programs.db') output = output.map(i => { @@ -35,10 +29,9 @@ it('can save programs to database', () => { }) it('can update queue', () => { - const output = content('tests/__data__/output/database/queue.db') - const expected = content('tests/__data__/expected/database/queue-with-errors.db') - - expect(output).toEqual(expected) + expect(content('tests/__data__/output/queue.db')).toEqual( + content('tests/__data__/expected/database/queue-with-errors.db') + ) }) function content(filepath) { diff --git a/tests/commands/create-queue.test.js b/tests/commands/queue/create.test.js similarity index 65% rename from tests/commands/create-queue.test.js rename to tests/commands/queue/create.test.js index 80ed0508..52862108 100644 --- a/tests/commands/create-queue.test.js +++ b/tests/commands/queue/create.test.js @@ -1,13 +1,12 @@ -const fs = require('fs') -const path = require('path') const { execSync } = require('child_process') +const fs = require('fs-extra') +const path = require('path') beforeEach(() => { - fs.rmdirSync('tests/__data__/output', { recursive: true }) - fs.mkdirSync('tests/__data__/output') + fs.emptyDirSync('tests/__data__/output') const stdout = execSync( - 'DB_DIR=tests/__data__/output/database LOGS_DIR=tests/__data__/output/logs CHANNELS_PATH=tests/__data__/input/sites/*.channels.xml node scripts/commands/create-queue.js --max-clusters=1 --days=2', + 'DB_DIR=tests/__data__/output/database LOGS_DIR=tests/__data__/output/logs CHANNELS_PATH=tests/__data__/input/sites/example.com_ca.channels.xml npm run queue:create -- --max-clusters=1 --days=2', { encoding: 'utf8' } ) }) @@ -35,13 +34,6 @@ it('can create queue', () => { ) }) -it('can log errors', () => { - let output = content('tests/__data__/output/logs/errors/ca/example.com.log') - let expected = content('tests/__data__/expected/logs/errors/ca/example.com.log') - - expect(output).toEqual(expected) -}) - function content(filepath) { const data = fs.readFileSync(path.resolve(filepath), { encoding: 'utf8' diff --git a/tests/commands/readme/update.test.js b/tests/commands/readme/update.test.js new file mode 100644 index 00000000..f298e9f6 --- /dev/null +++ b/tests/commands/readme/update.test.js @@ -0,0 +1,26 @@ +const { execSync } = require('child_process') +const fs = require('fs-extra') +const path = require('path') + +beforeEach(() => { + fs.emptyDirSync('tests/__data__/output') + + const stdout = execSync( + 'CHANNELS_PATH=tests/__data__/input/sites/example.com_ca.channels.xml DATA_DIR=tests/__data__/input/data npm run readme:update -- --config=tests/__data__/input/readme.json', + { encoding: 'utf8' } + ) +}) + +it('can update readme.md', () => { + expect(content('tests/__data__/output/readme.md')).toBe( + content('tests/__data__/expected/_readme.md') + ) +}) + +function content(filepath) { + const data = fs.readFileSync(path.resolve(filepath), { + encoding: 'utf8' + }) + + return JSON.stringify(data) +} diff --git a/tests/commands/update-api.test.js b/tests/commands/update-api.test.js deleted file mode 100644 index db5eae3e..00000000 --- a/tests/commands/update-api.test.js +++ /dev/null @@ -1,28 +0,0 @@ -const fs = require('fs') -const path = require('path') -const { execSync } = require('child_process') - -beforeEach(() => { - fs.rmdirSync('tests/__data__/output', { recursive: true }) - fs.mkdirSync('tests/__data__/output') - - const stdout = execSync( - 'CHANNELS_PATH=tests/__data__/input/sites/**.channels.xml OUTPUT_DIR=tests/__data__/output/api node scripts/commands/update-api.js', - { encoding: 'utf8' } - ) -}) - -it('can generate guides.json', () => { - const output = content('tests/__data__/output/api/guides.json') - const expected = content('tests/__data__/expected/api/guides.json') - - expect(output).toBe(expected) -}) - -function content(filepath) { - const data = fs.readFileSync(path.resolve(filepath), { - encoding: 'utf8' - }) - - return JSON.stringify(data) -} diff --git a/tests/commands/update-guides.test.js b/tests/commands/update-guides.test.js deleted file mode 100644 index 6d65f631..00000000 --- a/tests/commands/update-guides.test.js +++ /dev/null @@ -1,67 +0,0 @@ -const fs = require('fs') -const path = require('path') -const { execSync } = require('child_process') - -beforeEach(() => { - fs.rmdirSync('tests/__data__/output', { recursive: true }) - fs.mkdirSync('tests/__data__/output') - fs.mkdirSync('tests/__data__/temp/database', { recursive: true }) - fs.copyFileSync('tests/__data__/input/database/queue.db', 'tests/__data__/temp/database/queue.db') - fs.copyFileSync( - 'tests/__data__/input/database/programs.db', - 'tests/__data__/temp/database/programs.db' - ) - - const stdout = execSync( - 'DB_DIR=tests/__data__/temp/database DATA_DIR=tests/__data__/input/data PUBLIC_DIR=tests/__data__/output LOGS_DIR=tests/__data__/output/logs node scripts/commands/update-guides.js', - { encoding: 'utf8' } - ) -}) - -afterEach(() => { - fs.rmdirSync('tests/__data__/temp', { recursive: true }) -}) - -it('can generate /guides', () => { - const output1 = content('tests/__data__/output/guides/fr/chaines-tv.orange.fr.epg.xml') - const expected1 = content('tests/__data__/expected/guides/fr/chaines-tv.orange.fr.epg.xml') - - expect(output1).toBe(expected1) - - const output2 = content('tests/__data__/output/guides/zw/dstv.com.epg.xml') - const expected2 = content('tests/__data__/expected/guides/zw/dstv.com.epg.xml') - - expect(output2).toBe(expected2) -}) - -it('can create guides.log', () => { - const output = content('tests/__data__/output/logs/guides.log') - const expected = content('tests/__data__/expected/logs/guides.log') - - expect(output).toBe(expected) -}) - -it('can log errors', () => { - const output1 = content('tests/__data__/output/logs/errors/ru/yandex.ru.log') - const expected1 = content('tests/__data__/expected/logs/errors/ru/yandex.ru.log') - - expect(output1).toBe(expected1) - - const output2 = content('tests/__data__/output/logs/errors/us/directv.com.log') - const expected2 = content('tests/__data__/expected/logs/errors/us/directv.com.log') - - expect(output2).toBe(expected2) - - const output3 = content('tests/__data__/output/logs/errors/ge/magticom.ge.log') - const expected3 = content('tests/__data__/expected/logs/errors/ge/magticom.ge.log') - - expect(output3).toBe(expected3) -}) - -function content(filepath) { - const data = fs.readFileSync(path.resolve(filepath), { - encoding: 'utf8' - }) - - return JSON.stringify(data) -} diff --git a/tests/commands/update-readme.test.js b/tests/commands/update-readme.test.js deleted file mode 100644 index 108517c5..00000000 --- a/tests/commands/update-readme.test.js +++ /dev/null @@ -1,28 +0,0 @@ -const fs = require('fs') -const path = require('path') -const { execSync } = require('child_process') - -beforeEach(() => { - fs.rmdirSync('tests/__data__/output', { recursive: true }) - fs.mkdirSync('tests/__data__/output') - - const stdout = execSync( - 'CHANNELS_PATH=tests/__data__/input/sites/*.channels.xml DATA_DIR=tests/__data__/input/data node scripts/commands/update-readme.js --config=tests/__data__/input/_readme.json', - { encoding: 'utf8' } - ) -}) - -it('can update readme.md', () => { - const output = content('tests/__data__/output/readme.md') - const expected = content('tests/__data__/expected/readme.md') - - expect(output).toBe(expected) -}) - -function content(filepath) { - const data = fs.readFileSync(path.resolve(filepath), { - encoding: 'utf8' - }) - - return JSON.stringify(data) -}