diff --git a/Dockerfile b/Dockerfile index 229fcde..81a0df1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:21-alpine +FROM node:22-alpine ARG GIT_REPO=https://github.com/iptv-org/epg.git ARG GIT_BRANCH=master ENV CRON_SCHEDULE="0 0,12 * * *" @@ -22,7 +22,7 @@ RUN apk update \ && npm install pm2 -g \ && mkdir $(echo "${BIN_FOLDER}/${EPG_FOLDER}") -p \ && git -C $(echo "${BIN_FOLDER}") clone --depth 1 -b $(echo "${GIT_BRANCH} ${GIT_REPO}") \ - && cd $WORKDIR && npm install && npm update \ + && cd $WORKDIR && npm install && npm update \ && rm .eslintrc.json \ && rm -rf .github \ && rm -rf .git \ diff --git a/README.md b/README.md index 66ad2cd..16fa6e8 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ This the list of the provided custom fixes : |------------------|------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------| | movistarplus.es | [davidclaeysquinones](https://github.com/davidclaeysquinones) | [PR](https://github.com/iptv-org/epg/pull/2440) pending approval | | orangetv.es | [fraudiay79](https://github.com/fraudiay79) and [davidclaeysquinones](https://github.com/davidclaeysquinones) | PR not submitted | -| pickx.be | [davidclaeysquinones](https://github.com/davidclaeysquinones) and [BellezaEmporium](https://github.com/BellezaEmporium) | [PR](https://github.com/iptv-org/epg/pull/2480) merged since commit [296d616](https://github.com/iptv-org/epg/commit/296d6162ecbeb1b3c3e392845187d30624d50aa2) | +| pickx.be | [davidclaeysquinones](https://github.com/davidclaeysquinones) and [BellezaEmporium](https://github.com/BellezaEmporium) | [PR](https://github.com/iptv-org/epg/pull/2520) pending approval | | telenet.tv | [davidclaeysquinones](https://github.com/davidclaeysquinones) | [PR](https://github.com/iptv-org/epg/pull/2429) merged since commit [fd382db](https://github.com/iptv-org/epg/commit/fd382db08da7a96150928b8dcfef115e29e661d3) | | web.magentatv.de | [klausellus-wallace](https://github.com/klausellus-wallace) | [PR](https://github.com/iptv-org/epg/pull/2458) merged since commit [61afe09](https://github.com/iptv-org/epg/commit/61afe090b6e7892cc5426457d960e9452222f885) | @@ -151,4 +151,6 @@ Sometimes a new version of this image will be bound to the same source commit. T - 1.0.29 [12-11-2024](https://github.com/iptv-org/epg/commit/581f5e0ca94bd6d05c33f53951df078d702b2510) - 1.0.30 - [12-16-2024](https://github.com/iptv-org/epg/commit/b9bbd32d354315eb292e3b82da09785e575a9781) \ No newline at end of file + [12-16-2024](https://github.com/iptv-org/epg/commit/b9bbd32d354315eb292e3b82da09785e575a9781) +- 1.0.31 + [12-16-2024](https://github.com/iptv-org/epg/commit/7237a62d94c5691f7f467b334f846efce93b08ff)
Fix for Pickx.be + mayor program updates \ No newline at end of file diff --git a/channels.xml b/channels.xml index 2f4c8bd..8dbe229 100644 --- a/channels.xml +++ b/channels.xml @@ -1,5 +1,6 @@ - 24 Horas + VRT 1 + \ No newline at end of file diff --git a/fixes/pickx.be/pickx.be.config.js b/fixes/pickx.be/pickx.be.config.js index ee02dd1..8a1f29a 100644 --- a/fixes/pickx.be/pickx.be.config.js +++ b/fixes/pickx.be/pickx.be.config.js @@ -1,4 +1,4 @@ -// credit for this fix goes to davidclaeysquinones for his PR on https://github.com/iptv-org/epg/pull/2430 and to BellezaEmporium for his PR on https://github.com/iptv-org/epg/pull/2480 +// credit for this fix goes to davidclaeysquinones for his PR on https://github.com/iptv-org/epg/pull/2430, https://github.com/iptv-org/epg/pull/2520 and to BellezaEmporium for his PR on https://github.com/iptv-org/epg/pull/2480 const axios = require('axios') const dayjs = require('dayjs') @@ -141,57 +141,43 @@ module.exports = { function fetchApiVersion() { return new Promise(async (resolve, reject) => { try { + // you'll never find what happened here :) // load pickx bundle and get react version hash (regex). // it's not the best way to get the version but it's the only way to get it. - // find bundle version - const minBundleVer = "https://www.pickx.be/minimal-bundle-version" - const bundleVerData = await axios.get(minBundleVer, { - headers: { - Origin: 'https://www.pickx.be', - Referer: 'https://www.pickx.be/' - } + const hashUrl = 'https://www.pickx.be/nl/televisie/tv-gids'; + + const hashData = await axios.get(hashUrl) + .then(r => { + const re = /"hashes":\["(.*)"\]/ + const match = r.data.match(re) + if (match && match[1]) { + return match[1] + } else { + throw new Error('React app version hash not found') + } + }) + .catch(console.error); + + const versionUrl = `https://www.pickx.be/api/s-${hashData}` + + const response = await axios.get(versionUrl, { + headers: { + Origin: 'https://www.pickx.be', + Referer: 'https://www.pickx.be/' + } }) - if (bundleVerData.status !== 200) { - console.error(`Failed to fetch bundle version. Status: ${bundleVerData.status}`) - reject(`Failed to fetch bundle version. Status: ${bundleVerData.status}`) + if (response.status === 200) { + apiVersion = response.data.version + resolve() } else { - const bundleVer = bundleVerData.data.version - // get the minified JS app bundle - const bundleUrl = `https://components.pickx.be/pxReactPlayer/${bundleVer}/bundle.min.js` - - // now, find the react hash inside the bundle URL - const bundle = await axios.get(bundleUrl).then(r => { - const re = /REACT_APP_VERSION_HASH:"([^"]+)"/ - const match = r.data.match(re) - if (match && match[1]) { - return match[1] - } else { - throw new Error('React app version hash not found') - } - }).catch(console.error) - - const versionUrl = `https://www.pickx.be/api/s-${bundle.replace('/REACT_APP_VERSION_HASH:"', '')}` - - const response = await axios.get(versionUrl, { - headers: { - Origin: 'https://www.pickx.be', - Referer: 'https://www.pickx.be/' - } - }) - - if (response.status === 200) { - apiVersion = response.data.version - resolve() - } else { - console.error(`Failed to fetch API version. Status: ${response.status}`) - reject(`Failed to fetch API version. Status: ${response.status}`) - } + console.error(`Failed to fetch API version. Status: ${response.status}`) + reject(`Failed to fetch API version. Status: ${response.status}`) } } catch (error) { console.error('Error during fetchApiVersion:', error) reject(error) } }) -} \ No newline at end of file +} diff --git a/start.sh b/start.sh index 9e381f3..cc6781b 100644 --- a/start.sh +++ b/start.sh @@ -26,8 +26,8 @@ fi sed -i -E "s/(https:\x2f\x2fiptv-org.github.io\x2fapi)/$api_url/g" $work_dir/scripts/core/apiClient.ts -pm2 --name epg start npm -- run serve -npm run grab -- --channels=channels.xml --maxConnections=$max_connections --days=$days --gzip +pm2 --name epg start npm run serve +npm run grab --- --channels=channels.xml --maxConnections=$max_connections --days=$days --gzip ln -s $work_dir/guide.xml /public/guide.xml ln -s $work_dir/guide.xml.gz /public/guide.xml.gz -npm run grab -- --channels=channels.xml --cron="$chron_schedule" --maxConnections=$max_connections --days=$days --gzip \ No newline at end of file +npm run grab --- --channels=channels.xml --cron="$chron_schedule" --maxConnections=$max_connections --days=$days --gzip \ No newline at end of file