Merge pull request #2619 from iptv-org/patch-2025.01.4

Patch 2025.01.4
This commit is contained in:
PopeyeTheSai10r 2025-01-19 13:45:09 -08:00 committed by GitHub
commit 4cfed04fa3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 76 additions and 40 deletions

View file

@ -3,6 +3,8 @@ on:
workflow_dispatch:
pull_request:
types: [opened, synchronize, reopened, edited]
branches:
- master
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
@ -16,7 +18,6 @@ jobs:
- uses: tj-actions/changed-files@v45
id: files
with:
since_last_remote_commit: true
files_yaml: |
js:
- tests/**/*.{js,ts}

8
.husky/check_channels.sh Executable file
View file

@ -0,0 +1,8 @@
#!/bin/sh
channels_changed="$(git diff --staged --name-only --diff-filter=ACMR -- 'sites/**/*.channels.xml' | sed 's| |\\ |g')"
if [ ! -z "$channels_changed" ]; then
echo "npx eslint $channels_changed"
npm run channels:lint -- $channels_changed
fi

8
.husky/check_scripts.sh Executable file
View file

@ -0,0 +1,8 @@
#!/bin/sh
scripts_changed="$(git diff --staged --name-only --diff-filter=ACMR -- 'tests/**/*.ts' 'tests/**/*.js' 'scripts/**/*.ts' 'scripts/**/*.mts' 'scripts/**/*.js' 'sites/**/*.js' 'sites/**/*.ts' | sed 's| |\\ |g')"
if [ ! -z "$scripts_changed" ]; then
echo "npx eslint $scripts_changed"
npx eslint $scripts_changed
fi

View file

@ -1,2 +1,2 @@
npm run lint
npm run channels:lint
.husky/check_scripts.sh
.husky/check_channels.sh

View file

@ -14,13 +14,34 @@ const xsd = `<?xml version="1.0" encoding="UTF-8"?>
</xs:element>
<xs:element name="channel">
<xs:complexType mixed="true">
<xs:attribute name="site" use="required" type="xs:string"/>
<xs:attribute name="lang" use="required" type="xs:string"/>
<xs:attribute name="site_id" use="required" type="xs:string"/>
<xs:attribute use="required" ref="site"/>
<xs:attribute use="required" ref="lang"/>
<xs:attribute use="required" ref="site_id"/>
<xs:attribute name="xmltv_id" use="required" type="xs:string"/>
<xs:attribute name="logo" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:attribute name="site">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="site_id">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="lang">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:schema>`
program.argument('[filepath]', 'Path to *.channels.xml files to check').parse(process.argv)

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<channels>
<channel site="artonline.tv" lang="ar" xmltv_id="ARTAflam1.sa" site_id="">افلام 1</channel>
<channel site="artonline.tv" lang="ar" xmltv_id="ARTAflam2.sa" site_id="Aflam2">افلام 2</channel>
<channel site="artonline.tv" lang="ar" xmltv_id="ARTCinema.sa" site_id="Cinema">سينما</channel>
<channel site="artonline.tv" lang="ar" xmltv_id="ARTHekayat.sa" site_id="Hekayat">حكايات</channel>
<channel site="artonline.tv" lang="ar" xmltv_id="ARTHekayat2.sa" site_id="Hekayat2">حكايات 2</channel>
<channel site="artonline.tv" lang="ar" xmltv_id="ARTAflam1.sa" site_id="#">افلام 1</channel>
<channel site="artonline.tv" lang="ar" xmltv_id="ARTAflam2.sa" site_id="#Aflam2">افلام 2</channel>
<channel site="artonline.tv" lang="ar" xmltv_id="ARTCinema.sa" site_id="#Cinema">سينما</channel>
<channel site="artonline.tv" lang="ar" xmltv_id="ARTHekayat.sa" site_id="#Hekayat">حكايات</channel>
<channel site="artonline.tv" lang="ar" xmltv_id="ARTHekayat2.sa" site_id="#Hekayat2">حكايات 2</channel>
</channels>

View file

@ -13,7 +13,9 @@ module.exports = {
site: 'artonline.tv',
days: 2,
url: function ({ channel }) {
return `https://www.artonline.tv/Home/Tvlist${channel.site_id}`
const [, site_id] = channel.site_id.split('#')
return `https://www.artonline.tv/Home/Tvlist${site_id}`
},
request: {
method: 'POST',

View file

@ -6,7 +6,7 @@ dayjs.extend(customParseFormat)
dayjs.extend(utc)
const channel = {
site_id: 'Aflam2',
site_id: '#Aflam2',
xmltv_id: 'ARTAflam2.sa'
}

View file

@ -3,7 +3,6 @@
<channel site="berrymedia.co.kr" lang="ko" xmltv_id="BallTV.kr" site_id="6">BallTV</channel>
<channel site="berrymedia.co.kr" lang="ko" xmltv_id="CookTV.kr" site_id="2">CookTV</channel>
<channel site="berrymedia.co.kr" lang="ko" xmltv_id="GMTV.kr" site_id="4">GMTV</channel>
<channel site="berrymedia.co.kr" lang="ko" xmltv_id="GTV.kr" site_id="">GTV</channel>
<channel site="berrymedia.co.kr" lang="ko" xmltv_id="LifeSportsTV.kr" site_id="3">생활체육TV</channel>
<channel site="berrymedia.co.kr" lang="ko" xmltv_id="UHDDreamTV.kr" site_id="5">UHDDreamTV</channel>
</channels>

View file

@ -6,16 +6,16 @@
<channel site="galamtv.kz" lang="kk" xmltv_id="Balapan.kz" site_id="636e55468a8f73bae8244f47">Balapan</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="MunaraTV.kz" site_id="65f2f54aee18d69ad327e734">Munara TV</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="TuranTV.kz" site_id="5c659fb2a46eaa398e8fd690">Turan TV</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="Channel7.kz" site_id="559d1ebb78d72701950089d5">Седьмой канал</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="" site_id="559d1ebb78d72701950089d5">Седьмой канал</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="31Kanal.kz" site_id="642cb168aa0f504df48a14ed">31 Канал</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="ElArna.kz" site_id="59f2faa4a12e9e27dc8a5978">Ел Арна</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="AlmatyTV.kz" site_id="559d1dcb78d72701950089d2">Almaty TV</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="JibekJoly.kz" site_id="559d41b978d7270195008a67">Jibek Joly</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="Novoetelevidenie.kz" site_id="559d224e78d7270195008a15">Новое Телевидение</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="Zhetisu.kz" site_id="571a017c4e2e6750a693cc3b">Жетысу</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="YourTV.kz" site_id="57bb6e6c4e2e6775aedaa771">твоЁтв</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="" site_id="571a017c4e2e6750a693cc3b">Жетысу</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="" site_id="57bb6e6c4e2e6775aedaa771">твоЁтв</channel>
<channel site="galamtv.kz" lang="ru" xmltv_id="Mir24.ru" site_id="535f6608ebf8c403a1001bfb">Мир 24</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="HitTV.kz" site_id="559d208e78d72701950089f4">Hit TV</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="" site_id="559d208e78d72701950089f4">Hit TV</channel>
<channel site="galamtv.kz" lang="ru" xmltv_id="ChannelOneEurasia.kz" site_id="559d416078d7270195008a66">Первый канал Евразия</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="AtamekenBusiness.kz" site_id="59f2f908a12e9e27dc8a5977">Atameken Business</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="TDK42.kz" site_id="57bb6e7c4e2e6775aedaa772">ТДК 42</channel>
@ -26,5 +26,5 @@
<channel site="galamtv.kz" lang="kk" xmltv_id="AstanaTV.kz" site_id="642cb1e6aa0f504df48a14f8">Astana TV</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="NTK.kz" site_id="642cb25caa0f504df48a1502">НТК</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="CaspianNews.kz" site_id="642cb423aa0f504df48a1514">Caspian News</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="INSPORT.kz" site_id="6675767c0e9f3f6e3ae2c2df">INSPORT</channel>
<channel site="galamtv.kz" lang="kk" xmltv_id="" site_id="6675767c0e9f3f6e3ae2c2df">INSPORT</channel>
</channels>

View file

@ -125,12 +125,12 @@
<channel site="meo.pt" lang="pt" xmltv_id="DisneyJunior.pt" site_id="DISNYJ">Disney Junior</channel>
<channel site="meo.pt" lang="pt" xmltv_id="DWDeutsch.de" site_id="DWTVA">Deutsche Welle (A)</channel>
<channel site="meo.pt" lang="pt" xmltv_id="DWEnglish.de" site_id="DW-TV">DEUTSCHE WELLE</channel>
<channel site="meo.pt" lang="pt" xmltv_id="Eleven1.pt" site_id="ELEVEN1">DAZN Eleven 1</channel>
<channel site="meo.pt" lang="pt" xmltv_id="Eleven2.pt" site_id="ELEVEN2">DAZN Eleven 2</channel>
<channel site="meo.pt" lang="pt" xmltv_id="Eleven3.pt" site_id="ELEVEN3">DAZN Eleven 3</channel>
<channel site="meo.pt" lang="pt" xmltv_id="Eleven4.pt" site_id="ELEVEN4">DAZN Eleven 4</channel>
<channel site="meo.pt" lang="pt" xmltv_id="Eleven5.pt" site_id="ELEVEN5">DAZN Eleven 5</channel>
<channel site="meo.pt" lang="pt" xmltv_id="Eleven6.pt" site_id="ELEVEN6">DAZN Eleven 6</channel>
<channel site="meo.pt" lang="pt" xmltv_id="DAZN1.pt" site_id="ELEVEN1">DAZN Eleven 1</channel>
<channel site="meo.pt" lang="pt" xmltv_id="DAZN2.pt" site_id="ELEVEN2">DAZN Eleven 2</channel>
<channel site="meo.pt" lang="pt" xmltv_id="DAZN3.pt" site_id="ELEVEN3">DAZN Eleven 3</channel>
<channel site="meo.pt" lang="pt" xmltv_id="DAZN4.pt" site_id="ELEVEN4">DAZN Eleven 4</channel>
<channel site="meo.pt" lang="pt" xmltv_id="DAZN5.pt" site_id="ELEVEN5">DAZN Eleven 5</channel>
<channel site="meo.pt" lang="pt" xmltv_id="DAZN6.pt" site_id="ELEVEN6">DAZN Eleven 6</channel>
<channel site="meo.pt" lang="pt" xmltv_id="EuronewsPortuguese.fr" site_id="EURN">Euronews</channel>
<channel site="meo.pt" lang="pt" xmltv_id="FightSports.us" site_id="FIGHTSP">Fight Sports</channel>
<channel site="meo.pt" lang="pt" xmltv_id="France2.fr" site_id="FR2HD">France 2</channel>

View file

@ -57,12 +57,12 @@
<channel site="nostv.pt" lang="pt" xmltv_id="DWDeutsch.de" site_id="541">DW (Alemão)</channel>
<channel site="nostv.pt" lang="en" xmltv_id="DWEnglish.de" site_id="115">DW</channel>
<channel site="nostv.pt" lang="pt" xmltv_id="E.fr" site_id="202">E! Entertainment HD</channel>
<channel site="nostv.pt" lang="pt" xmltv_id="Eleven1.pt" site_id="518">ELEVEN SPORTS 1</channel>
<channel site="nostv.pt" lang="pt" xmltv_id="Eleven2.pt" site_id="519">ELEVEN SPORTS 2</channel>
<channel site="nostv.pt" lang="pt" xmltv_id="Eleven3.pt" site_id="513">ELEVEN SPORTS 3</channel>
<channel site="nostv.pt" lang="pt" xmltv_id="Eleven4.pt" site_id="514">ELEVEN SPORTS 4</channel>
<channel site="nostv.pt" lang="pt" xmltv_id="Eleven5.pt" site_id="515">ELEVEN SPORTS 5</channel>
<channel site="nostv.pt" lang="pt" xmltv_id="Eleven6.pt" site_id="516">ELEVEN SPORTS 6</channel>
<channel site="nostv.pt" lang="pt" xmltv_id="DAZN1.pt" site_id="518">ELEVEN SPORTS 1</channel>
<channel site="nostv.pt" lang="pt" xmltv_id="DAZN2.pt" site_id="519">ELEVEN SPORTS 2</channel>
<channel site="nostv.pt" lang="pt" xmltv_id="DAZN3.pt" site_id="513">ELEVEN SPORTS 3</channel>
<channel site="nostv.pt" lang="pt" xmltv_id="DAZN4.pt" site_id="514">ELEVEN SPORTS 4</channel>
<channel site="nostv.pt" lang="pt" xmltv_id="DAZN5.pt" site_id="515">ELEVEN SPORTS 5</channel>
<channel site="nostv.pt" lang="pt" xmltv_id="DAZN6.pt" site_id="516">ELEVEN SPORTS 6</channel>
<channel site="nostv.pt" lang="pt" xmltv_id="EuronewsPortuguese.fr" site_id="25">Euronews</channel>
<channel site="nostv.pt" lang="pt" xmltv_id="Eurosport1.fr" site_id="145">Eurosport 1 HD</channel>
<channel site="nostv.pt" lang="pt" xmltv_id="Eurosport2.fr" site_id="128">Eurosport 2</channel>

View file

@ -97,7 +97,7 @@
<channel site="tv.trueid.net" lang="en" xmltv_id="AmarinTV.th" site_id="amarintv-hd">Amarin TV</channel>
<channel site="tv.trueid.net" lang="en" xmltv_id="beINSports1.th" site_id="bein-sports-hd1">beIN SPORTS 1</channel>
<channel site="tv.trueid.net" lang="en" xmltv_id="beINSports2.th" site_id="bein-sports-hd2">beIN SPORTS 2</channel>
<channel site="tv.trueid.net" lang="th" xmltv_id="Channel3.th" site_id="ch3-hd">Channel 3</channel>
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="ch3-hd">Channel 3</channel>
<channel site="tv.trueid.net" lang="th" xmltv_id="Channel7.th" site_id="ch7-hd">Channel 7HD</channel>
<channel site="tv.trueid.net" lang="en" xmltv_id="Channel8.th" site_id="ch8">Channel 8</channel>
<channel site="tv.trueid.net" lang="en" xmltv_id="CrimePlusInvestigationAsia.sg" site_id="crime-investigation">Crime + Investigation</channel>
@ -107,7 +107,7 @@
<channel site="tv.trueid.net" lang="en" xmltv_id="MONO29.th" site_id="mono29">MONO 29</channel>
<channel site="tv.trueid.net" lang="en" xmltv_id="NationTV.th" site_id="nationtv">Nation TV</channel>
<channel site="tv.trueid.net" lang="en" xmltv_id="NBT2HD.th" site_id="nbt">NBT</channel>
<channel site="tv.trueid.net" lang="en" xmltv_id="One31.th" site_id="one-hd">One31</channel>
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="one-hd">One31</channel>
<channel site="tv.trueid.net" lang="th" xmltv_id="PPTV.th" site_id="pptv-hd">PPTV</channel>
<channel site="tv.trueid.net" lang="en" xmltv_id="SPOTV2.kr" site_id="spotv2-hd">SPOTV 2</channel>
<channel site="tv.trueid.net" lang="en" xmltv_id="ThaiPBS.th" site_id="thaipbs">Thai PBS</channel>

View file

@ -97,7 +97,7 @@
<channel site="tv.trueid.net" lang="th" xmltv_id="AmarinTV.th" site_id="amarintv-hd">อมรินทร์</channel>
<channel site="tv.trueid.net" lang="th" xmltv_id="beINSports1.th" site_id="bein-sports-hd1">บีอินสปอตส์ 1</channel>
<channel site="tv.trueid.net" lang="th" xmltv_id="beINSports2.th" site_id="bein-sports-hd2">บีอินสปอตส์ 2</channel>
<channel site="tv.trueid.net" lang="th" xmltv_id="Channel3.th" site_id="ch3-hd">ช่อง 3 HD</channel>
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="ch3-hd">ช่อง 3 HD</channel>
<channel site="tv.trueid.net" lang="th" xmltv_id="Channel7.th" site_id="ch7-hd">ช่อง 7HD</channel>
<channel site="tv.trueid.net" lang="th" xmltv_id="Channel8.th" site_id="ch8">ช่อง 8</channel>
<channel site="tv.trueid.net" lang="th" xmltv_id="CrimePlusInvestigationAsia.sg" site_id="crime-investigation">ไคร์ม แอนด์ อินเวสทิเกชั่น</channel>
@ -107,7 +107,7 @@
<channel site="tv.trueid.net" lang="th" xmltv_id="MONO29.th" site_id="mono29">โมโน 29</channel>
<channel site="tv.trueid.net" lang="th" xmltv_id="NationTV.th" site_id="nationtv">เนชั่น ทีวี</channel>
<channel site="tv.trueid.net" lang="th" xmltv_id="NBT2HD.th" site_id="nbt">เอ็นบีที</channel>
<channel site="tv.trueid.net" lang="th" xmltv_id="One31.th" site_id="one-hd">วัน HD</channel>
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="one-hd">วัน HD</channel>
<channel site="tv.trueid.net" lang="th" xmltv_id="PPTV.th" site_id="pptv-hd">พีพีทีวี</channel>
<channel site="tv.trueid.net" lang="th" xmltv_id="SPOTV2.kr" site_id="spotv2-hd">SPOTV 2</channel>
<channel site="tv.trueid.net" lang="th" xmltv_id="ThaiPBS.th" site_id="thaipbs">ไทยพีบีเอส</channel>

View file

@ -77,9 +77,4 @@
<channel site="xem.kplus.vn" lang="vi" xmltv_id="" site_id="Yib9xfFfMNS-5wiFrV5MIzRT6GlPeQ8zKliksWwD">HA GIANG</channel>
<channel site="xem.kplus.vn" lang="vi" xmltv_id="" site_id="Yo93e3168WOgzSKHGc3Vv19xpVcAvZaMtvILHtfe">VTV7</channel>
<channel site="xem.kplus.vn" lang="vi" xmltv_id="" site_id="zstzQ0jPD6iYzWxP7epeMD4ego0ndKPiCloOhX4t">ON O2TV</channel>
<channel site="xem.kplus.vn" lang="vi" xmltv_id="" site_id="">K+SPORT1</channel>
<channel site="xem.kplus.vn" lang="vi" xmltv_id="" site_id="">K+SPORT2</channel>
<channel site="xem.kplus.vn" lang="vi" xmltv_id="" site_id="">K+CINE</channel>
<channel site="xem.kplus.vn" lang="vi" xmltv_id="" site_id="">K+ACTION</channel>
<channel site="xem.kplus.vn" lang="vi" xmltv_id="" site_id="">K+KIDS</channel>
</channels>

View file

@ -74,6 +74,8 @@ module.exports = {
let channels = []
await doFetch(queue, (url, data) => {
data.assets.forEach(channel => {
if (!channel?.params?.params?.id) return
channels.push({
lang: 'vi',
name: channel.params.internalTitle.replace('Channels_', ''),