@@ -132,10 +133,12 @@
/>
-
+
+
+
|
-
+
|
diff --git a/.github/workflows/auto-update.yml b/.github/workflows/auto-update.yml
index 9a718210..275e7e93 100644
--- a/.github/workflows/auto-update.yml
+++ b/.github/workflows/auto-update.yml
@@ -2,211 +2,126 @@ name: auto-update
on:
workflow_dispatch:
schedule:
- - cron: '0 0 * * *'
+ - cron: '0 0,12 * * *'
jobs:
- delete-old-branch:
+ setup:
runs-on: ubuntu-latest
- continue-on-error: true
steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- ref: ${{ github.ref }}
- - name: Delete Branch
- uses: dawidd6/action-delete-branch@v3
- with:
- github_token: ${{ secrets.GITHUB_TOKEN }}
- branches: 'bot/auto-update'
- create-branch:
- runs-on: ubuntu-latest
- needs: delete-old-branch
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- ref: ${{ github.ref }}
- - name: Create Branch
- uses: peterjgrainger/action-create-branch@v2.0.1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- branch: 'bot/auto-update'
- create-matrix:
- runs-on: ubuntu-latest
- needs: create-branch
- outputs:
- matrix: ${{ steps.set-matrix.outputs.matrix }}
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- ref: bot/auto-update
- - name: Setup Node
- uses: actions/setup-node@v2
+ - uses: actions/checkout@v2
+ - uses: actions/setup-node@v2
+ if: ${{ !env.ACT }}
with:
node-version: '14'
cache: 'npm'
- - name: Install Dependencies
- run: npm install
- - name: Create Matrix
- id: set-matrix
- run: node scripts/create-matrix.js
- grab:
+ - run: npm install
+ - run: node scripts/commands/create-database.js
+ - run: node scripts/commands/create-matrix.js
+ id: create-matrix
+ - uses: actions/upload-artifact@v2
+ with:
+ name: database
+ path: scripts/database
+ outputs:
+ matrix: ${{ steps.create-matrix.outputs.matrix }}
+ load:
runs-on: ubuntu-latest
- needs: create-matrix
+ needs: setup
continue-on-error: true
strategy:
fail-fast: false
- matrix: ${{fromJSON(needs.create-matrix.outputs.matrix)}}
+ matrix: ${{ fromJson(needs.setup.outputs.matrix) }}
+ # matrix:
+ # cluster_id: [1]
steps:
- - name: Checkout
- uses: actions/checkout@v2
+ - uses: actions/checkout@v2
+ - uses: actions/download-artifact@v2
with:
- ref: bot/auto-update
- - name: Setup Node
- uses: actions/setup-node@v2
+ name: database
+ path: scripts/database
+ - uses: FedericoCarboni/setup-ffmpeg@v1
+ - uses: actions/setup-node@v2
+ if: ${{ !env.ACT }}
with:
node-version: '14'
- cache: 'npm'
- - name: Install Dependencies
- run: npm install
- - name: Run Grabber
- run: NODE_OPTIONS=--insecure-http-parser npx epg-grabber --config=sites/${{ matrix.guide.site }}/${{ matrix.guide.site }}.config.js --channels=sites/${{ matrix.guide.site }}/${{ matrix.guide.site }}_${{ matrix.guide.country }}.channels.xml --output=.gh-pages/guides/${{ matrix.guide.country }}/${{ matrix.guide.site }}.epg.xml --log=logs/${{ matrix.guide.site }}_${{ matrix.guide.country }}.log --days=2 --timeout=30000
- - name: Upload Guide
- uses: actions/upload-artifact@v2
- with:
- name: .gh-pages
- path: .gh-pages/
- if-no-files-found: error
- - name: Upload Log
- uses: actions/upload-artifact@v2
+ - run: npm install
+ - run: NODE_OPTIONS=--insecure-http-parser node scripts/commands/load-cluster.js --days=2 --timeout=30000 --cluster-id=${{ matrix.cluster_id }}
+ - uses: actions/upload-artifact@v2
with:
name: logs
- path: logs/
- if-no-files-found: error
- deploy:
- needs: grab
+ path: scripts/logs
+ update:
runs-on: ubuntu-latest
+ needs: load
steps:
- - name: Checkout
- uses: actions/checkout@v2
+ - 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 }}
+ - run: curl -L -o scripts/data/codes.json https://iptv-org.github.io/epg/codes.json
+ - uses: actions/download-artifact@v2
with:
- ref: bot/auto-update
- - name: Download Artifacts
- uses: actions/download-artifact@v2
- - name: Generate Token
- uses: tibdex/github-app-token@v1
- id: generate-token
+ name: database
+ path: scripts/database
+ - uses: actions/download-artifact@v2
with:
- app_id: ${{ secrets.APP_ID }}
- private_key: ${{ secrets.APP_PRIVATE_KEY }}
- - name: Deploy to GitHub Pages
- if: ${{ github.ref == 'refs/heads/master' }}
- uses: JamesIves/github-pages-deploy-action@4.1.1
- with:
- branch: gh-pages
- folder: .gh-pages/guides
- target-folder: guides
- clean: false
- token: ${{ steps.generate-token.outputs.token }}
- git-config-name: iptv-bot
- git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com
- commit-message: '[Bot] Deploy to GitHub Pages'
- update-codes:
- runs-on: ubuntu-latest
- needs: deploy
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- ref: bot/auto-update
- - name: Download Artifacts
- uses: actions/download-artifact@v2
- - name: Setup Node
- uses: actions/setup-node@v2
+ name: logs
+ path: scripts/logs
+ - uses: actions/setup-node@v2
+ if: ${{ !env.ACT }}
with:
node-version: '14'
- cache: 'npm'
- - name: Install Dependencies
- run: npm install
- - name: Update Codes
- run: npm run update-codes
- - name: Generate Token
- uses: tibdex/github-app-token@v1
- id: generate-token
+ - run: npm install
+ - run: node scripts/commands/save-results.js
+ - uses: actions/upload-artifact@v2
+ with:
+ name: database
+ path: scripts/database
+ - run: node scripts/commands/update-api.js
+ - run: NODE_OPTIONS="--max-old-space-size=4096" node scripts/commands/update-guides.js
+ - uses: actions/upload-artifact@v2
+ with:
+ name: logs
+ path: scripts/logs
+ - uses: actions/upload-artifact@v2
+ with:
+ name: gh-pages
+ path: .gh-pages
+ - run: node scripts/commands/update-readme.js
+ - run: git add README.md
+ - run: git commit -m "[Bot] Update README.md"
+ - run: 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 }}
- - name: Deploy to GitHub Pages
- if: ${{ github.ref == 'refs/heads/master' }}
- uses: JamesIves/github-pages-deploy-action@4.1.1
+ - uses: repo-sync/pull-request@v2
+ if: ${{ !env.ACT }}
+ id: pull-request
with:
- branch: gh-pages
- folder: .gh-pages
- clean: false
- token: ${{ steps.generate-token.outputs.token }}
- git-config-name: iptv-bot
- git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com
- commit-message: '[Bot] Deploy to GitHub Pages'
- update-readme:
- runs-on: ubuntu-latest
- needs: deploy
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- ref: bot/auto-update
- - name: Download Artifacts
- uses: actions/download-artifact@v2
- - name: Setup Node
- uses: actions/setup-node@v2
- with:
- node-version: '14'
- cache: 'npm'
- - name: Install Dependencies
- run: npm install
- - name: Update README.md
- run: npx ts-node scripts/update-readme.ts
- - name: Commit Changes
- uses: stefanzweifel/git-auto-commit-action@v4
- with:
- commit_message: '[Bot] Update README.md'
- commit_user_name: iptv-bot
- commit_user_email: 84861620+iptv-bot[bot]@users.noreply.github.com
- commit_author: 'iptv-bot[bot] <84861620+iptv-bot[bot]@users.noreply.github.com>'
- branch: bot/auto-update
- file_pattern: README.md
- pull-request:
- if: ${{ github.ref == 'refs/heads/master' }}
- needs: update-readme
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- ref: bot/auto-update
- - name: Generate Token
- uses: tibdex/github-app-token@v1
- id: generate-token
- with:
- app_id: ${{ secrets.APP_ID }}
- private_key: ${{ secrets.APP_PRIVATE_KEY }}
- - name: Create Pull Request
- id: pr
- uses: repo-sync/pull-request@v2
- with:
- source_branch: 'bot/auto-update'
+ github_token: ${{ steps.create-app-token.outputs.token }}
+ source_branch: ${{ steps.create-branch-name.outputs.branch_name }}
destination_branch: 'master'
- pr_title: '[Bot] Update guides'
+ pr_title: '[Bot] Daily update'
pr_body: |
This pull request is created by [auto-update][1] workflow.
- [1]: https://github.com/iptv-org/epg/actions/runs/${{ github.run_id }}
- github_token: ${{ steps.generate-token.outputs.token }}
- - name: Merge Pull Request
- if: ${{ steps.pr.outputs.pr_number != 0 }}
- uses: juliangruber/merge-pull-request-action@v1
+ [1]: https://github.com/iptv-org/iptv/actions/runs/${{ github.run_id }}
+ - uses: juliangruber/merge-pull-request-action@v1
+ if: ${{ github.ref == 'refs/heads/master' }}
with:
github-token: ${{ secrets.PAT }}
- number: ${{ steps.pr.outputs.pr_number }}
+ number: ${{ steps.pull-request.outputs.pr_number }}
method: squash
+ - uses: JamesIves/github-pages-deploy-action@4.1.1
+ if: ${{ 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'
diff --git a/.gitignore b/.gitignore
index 34d14dc9..285927eb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
node_modules/
logs/
-guide.xml
\ No newline at end of file
+guide.xml
+.artifacts
\ No newline at end of file
diff --git a/.readme/template.md b/.readme/template.md
index 30157cee..abe38558 100644
--- a/.readme/template.md
+++ b/.readme/template.md
@@ -30,7 +30,7 @@ https://iptv-org.github.io/epg/index.html
You can also get a list of all available channels and their codes in JSON format by sending a GET request to:
```
-https://iptv-org.github.io/epg/codes.json
+https://iptv-org.github.io/epg/api/channels.json
```
If successful, you should get the following response:
@@ -43,10 +43,12 @@ If successful, you should get the following response:
[
...
{
- "tvg_id": "CNNUSA.us",
- "display_name": "CNN USA",
+ "id": "CNNUSA.us",
+ "name": [
+ "CNN USA"
+ ],
"logo": "https://cdn.tvpassport.com/image/station/100x100/cnn.png",
- "country": "us",
+ "country": "US",
"guides": [
"https://iptv-org.github.io/epg/guides/tvtv.us.guide.xml",
...
diff --git a/package-lock.json b/package-lock.json
index ecd65da5..2658dbcc 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12,7 +12,7 @@
"commander": "^8.2.0",
"csv-parser": "^3.0.0",
"dayjs": "^1.10.4",
- "epg-grabber": "^0.14.0",
+ "epg-grabber": "^0.15.2",
"epg-parser": "^0.1.6",
"form-data": "^4.0.0",
"glob": "^7.2.0",
@@ -21,13 +21,14 @@
"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",
"srcset": "^4.0.0",
"tabletojson": "^2.0.7",
- "ts-node": "^10.3.0",
- "typescript": "^4.4.4",
- "wildcard-match": "^5.1.2"
+ "wildcard-match": "^5.1.2",
+ "winston": "^3.3.3"
}
},
"node_modules/@babel/code-frame": {
@@ -573,6 +574,8 @@
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz",
"integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 12"
}
@@ -581,6 +584,8 @@
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz",
"integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@cspotcode/source-map-consumer": "0.8.0"
},
@@ -850,6 +855,26 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
+ "node_modules/@seald-io/binary-search-tree": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@seald-io/binary-search-tree/-/binary-search-tree-1.0.2.tgz",
+ "integrity": "sha512-+pYGvPFAk7wUR+ONMOlc6A+LUN4kOCFwyPLjyaeS7wVibADPHWYJNYsNtyIAwjF1AXQkuaXElnIc4XjKt55QZA=="
+ },
+ "node_modules/@seald-io/nedb": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@seald-io/nedb/-/nedb-2.2.0.tgz",
+ "integrity": "sha512-whkcx3hpcowNhoSEbIsrfe8TXxDwyj8SJJut2EqF7DSX2GGqQlL7Ix/vzwwOo4FJolzDhZD2DaUTVKmTQS3Rog==",
+ "dependencies": {
+ "@seald-io/binary-search-tree": "^1.0.2",
+ "async": "0.2.10",
+ "localforage": "^1.9.0"
+ }
+ },
+ "node_modules/@seald-io/nedb/node_modules/async": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E="
+ },
"node_modules/@sindresorhus/is": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz",
@@ -899,22 +924,30 @@
"node_modules/@tsconfig/node10": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
- "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg=="
+ "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==",
+ "optional": true,
+ "peer": true
},
"node_modules/@tsconfig/node12": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz",
- "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw=="
+ "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==",
+ "optional": true,
+ "peer": true
},
"node_modules/@tsconfig/node14": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz",
- "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg=="
+ "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==",
+ "optional": true,
+ "peer": true
},
"node_modules/@tsconfig/node16": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
- "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA=="
+ "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
+ "optional": true,
+ "peer": true
},
"node_modules/@types/babel__core": {
"version": "7.1.16",
@@ -1139,6 +1172,11 @@
"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",
@@ -1154,7 +1192,9 @@
"node_modules/arg": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
- "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+ "optional": true,
+ "peer": true
},
"node_modules/argparse": {
"version": "1.0.10",
@@ -1652,7 +1692,9 @@
"node_modules/create-require": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+ "optional": true,
+ "peer": true
},
"node_modules/cross-spawn": {
"version": "7.0.3",
@@ -1838,6 +1880,8 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=0.3.1"
}
@@ -1963,9 +2007,9 @@
}
},
"node_modules/epg-grabber": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/epg-grabber/-/epg-grabber-0.14.0.tgz",
- "integrity": "sha512-klrReY5Rqy0DS/2zy1XKYzj5nDbzArLjB3GktmrXueuFePt3poPuRVk7/Sav6sKvLB3bV1rtwrGZdETk1Avaaw==",
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/epg-grabber/-/epg-grabber-0.15.2.tgz",
+ "integrity": "sha512-waXwyUkp+O9Wmos95H2DUb5KyFAgm6GrFUcsWY19G7vme4qx9paH2DhKlw7pPT/aIe5sTJm/jSNG25xTK1K8Fw==",
"dependencies": {
"axios": "^0.21.1",
"axios-cookiejar-support": "^1.0.1",
@@ -2439,6 +2483,11 @@
"node": ">=0.10.0"
}
},
+ "node_modules/immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
+ },
"node_modules/import-local": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz",
@@ -3395,6 +3444,22 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/lie": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
+ "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=",
+ "dependencies": {
+ "immediate": "~3.0.5"
+ }
+ },
+ "node_modules/localforage": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
+ "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
+ "dependencies": {
+ "lie": "3.1.1"
+ }
+ },
"node_modules/locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@@ -3464,7 +3529,9 @@
"node_modules/make-error": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
- "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+ "optional": true,
+ "peer": true
},
"node_modules/makeerror": {
"version": "1.0.12",
@@ -3563,11 +3630,29 @@
"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/natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
},
+ "node_modules/nedb-promises": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/nedb-promises/-/nedb-promises-5.0.3.tgz",
+ "integrity": "sha512-hqQZi/T3dMJXQraFohVdatNX1uPDTGuVrqMiEnwA0dJxlC90xctOFG+jeUzPy9hYQGqCV+CpkSBkvUvTJdUApQ==",
+ "dependencies": {
+ "@seald-io/nedb": "^2.2.0"
+ }
+ },
"node_modules/node-ensure": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/node-ensure/-/node-ensure-0.0.0.tgz",
@@ -3637,6 +3722,14 @@
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz",
"integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ=="
},
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -4312,6 +4405,25 @@
"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",
@@ -4374,6 +4486,8 @@
"version": "10.4.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.4.0.tgz",
"integrity": "sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@cspotcode/source-map-support": "0.7.0",
"@tsconfig/node10": "^1.0.7",
@@ -4414,6 +4528,8 @@
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=0.4.0"
}
@@ -4465,6 +4581,8 @@
"version": "4.4.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz",
"integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==",
+ "optional": true,
+ "peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -4763,6 +4881,8 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6"
}
@@ -5169,12 +5289,16 @@
"@cspotcode/source-map-consumer": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz",
- "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg=="
+ "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==",
+ "optional": true,
+ "peer": true
},
"@cspotcode/source-map-support": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz",
"integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==",
+ "optional": true,
+ "peer": true,
"requires": {
"@cspotcode/source-map-consumer": "0.8.0"
}
@@ -5386,6 +5510,28 @@
"chalk": "^4.0.0"
}
},
+ "@seald-io/binary-search-tree": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@seald-io/binary-search-tree/-/binary-search-tree-1.0.2.tgz",
+ "integrity": "sha512-+pYGvPFAk7wUR+ONMOlc6A+LUN4kOCFwyPLjyaeS7wVibADPHWYJNYsNtyIAwjF1AXQkuaXElnIc4XjKt55QZA=="
+ },
+ "@seald-io/nedb": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@seald-io/nedb/-/nedb-2.2.0.tgz",
+ "integrity": "sha512-whkcx3hpcowNhoSEbIsrfe8TXxDwyj8SJJut2EqF7DSX2GGqQlL7Ix/vzwwOo4FJolzDhZD2DaUTVKmTQS3Rog==",
+ "requires": {
+ "@seald-io/binary-search-tree": "^1.0.2",
+ "async": "0.2.10",
+ "localforage": "^1.9.0"
+ },
+ "dependencies": {
+ "async": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E="
+ }
+ }
+ },
"@sindresorhus/is": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz",
@@ -5423,22 +5569,30 @@
"@tsconfig/node10": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
- "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg=="
+ "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==",
+ "optional": true,
+ "peer": true
},
"@tsconfig/node12": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz",
- "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw=="
+ "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==",
+ "optional": true,
+ "peer": true
},
"@tsconfig/node14": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz",
- "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg=="
+ "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==",
+ "optional": true,
+ "peer": true
},
"@tsconfig/node16": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
- "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA=="
+ "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
+ "optional": true,
+ "peer": true
},
"@types/babel__core": {
"version": "7.1.16",
@@ -5632,6 +5786,11 @@
"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",
@@ -5644,7 +5803,9 @@
"arg": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
- "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+ "optional": true,
+ "peer": true
},
"argparse": {
"version": "1.0.10",
@@ -6044,7 +6205,9 @@
"create-require": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+ "optional": true,
+ "peer": true
},
"cross-spawn": {
"version": "7.0.3",
@@ -6177,7 +6340,9 @@
"diff": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "optional": true,
+ "peer": true
},
"diff-sequences": {
"version": "27.0.6",
@@ -6266,9 +6431,9 @@
"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
},
"epg-grabber": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/epg-grabber/-/epg-grabber-0.14.0.tgz",
- "integrity": "sha512-klrReY5Rqy0DS/2zy1XKYzj5nDbzArLjB3GktmrXueuFePt3poPuRVk7/Sav6sKvLB3bV1rtwrGZdETk1Avaaw==",
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/epg-grabber/-/epg-grabber-0.15.2.tgz",
+ "integrity": "sha512-waXwyUkp+O9Wmos95H2DUb5KyFAgm6GrFUcsWY19G7vme4qx9paH2DhKlw7pPT/aIe5sTJm/jSNG25xTK1K8Fw==",
"requires": {
"axios": "^0.21.1",
"axios-cookiejar-support": "^1.0.1",
@@ -6600,6 +6765,11 @@
"safer-buffer": ">= 2.1.2 < 3"
}
},
+ "immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
+ },
"import-local": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz",
@@ -7314,6 +7484,22 @@
"type-check": "~0.3.2"
}
},
+ "lie": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
+ "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=",
+ "requires": {
+ "immediate": "~3.0.5"
+ }
+ },
+ "localforage": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
+ "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
+ "requires": {
+ "lie": "3.1.1"
+ }
+ },
"locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@@ -7368,7 +7554,9 @@
"make-error": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
- "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+ "optional": true,
+ "peer": true
},
"makeerror": {
"version": "1.0.12",
@@ -7446,11 +7634,29 @@
"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"
+ }
+ },
"natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
},
+ "nedb-promises": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/nedb-promises/-/nedb-promises-5.0.3.tgz",
+ "integrity": "sha512-hqQZi/T3dMJXQraFohVdatNX1uPDTGuVrqMiEnwA0dJxlC90xctOFG+jeUzPy9hYQGqCV+CpkSBkvUvTJdUApQ==",
+ "requires": {
+ "@seald-io/nedb": "^2.2.0"
+ }
+ },
"node-ensure": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/node-ensure/-/node-ensure-0.0.0.tgz",
@@ -7502,6 +7708,11 @@
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz",
"integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ=="
},
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -8000,6 +8211,22 @@
"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",
@@ -8050,6 +8277,8 @@
"version": "10.4.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.4.0.tgz",
"integrity": "sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==",
+ "optional": true,
+ "peer": true,
"requires": {
"@cspotcode/source-map-support": "0.7.0",
"@tsconfig/node10": "^1.0.7",
@@ -8068,7 +8297,9 @@
"acorn-walk": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA=="
+ "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
+ "optional": true,
+ "peer": true
}
}
},
@@ -8106,7 +8337,9 @@
"typescript": {
"version": "4.4.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz",
- "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA=="
+ "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==",
+ "optional": true,
+ "peer": true
},
"universalify": {
"version": "0.1.2",
@@ -8336,7 +8569,9 @@
"yn": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
- "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+ "optional": true,
+ "peer": true
}
}
}
diff --git a/package.json b/package.json
index 637a0be8..7bcf48e6 100644
--- a/package.json
+++ b/package.json
@@ -2,13 +2,14 @@
"name": "epg",
"scripts": {
"update-codes": "node scripts/update-codes.js",
- "test": "jest"
+ "act": "act workflow_dispatch -W .github/workflows/auto-update.yml --artifact-server-path ./.artifacts",
+ "test": "npx jest --runInBand"
},
"private": true,
"author": "Arhey",
"license": "MIT",
"jest": {
- "testRegex": "sites/(.*?/)?.*test.js$"
+ "testRegex": "(sites|tests)/(.*?/)?.*test.js$"
},
"dependencies": {
"axios": "^0.21.1",
@@ -16,7 +17,7 @@
"commander": "^8.2.0",
"csv-parser": "^3.0.0",
"dayjs": "^1.10.4",
- "epg-grabber": "^0.14.0",
+ "epg-grabber": "^0.15.2",
"epg-parser": "^0.1.6",
"form-data": "^4.0.0",
"glob": "^7.2.0",
@@ -25,12 +26,13 @@
"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",
"srcset": "^4.0.0",
"tabletojson": "^2.0.7",
- "ts-node": "^10.3.0",
- "typescript": "^4.4.4",
- "wildcard-match": "^5.1.2"
+ "wildcard-match": "^5.1.2",
+ "winston": "^3.3.3"
}
}
diff --git a/scripts/.gitignore b/scripts/.gitignore
index 54295185..9c8bffb1 100644
--- a/scripts/.gitignore
+++ b/scripts/.gitignore
@@ -1 +1,2 @@
-edit.js
\ No newline at end of file
+database/
+logs/
\ No newline at end of file
diff --git a/scripts/channels.js b/scripts/channels.js
deleted file mode 100644
index 25cb6268..00000000
--- a/scripts/channels.js
+++ /dev/null
@@ -1,46 +0,0 @@
-const { Command } = require('commander')
-const fs = require('fs')
-const path = require('path')
-const { json2xml } = require('./utils')
-
-const program = new Command()
-program
- .requiredOption('-c, --config ', 'Config file')
- .option('-s, --set [args...]', 'Set custom arguments', [])
- .option('-o, --output |