diff --git a/.github/workflows/auto-update.yml b/.github/workflows/auto-update.yml index c8f254cc..8f607c64 100644 --- a/.github/workflows/auto-update.yml +++ b/.github/workflows/auto-update.yml @@ -4,6 +4,21 @@ on: schedule: - cron: '0 0 * * *' jobs: + programetv_ro: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2.3.1 + - name: Install Dependencies + run: npm install + - name: Run EPG Grabber + run: npx epg-grabber --config=sites/programetv.ro.config.js + - name: Deploy to GitHub Pages + uses: JamesIves/github-pages-deploy-action@4.1.0 + with: + branch: gh-pages + folder: .gh-pages + clean: false programtv_onet_pl: runs-on: ubuntu-latest steps: diff --git a/README.md b/README.md index 9c81ccf8..8f91c0c9 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ To load a program guide, all you need to do is copy the link to one of the guide Italianguidatv.sky.it178https://iptv-org.github.io/epg/guides/guidatv.sky.it.guide.xml Italianmediaset.it16https://iptv-org.github.io/epg/guides/mediaset.it.guide.xml Polishprogramtv.onet.pl581https://iptv-org.github.io/epg/guides/programtv.onet.pl.guide.xml + Romanianprogrametv.ro312https://iptv-org.github.io/epg/guides/programetv.ro.guide.xml Russiantv.yandex.ru378https://iptv-org.github.io/epg/guides/tv.yandex.ru.guide.xml Spanishprogramacion-tv.elpais.com158https://iptv-org.github.io/epg/guides/programacion-tv.elpais.com.guide.xml Turkishdigiturk.com.tr106https://iptv-org.github.io/epg/guides/digiturk.com.tr.guide.xml diff --git a/sites/programetv.ro.channels.xml b/sites/programetv.ro.channels.xml new file mode 100755 index 00000000..436b81b1 --- /dev/null +++ b/sites/programetv.ro.channels.xml @@ -0,0 +1,317 @@ + + + + 24 Mix Teleshop + 24 Mix Teleshop HD + 3sat + Agro TV + Al Jazeera English + Aleph News + Alfa Omega TV + AMC Romania + AMC HD Romania + Animal Planet Europe + Animal Planet HD Europe + Antena 1 + Antena 1 HD + Antena 3 + Antena 3 HD + Antena International + Antena International HD + Antena Stars + Antena Stars HD + Arcadia TV + Das Erste + ARTE Français + Auto Motor und Sport + Auto Motor und Sport HD + AXN Romania + AXN Black România + AXN HD Romania + AXN Spin Romania + AXN White România + B1 + BabyTV Europe + Balkanika TV + BBC Earth Romania + BBC Earth HD Romania + BBC World News Europe + BBC World News HD Europe + Bloomberg TV Europe + Blue Hustler Europe + Bollywood TV Romania + Bollywood Film + Bollywood HD + Bollywood TV Romania + Boomerang Central & Eastern Europe + Brazzers TV Europe + Bucuresti TV + Cartoon Network România + CBS Reality Europe + CGTN + Cinemax Central Europe + Cinemax 2 Central Europe + Cinemax 2 HD Central Europe + Cinemax HD Central Europe + Club MTV + CNN International Europe + Comedy Central România + Comedy Central HD România + Cool TV + Credo TV + Crime+Investigation Romania + Da Vinci + Deutsche Welle English + Digi 24 + Digi 24 HD + Digi Animal World + Digi Animal World HD + Digi Life Romania + Digi Life HD Romania + Digi Sport 1 Romania + Digi Sport 1 HD Romania + Digi Sport 2 Romania + Digi Sport 2 HD Romania + Digi Sport 3 Romania + Digi Sport 3 HD Romania + Digi Sport 4 Romania + Digi World Romania + Digi World HD Romania + Discovery Channel Romania + Discovery Science Romanian + Discovery Science HD Romanian + DTX East Europe + Disney Channel Romania + Disney Junior Romania & Bulgaria + Diva Romania + DocuBox HD + Dorcel TV + Duck TV + Duck TV HD + Duna + Duna World HD + E! Europe + E! Europe HD + Emi TV + Emi TV HD + Epic Drama + Erdély TV + Erox HD + Eroxxx HD + Est TV + Etno TV + Euronews English + Eurosport 1 Romania + Eurosport 1 HD Romania + Eurosport 2 Romania + Eurosport 2 HD Romania + Eurosport 4K Romania + Extreme Sports + FashionBox HD + Fashion TV Europe + Fashion TV HD Europe + Favorit TV + FightBox HD + Film Café Romania + Film Now + Film Now HD + Film+ + Film4 UK + FilmBox Romania + FilmBox Arthouse Worldwide + FilmBox Extra HD Romania + FilmBox Family Romania + FilmBox Premium Romania + FilmBox Stars Romania + Food Network + Food Network HD + France 2 + France 24 Français + France 24 English + France 3 + France 5 + Fuel TV HD + FunBox UHD + Galaxy4 + GINX eSports TV + Happy Channel + Happy Channel HD + HBO Romania + HBO2 Central Europe + HBO2 HD Central Europe + HBO3 Romania + HBO3 HD Romania + HBO HD Romania + HGTV Romania + History România + History HD România + H!T Music Channel + Hustler HD Europe + Hustler TV Europe + Investigation Discovery Europe + Investigation Discovery HD Europe + IDA TV + Inedit TV + JimJam Romania + Kabel Eins Deutschland + Kanal D + Kanal D HD + KiKA + Kiss TV + Litoral TV + LookSport + LookSport 2 + LookSport 2 HD + LookSport 3 + LookSport 3 HD + LookSport HD + LookSport+ + LookSport+ HD + Love Nature + Luxe TV + M1 + M2 + M4 Sport + M5 HD + Magic TV + Magic TV HD + Mediaset Italia + Medika TV + Mezzo + Mezzo Live HD + Minimax Romania + Mooz Dance + Mooz Dance HD + Mooz HD + Mooz Hits + Mooz Ro! + Motorvision TV HD + MTV 80s + MTV 90s + MTV Europe + MTV Hits Europe + MTV Live HD + Museum HD + Music Channel Romania + Muzsika TV + MyZen TV HD + n-tv + Nasul TV + Nat Geo People România + Nat Geo People HD România + National 24 Plus + National Geographic România + National Geographic HD România + National Geographic Wild Romania + National Geographic Wild HD Romania + National TV + Nautical Channel + Nick Jr România + Nickelodeon România + Nickelodeon HD România + Nicktoons România + Orizont TV + Outdoor Channel + Party Mix + Party Mix HD + Phoenix + Playboy TV Europe + Prima TV + Prima TV HD + Private TV + Pro 2 + Pro 2 HD + ProSieben Deutschland + Pro Cinema HD + Pro Gold HD + Pro TV + Pro TV HD + Pro X + Pro X HD + Profit.ro + Pro TV Internacional + Publika TV + Rai 1 + Rai 2 + Rai 3 + Realitatea Plus + Redlight HD + Rock TV + Rock TV HD + România TV + RT HD + RTL Deutschland + RTL Gold + RTL II + RTL Klub HD + Nitro Deutschland + RTL+ + RTL Zwei + Sat. 1 Deutschland + Sixx Deutschland + Sorozat+ + Speranta TV + Sport Extra + Sport Extra HD + Stingray Classica + Stingray Djazz + Stingray iConcerts + Story4 + Super RTL Deutschland + Taraf TV + Timeless Drama Channel + TeenNick România + Telekom Sport 1 + Telekom Sport 1 HD + Telekom Sport 2 + Telekom Sport 3 + Telekom Sport 4 + The Fishing & Hunting Channel + The Fishing & Hunting Channel HD + TLC Rômania + TNT Romania + TNT HD Romania + Trace Caribbean + Trace Sport Stars HD + Trace Urban HD + Travel Channel Europe + Travel Channel HD Europe + Travel Mix + Trinitas TV + TV Paprika Romania + TV SudEst National + TV SudEst Regional + TV1000 + TV1000 Русское кино + TV4 + TV5Monde Europe + TVE Internacional Europa + TVR 1 + TVR 1 HD + TVR 2 + TVR 2 HD + TVR 3 + TVR Cluj + TVR Craiova + TVR Iași + TVR International + TVR Moldova + TVR Târgu Mureș + TVR Timișoara + UTV + UTV HD + Valea Prahovei TV + VH1 Europe + Viasat Explore Romania + Viasat History Romania + Viasat Nature Romania + Vox Deutschland + VTV + Welt + ZDF + ZDFinfo + ZDFneo + ZU TV + ZU TV HD + + \ No newline at end of file diff --git a/sites/programetv.ro.config.js b/sites/programetv.ro.config.js new file mode 100644 index 00000000..015ff262 --- /dev/null +++ b/sites/programetv.ro.config.js @@ -0,0 +1,58 @@ +const urlParser = require('url') +const dayjs = require('dayjs') +const jsdom = require('jsdom') +const { JSDOM } = jsdom + +require('dayjs/locale/ro') +dayjs.locale('ro') + +module.exports = { + lang: 'ro', + site: 'programetv.ro', + channels: 'programetv.ro.channels.xml', + output: '.gh-pages/guides/programetv.ro.guide.xml', + url: function ({ date, channel }) { + const diff = dayjs().diff(date, 'd') + let day + if (diff === 0) { + day = 'azi' + } else { + day = date.format('ddd').toLowerCase() + } + + return `https://www.programetv.ro/post/${channel.site_id}/${day}/` + }, + logo({ content }) { + const data = parseContent(content) + + return data ? data.station.icon : null + }, + parser: function ({ content }) { + let programs = [] + const data = parseContent(content) + if (!data) return programs + if (data) { + programs = data.shows.map(i => { + let title = i.title + if (i.season) title += ` Sez.${i.season}` + if (i.episode) title += ` Ep.${i.episode}` + return { + title, + description: i.desc, + category: i.categories[0], + start: i.start, + stop: i.stop + } + }) + } + + return programs + } +} + +function parseContent(content) { + const pageData = content.match(/var pageData = (.*);/i) + if (!pageData && !pageData[1]) return null + + return JSON.parse(pageData[1], null, 2) +}