update readme + mayor updates
This commit is contained in:
		| @@ -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 \ | ||||
|   | ||||
| @@ -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) | ||||
|   [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)<br>Fix for Pickx.be + mayor program updates | ||||
| @@ -1,5 +1,6 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <channels> | ||||
|     <!--This is a sample of a channel you can add look at https://github.com/iptv-org/epg/tree/master/sites for the complete list--> | ||||
| 	<channel site="movistarplus.es" lang="es" xmltv_id="24Horas.es" site_id="24H">24 Horas</channel> | ||||
|     <channel site="pickx.be" lang="nl" xmltv_id="Een.be" site_id="UID50037">VRT 1</channel> | ||||
| 	<!--<channel site="movistarplus.es" lang="es" xmltv_id="24Horas.es" site_id="24H">24 Horas</channel>--> | ||||
| </channels> | ||||
| @@ -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) | ||||
|     } | ||||
|   }) | ||||
| } | ||||
| } | ||||
|   | ||||
							
								
								
									
										6
									
								
								start.sh
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								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 | ||||
| npm run grab --- --channels=channels.xml --cron="$chron_schedule" --maxConnections=$max_connections --days=$days --gzip | ||||
		Reference in New Issue
	
	Block a user