From e33035a8ccffa6fdd3d445c1816ee7267f67c47a Mon Sep 17 00:00:00 2001 From: theofficialomega <30985701+BellezaEmporium@users.noreply.github.com> Date: Tue, 29 Jul 2025 01:00:37 +0200 Subject: [PATCH 1/3] [tvplus.com.tr] simplify & fix channel grab --- .../tvplus.com.tr/tvplus.com.tr.channels.xml | 293 +++++++++--------- sites/tvplus.com.tr/tvplus.com.tr.config.js | 41 +-- sites/tvplus.com.tr/tvplus.com.tr.test.js | 2 +- 3 files changed, 173 insertions(+), 163 deletions(-) diff --git a/sites/tvplus.com.tr/tvplus.com.tr.channels.xml b/sites/tvplus.com.tr/tvplus.com.tr.channels.xml index bc078b68..f0fcc625 100644 --- a/sites/tvplus.com.tr/tvplus.com.tr.channels.xml +++ b/sites/tvplus.com.tr/tvplus.com.tr.channels.xml @@ -1,146 +1,153 @@ - BluTV Play 1 - BluTV Play 2 - EKOL TV - GZT TV - KIBRIS ADA TV - tabii spor - tabii TV - TRT EBA - TV 2020 - 24 - 360 - A2 - A HABER - AKİT TV - AL JAZEERA ARABIC - AL JAZEERA ENGLISH - A NEWS - A PARA - A SPOR - ATV - BABYTV - BBC News - BENGÜTÜRK - BEYAZ TV - BİZİM EV TV - BLOOMBERG HT - Bloomberg - BRT 1 - BRT 2 - CARTOONITO - CARTOON NETWORK - ÇİFTÇİ TV - CNBC-E - CNN International - CNN TÜRK - DA VINCI - DISCOVERY CHANNEL - DISNEY JUNIOR - DİYANET TV - DMAX - DREAM TÜRK - DUCK TV - DEUTSCHE WELLE ENGLISH - EKOTÜRK - ENGLISH CLUB TV - EPIC DRAMA - EURONEWS - EUROSPORT 1 - EUROSPORT 2 - FB TV - FLASH TV - FM TV - FRANCE 24 ARABIC - FRANCE 24 ENGLISH - FX - HABER GLOBAL - HABERTÜRK - HALK TV - HT SPOR - KADIRGA TV - KANAL 7 - KANAL 23 - KANAL 26 - KANAL 33 - KANAL D - KANAL V - KIBRIS GENC TV - KANAL T - KIBRIS TV - KONTV - KRT TV - LOVE NATURE - MELTEM TV - MİNİKA ÇOCUK - MİNİKA GO - MOONBUG KIDS TV - NATIONAL GEOGRAPHIC - NATIONAL GEOGRAPHIC WILD - NBA TV - Nick JR - NICKTOONS - NOW - NTV - NR1 DAMAR - NUMBER1 TURK - NUMBER1 TV - ON6 - POWER TURK - POWER TV - SEMERKAND - SHOW TV - SİNEMA TV 2 - SİNEMA TV 1001 - SİNEMA 1002 - SİNEMA AİLE 2 - SİNEMA AİLE - SİNEMA AKSİYON 2 - SİNEMA TV AKSİYON - SİNEMA KOMEDİ - SİNEMA TV - SİNEMA YERLİ 2 - SİNEMA YERLİ - SKY NEWS ARABIA - SÖZCÜ TV - SPORTS TV - S SPORT 2 - S SPORT - STAR TV - TARIH TV - TARIM TV - TELE1 - TEVE2 - TGRT HABER - TLC - TMB TV - TRT1 - TRT 2 - TRT 3 - TRT ARABI - TRT AVAZ - TRT BELGESEL - TRT ÇOCUK - TRT DIYANET COCUK - TRT HABER - TRT KURDİ - TRT MÜZİK - TRT SPOR - TRT SPOR YILDIZ - TRT TÜRK - TRT World - TURKHABER - TV 4 - TV5 - TV5 MONDE - TV8 - TV8,5 - TV100 - TVNET - ÜLKE TV - ULUSAL KANAL - VAV TV - VIASAT EXPLORE - VIASAT HISTORY + EKOL TV + ŞÖMİNE PLUS + tabii spor + tabii TV + TV 2020 + TV+ Info + 24 + 360 + A2 + KIBRIS ADA TV + A HABER + AKİT TV + AL JAZEERA ARABIC + AL JAZEERA ENGLISH + A NEWS + A PARA + A SPOR + AS TV + ATV + BABYTV + BBC News + BENGÜTÜRK + BEYAZ TV + BİZİM EV TV + BLOOMBERG HT + Bloomberg + BluTV Play 1 + BluTV Play 2 + BRT 1 + BRT 2 + CARTOONITO + CARTOON NETWORK + ÇİFTÇİ TV + CNBC-E + CNN International + CNN TÜRK + DA VINCI + DISCOVERY CHANNEL + DISNEY JUNIOR + DİYANET TV + DMAX + DREAM TÜRK + DUCK TV + DEUTSCHE WELLE ENGLISH + EKOTÜRK + ENGLISH CLUB TV + EPIC DRAMA + EURONEWS + EUROSPORT 1 + EUROSPORT 2 + FB TV + FLASH HABER + FM TV + FRANCE 24 ARABIC + FRANCE 24 ENGLISH + FX + GZT TV + HABER GLOBAL + HABERTÜRK + HALK TV + HT SPOR + KADIRGA TV + KANAL 7 + KANAL 23 + KANAL 26 + KANAL 33 + KANAL D + KANAL V + KIBRIS GENC TV + KANAL T + KIBRIS TV + KONTV + KRT TV + LOVE NATURE + MELTEM TV + MİNİKA ÇOCUK + MİNİKA GO + MOONBUG KIDS TV + NATIONAL GEOGRAPHIC + NATIONAL GEOGRAPHIC WILD + NBA TV + NICKELODEON + Nick JR + NICKTOONS + NOW + NTV + NR1 DAMAR + NUMBER1 TURK + NUMBER1 TV + ON6 + POWER TURK + POWER TV + SEMERKAND + SHOW TV + SİNEMA TV 2 + SİNEMA TV 1001 + SİNEMA 1002 + SİNEMA AİLE 2 + SİNEMA AİLE + SİNEMA AKSİYON 2 + SİNEMA TV AKSİYON + SİNEMA KOMEDİ + SİNEMA TV + SİNEMA YERLİ 2 + SİNEMA YERLİ + SKY NEWS ARABIA + SÖZCÜ TV + SPACETOON + SPORTS TV + S SPORT 2 + S SPORT + STAR TV + TARIH TV + TARIM TV + TELE1 + TEVE2 + TGRT HABER + TİVİ6 + TLC + TMB TV + TRT1 + TRT 2 + TRT 3 + TRT ARABI + TRT AVAZ + TRT BELGESEL + TRT ÇOCUK + TRT DIYANET COCUK + TRT EBA + TRT HABER + TRT KURDİ + TRT MÜZİK + TRT SPOR + TRT SPOR YILDIZ + TRT TÜRK + TRT World + TURKHABER + TV 4 + TV5 + TV5 MONDE + TV8 + TV8,5 + TV100 + TVNET + TYT TÜRK + ÜLKE TV + ULUSAL KANAL + VAV TV + VIASAT EXPLORE + VIASAT HISTORY diff --git a/sites/tvplus.com.tr/tvplus.com.tr.config.js b/sites/tvplus.com.tr/tvplus.com.tr.config.js index 60ed9aa2..a25681ae 100644 --- a/sites/tvplus.com.tr/tvplus.com.tr.config.js +++ b/sites/tvplus.com.tr/tvplus.com.tr.config.js @@ -8,7 +8,7 @@ const debug = require('debug')('site:tvplus.com.tr') dayjs.extend(utc) dayjs.extend(customParseFormat) -const channelsUrl = 'https://tvplus.com.tr/canli-tv/yayin-akisi' +const baseUrl = 'https://tvplus.com.tr/canli-tv/yayin-akisi' module.exports = { site: 'tvplus.com.tr', @@ -56,35 +56,38 @@ module.exports = { return programs }, async channels() { + if (module.exports.buildId === undefined) { + module.exports.buildId = await module.exports.fetchBuildId() + debug('Got build id', module.exports.buildId) + } const channels = [] const data = await axios - .get(channelsUrl) + .get(`https://tvplus.com.tr/_next/data/${module.exports.buildId}/canli-tv/yayin-akisi.json`) .then(r => r.data) .catch(console.error) - const $ = cheerio.load(data) - $('.channel-list-item a') - .toArray() - .forEach(el => { - const a = $(el) - channels.push({ - lang: 'tr', - name: a - .attr('title') - .replace(/Yayın Akışı/, '') - .trim(), - site_id: a - .attr('href') - .replace(/\/canli-tv\/yayin-akisi\//, '') - .replace('--', '/') // change -- to / as it used in xml comment - }) + const channels_json = data.pageProps.channelListSsr + + channels_json.forEach(channel => { + channels.push({ + lang: 'tr', + name: channel.name, + site_id: channel.name.normalize('NFD') // Decompose accented characters + .replace(/[\u0300-\u036f]/g, '') // Remove accent marks + .toLowerCase() + .replace(/\s+/g, '-') // Replace spaces with hyphens + .replace(/[^a-zA-Z0-9-]/g, '') // Remove special chars but keep hyphens + .replace(/^-+|-+$/g, '') // Remove leading/trailing hyphens + + '/' + channel.id, + logo: channel.channelLogo }) + }) return channels }, async fetchBuildId() { const data = await axios - .get(channelsUrl) + .get(baseUrl) .then(r => r.data) .catch(console.error) diff --git a/sites/tvplus.com.tr/tvplus.com.tr.test.js b/sites/tvplus.com.tr/tvplus.com.tr.test.js index d7586cda..ec2033d3 100644 --- a/sites/tvplus.com.tr/tvplus.com.tr.test.js +++ b/sites/tvplus.com.tr/tvplus.com.tr.test.js @@ -14,7 +14,7 @@ jest.mock('axios') const date = dayjs.utc('2024-12-15', 'YYYY-MM-DD').startOf('d') const channel = { lang: 'tr', - site_id: 'nick-jr/4353', + site_id: 'nick-jr--4353', xmltv_id: 'NickJr.tr' } From 754e2467a91a2f51fea323f4508d632a3f474680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Moret?= <30985701+BellezaEmporium@users.noreply.github.com> Date: Tue, 29 Jul 2025 16:35:01 +0200 Subject: [PATCH 2/3] Update tvplus.com.tr.test.js --- sites/tvplus.com.tr/tvplus.com.tr.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/tvplus.com.tr/tvplus.com.tr.test.js b/sites/tvplus.com.tr/tvplus.com.tr.test.js index ec2033d3..d7586cda 100644 --- a/sites/tvplus.com.tr/tvplus.com.tr.test.js +++ b/sites/tvplus.com.tr/tvplus.com.tr.test.js @@ -14,7 +14,7 @@ jest.mock('axios') const date = dayjs.utc('2024-12-15', 'YYYY-MM-DD').startOf('d') const channel = { lang: 'tr', - site_id: 'nick-jr--4353', + site_id: 'nick-jr/4353', xmltv_id: 'NickJr.tr' } From e2fc9c8151ecda310c1e5a5b372d71fe58f1fe36 Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Wed, 30 Jul 2025 01:13:00 +0000 Subject: [PATCH 3/3] [Bot] Update SITES.md Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/epg/actions/runs/16611027937) workflow. --- SITES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SITES.md b/SITES.md index 4fb9e1d9..7f2ac1c7 100644 --- a/SITES.md +++ b/SITES.md @@ -211,7 +211,7 @@ tvmusor.hu9967🟢 tvmustra.hu1880🟢 tvpassport.com192872509🟢 - tvplus.com.tr143134🟢https://github.com/iptv-org/epg/issues/2816 + tvplus.com.tr150144🟢 tvprofil.com5836455🟢 tvtv.us22992255🟢 v3.myafn.dodmedia.osd.mil88🟢