From 9ae3f291e8dc41b53d09c2288d1e93a8388f56a8 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Sun, 6 Mar 2022 21:27:13 +0300 Subject: [PATCH 1/6] Create musor.tv.test.js --- sites/musor.tv/musor.tv.test.js | 54 +++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 sites/musor.tv/musor.tv.test.js diff --git a/sites/musor.tv/musor.tv.test.js b/sites/musor.tv/musor.tv.test.js new file mode 100644 index 00000000..b9fa192c --- /dev/null +++ b/sites/musor.tv/musor.tv.test.js @@ -0,0 +1,54 @@ +// npm run channels:parse -- --config=./sites/musor.tv/musor.tv.config.js --output=./sites/musor.tv/musor.tv_hu.channels.xml +// npx epg-grabber --config=sites/musor.tv/musor.tv.config.js --channels=sites/musor.tv/musor.tv_hu.channels.xml --output=guide.xml --days=2 + +const { parser, url } = require('./musor.tv.config.js') +const dayjs = require('dayjs') +const utc = require('dayjs/plugin/utc') +const customParseFormat = require('dayjs/plugin/customParseFormat') +dayjs.extend(customParseFormat) +dayjs.extend(utc) + +const date = dayjs.utc('2022-03-07', 'YYYY-MM-DD').startOf('d') +const channel = { + site_id: 'DUNA', + xmltv_id: 'DunaTV.hu' +} + +it('can generate valid url', () => { + expect(url({ channel, date })).toBe('https://musor.tv/napi/tvmusor/DUNA/2022.03.07') +}) + +it('can parse response', () => { + const content = `
kubai-francia filmdráma,2014
tv-műsor kép: Labadrúgás
A Havannai éjszaka az első film, amely teljes egészében Kubában forgott és kendőzetlen őszinteséggel beszél egy elveszett generáció minden illúziójáról és csalódottságáról. Amadeo 16 évig nem találkozott legjobb barátaival, fe
német tévéfilmsorozat,2018
TV műsor 16 év felettieknek! HD adás
8/1.: Új utakonUlrich Wrangel tengeralattjáró-kapitány és emberei összecsapásba keverednek egy amerikai fregatt-tal. Eközben a megszállt Franciaországban az ifjú Klaus Hoffmann kapitány azon igyekszik, hogy méltó legyen apja hírnevé
` + const result = parser({ content, date }).map(p => { + p.start = p.start.toJSON() + p.stop = p.stop.toJSON() + return p + }) + + expect(result).toMatchObject([ + { + start: '2022-03-06T23:35:00.000Z', + stop: '2022-03-07T01:15:00.000Z', + title: `Havannai éjszaka`, + icon: 'https://musor.tv/img/small/143/14373/Labadrugas.jpg', + description: + 'A Havannai éjszaka az első film, amely teljes egészében Kubában forgott és kendőzetlen őszinteséggel beszél egy elveszett generáció minden illúziójáról és csalódottságáról. Amadeo 16 évig nem találkozott legjobb barátaival, fe' + }, + { + start: '2022-03-07T01:15:00.000Z', + stop: '2022-03-07T01:45:00.000Z', + title: `A tengeralattjáró 2018 I./1.`, + description: + '8/1.: Új utakonUlrich Wrangel tengeralattjáró-kapitány és emberei összecsapásba keverednek egy amerikai fregatt-tal. Eközben a megszállt Franciaországban az ifjú Klaus Hoffmann kapitány azon igyekszik, hogy méltó legyen apja hírnevé' + } + ]) +}) + +it('can handle empty guide', () => { + const result = parser({ + date, + content: `` + }) + expect(result).toMatchObject([]) +}) From c3157fbfd905fb51ddad38a001632cb07aa093b0 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Sun, 6 Mar 2022 21:27:16 +0300 Subject: [PATCH 2/6] Create musor.tv.config.js --- sites/musor.tv/musor.tv.config.js | 88 +++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 sites/musor.tv/musor.tv.config.js diff --git a/sites/musor.tv/musor.tv.config.js b/sites/musor.tv/musor.tv.config.js new file mode 100644 index 00000000..28cdf115 --- /dev/null +++ b/sites/musor.tv/musor.tv.config.js @@ -0,0 +1,88 @@ +const cheerio = require('cheerio') +const dayjs = require('dayjs') +const axios = require('axios') +const utc = require('dayjs/plugin/utc') +const customParseFormat = require('dayjs/plugin/customParseFormat') + +dayjs.extend(utc) +dayjs.extend(customParseFormat) + +module.exports = { + site: 'musor.tv', + url({ channel, date }) { + const diff = date.diff(dayjs.utc().startOf('d'), 'd') + + return diff === 0 + ? `https://musor.tv/mai/tvmusor/${channel.site_id}` + : `https://musor.tv/napi/tvmusor/${channel.site_id}/${date.format('YYYY.MM.DD')}` + }, + parser({ content }) { + const programs = [] + const items = parseItems(content) + items.forEach(item => { + const prev = programs[programs.length - 1] + const $item = cheerio.load(item) + let start = parseStart($item) + if (prev) prev.stop = start + const stop = start.add(30, 'm') + programs.push({ + title: parseTitle($item), + description: parseDescription($item), + icon: parseIcon($item), + start, + stop + }) + }) + + return programs + }, + async channels() { + const html = await axios + .get(`https://musor.tv/`) + .then(r => r.data) + .catch(console.log) + + const $ = cheerio.load(html) + const channels = $('body > div.big_content > div > nav > table > tbody > tr > td > a').toArray() + return channels + .map(item => { + const $item = cheerio.load(item) + const url = $item('*').attr('href') + if (!url.startsWith('//musor.tv/mai/tvmusor/')) return null + const site_id = url.replace('//musor.tv/mai/tvmusor/', '') + return { + lang: 'hu', + site_id, + name: $item('*').text() + } + }) + .filter(i => i) + } +} + +function parseIcon($item) { + const imgSrc = $item('div.smartpe_screenshot > img').attr('src') + + return imgSrc ? `https:${imgSrc}` : null +} + +function parseTitle($item) { + return $item('div:nth-child(2) > div > h3 > a').text().trim() +} + +function parseDescription($item) { + return $item('div:nth-child(5) > div > div').text().trim() +} + +function parseStart($item) { + let datetime = $item('div:nth-child(1) > div > div > div > div > time').attr('content') + if (!datetime) return null + + return dayjs.utc(datetime.replace('GMT', 'T'), 'YYYY-MM-DDTHH:mm:ss') +} + +function parseItems(content) { + const $ = cheerio.load(content) + + return $('div.multicolumndayprogarea > div.smartpe_progentry').toArray() +} From 769698d2fea4fed32c7759fb9d07261e3cbecaba Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Sun, 6 Mar 2022 21:27:20 +0300 Subject: [PATCH 3/6] Create musor.tv_hu.channels.xml --- sites/musor.tv/musor.tv_hu.channels.xml | 180 ++++++++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 sites/musor.tv/musor.tv_hu.channels.xml diff --git a/sites/musor.tv/musor.tv_hu.channels.xml b/sites/musor.tv/musor.tv_hu.channels.xml new file mode 100644 index 00000000..e5699b01 --- /dev/null +++ b/sites/musor.tv/musor.tv_hu.channels.xml @@ -0,0 +1,180 @@ + + + + Duna TV (HD) + Duna World (HD) + RTL Klub (HD) + RTL II (HD) + RTL Gold + RTL+ + TV2 (HD) + Super TV2 (HD) + Prime (HD) + Cool (HD) + Viasat 3 (HD) + Viasat 6 + HBO (HD) + HBO 2 (HD) + HBO 3 (HD) + Cinemax (HD) + Cinemax 2 (HD) + Filmbox Extra HD + Filmbox Premium + Filmbox Family + Filmbox Stars + Filmbox + Moziverzum (HD) + Mozi+ (HD) + film+ (HD) + Film Now + Epic Drama (HD) + TV 4 (HD) + Film 4 (HD) + Story 4 (HD) + Galaxy 4 (HD) + Sorozat+ + Comedy Central (HD) + Comedy Central Family + TV2 Comedy + Jocky TV + AXN (HD) + Sony Max + Sony Movie Channel + Viasat 2 + Viasat Film + AMC (HD) + Paramount Network (HD) + Film Mánia (HD) + Film Café (HD) + Izaura TV + ATV Spirit (HD) + Direct One TV + M2 / Petőfi (HD) + Minimax + Disney Channel + Cartoon Network + Boomerang + Nickelodeon + TeenNick + Nicktoons + Nick Jr + JimJam + TV2 Kids + MTV European + Duck TV + Duck TV HD + M5 (HD) + Spektrum (HD) + National Geographic (HD) + National Geographic Wild (HD) + Love Nature (HD / 4K) + Travel XP (HD / 4K) + Discovery Channel (HD) + Discovery Science (HD) + ID (HD) + Discovery Turbo Xtra (DTX) (HD) + TLC (HD) + Animal Planet (HD) + HGTV + History (HD) + Travel Channel (HD) + Viasat Explore (HD) + Viasat Nature (HD) + Viasat History (HD) + Ozone TV (HD) + Life TV (HD) + FEM3 + Spektrum Home (HD) + TV Paprika (HD) + Food Network (HD) + TV2 Séf + CBS Reality + DIGI World (HD) + DIGI Life (HD) + DIGI Animal World (HD) + BBC Earth (HD) + Da Vinci + D1 Televízió + FIX TV (HD) + Hatoscsatorna + PAX TV + EWTN / Bonum TV + Apostol TV + Heti TV + Dikh TV (HD) + E! Entertainment (HD) + M4 Sport (HD) + M4 Sport+ (HD) + DIGI Sport 1 (HD) + DIGI Sport 2 (HD) + DIGI Sport 3 (HD) + Sport 1 (HD) + Sport 2 (HD) + Eurosport 1 (HD) + Eurosport 2 (HD) + Eurosport 4K + Spíler1 TV (HD) + Spíler2 TV (HD) + Arena 4 (HD) + Extreme Sports Channel + Fishing & Hunting Channel (HD) + Fit HD + Auto Motor Sport (HD) + 1 Music Channel (HD) + H!T Music + MTV Hungary + MTV Live HD + MTV Hits + club MTV + MTV 00s + MTV 90s + MTV 80s + Total Dance TV (HD) + Trace Urban (HD) + Muzsika TV + Sláger TV (HD) + Zenebutik TV + Mezzo Live HD + Mezzo + Stingray Classica HD + Stingray iConcerts HD + Stingray C Music + M1 (HD) + ATV (HD) + Hír TV (HD) + Euronews (HD) + Pesti TV + Balaton TV + Kölcsey TV + 7.TV + Kapos TV + Zalaegerszegi TV + Fehérvár TV + Szeged TV + TV Eger + Hegyvidék TV + Újbuda TV + Erdély TV + Pannon TV (Vajdaság) + TV21 Ungvár (Kárpátalja) + CNN + BBC World News + CNBC + Sky News + Trace Sports HD + Nautical Channel (HD) + Fightbox HD + Filmbox Arthouse + Docubox HD + Funbox UltraHD 4K + Gametoon HD + Baby TV + Nickelodeon HD + Fashion TV HD + English Club TV + Eurosport 4K + Love Nature (HD / 4K) + Travel XP (HD / 4K) + Funbox UltraHD 4K + + From 4c759a848f326e0e2b9cf146ade57c9d7e64ba1a Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Sun, 6 Mar 2022 21:27:52 +0300 Subject: [PATCH 4/6] Create musor.tv.yml --- .github/workflows/musor.tv.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .github/workflows/musor.tv.yml diff --git a/.github/workflows/musor.tv.yml b/.github/workflows/musor.tv.yml new file mode 100644 index 00000000..c5ce40c9 --- /dev/null +++ b/.github/workflows/musor.tv.yml @@ -0,0 +1,17 @@ +name: musor.tv +on: + schedule: + - cron: '0 0 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed +jobs: + load: + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} From d894660ee9b8c02daaae7c9597fd555f01e4e2dc Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Sun, 6 Mar 2022 23:14:59 +0300 Subject: [PATCH 5/6] Update musor.tv_hu.channels.xml --- sites/musor.tv/musor.tv_hu.channels.xml | 345 ++++++++++++------------ 1 file changed, 170 insertions(+), 175 deletions(-) diff --git a/sites/musor.tv/musor.tv_hu.channels.xml b/sites/musor.tv/musor.tv_hu.channels.xml index e5699b01..1ebd1129 100644 --- a/sites/musor.tv/musor.tv_hu.channels.xml +++ b/sites/musor.tv/musor.tv_hu.channels.xml @@ -1,180 +1,175 @@ - Duna TV (HD) - Duna World (HD) - RTL Klub (HD) - RTL II (HD) - RTL Gold - RTL+ - TV2 (HD) - Super TV2 (HD) - Prime (HD) - Cool (HD) - Viasat 3 (HD) - Viasat 6 - HBO (HD) - HBO 2 (HD) - HBO 3 (HD) - Cinemax (HD) - Cinemax 2 (HD) - Filmbox Extra HD - Filmbox Premium - Filmbox Family - Filmbox Stars - Filmbox - Moziverzum (HD) - Mozi+ (HD) - film+ (HD) - Film Now - Epic Drama (HD) - TV 4 (HD) - Film 4 (HD) - Story 4 (HD) - Galaxy 4 (HD) - Sorozat+ - Comedy Central (HD) - Comedy Central Family - TV2 Comedy - Jocky TV - AXN (HD) - Sony Max - Sony Movie Channel - Viasat 2 - Viasat Film - AMC (HD) - Paramount Network (HD) - Film Mánia (HD) - Film Café (HD) - Izaura TV - ATV Spirit (HD) - Direct One TV - M2 / Petőfi (HD) - Minimax - Disney Channel - Cartoon Network - Boomerang - Nickelodeon - TeenNick - Nicktoons - Nick Jr - JimJam - TV2 Kids - MTV European - Duck TV - Duck TV HD - M5 (HD) - Spektrum (HD) - National Geographic (HD) - National Geographic Wild (HD) - Love Nature (HD / 4K) - Travel XP (HD / 4K) - Discovery Channel (HD) - Discovery Science (HD) - ID (HD) - Discovery Turbo Xtra (DTX) (HD) - TLC (HD) - Animal Planet (HD) - HGTV - History (HD) - Travel Channel (HD) - Viasat Explore (HD) - Viasat Nature (HD) - Viasat History (HD) - Ozone TV (HD) - Life TV (HD) - FEM3 - Spektrum Home (HD) - TV Paprika (HD) - Food Network (HD) - TV2 Séf - CBS Reality - DIGI World (HD) - DIGI Life (HD) - DIGI Animal World (HD) - BBC Earth (HD) - Da Vinci - D1 Televízió - FIX TV (HD) - Hatoscsatorna - PAX TV - EWTN / Bonum TV - Apostol TV - Heti TV - Dikh TV (HD) - E! Entertainment (HD) - M4 Sport (HD) - M4 Sport+ (HD) - DIGI Sport 1 (HD) - DIGI Sport 2 (HD) - DIGI Sport 3 (HD) - Sport 1 (HD) - Sport 2 (HD) - Eurosport 1 (HD) - Eurosport 2 (HD) - Eurosport 4K - Spíler1 TV (HD) - Spíler2 TV (HD) - Arena 4 (HD) - Extreme Sports Channel - Fishing & Hunting Channel (HD) - Fit HD - Auto Motor Sport (HD) - 1 Music Channel (HD) - H!T Music - MTV Hungary - MTV Live HD - MTV Hits - club MTV - MTV 00s - MTV 90s - MTV 80s - Total Dance TV (HD) - Trace Urban (HD) - Muzsika TV - Sláger TV (HD) - Zenebutik TV - Mezzo Live HD - Mezzo - Stingray Classica HD - Stingray iConcerts HD - Stingray C Music - M1 (HD) - ATV (HD) - Hír TV (HD) - Euronews (HD) - Pesti TV - Balaton TV - Kölcsey TV - 7.TV - Kapos TV - Zalaegerszegi TV - Fehérvár TV - Szeged TV - TV Eger - Hegyvidék TV - Újbuda TV - Erdély TV - Pannon TV (Vajdaság) - TV21 Ungvár (Kárpátalja) - CNN - BBC World News - CNBC - Sky News - Trace Sports HD - Nautical Channel (HD) - Fightbox HD - Filmbox Arthouse - Docubox HD - Funbox UltraHD 4K - Gametoon HD - Baby TV - Nickelodeon HD - Fashion TV HD - English Club TV - Eurosport 4K - Love Nature (HD / 4K) - Travel XP (HD / 4K) - Funbox UltraHD 4K + 7.TV + AMC (HD) + Animal Planet (HD) + Apostol TV + Arena 4 (HD) + ATV (HD) + ATV Spirit (HD) + Auto Motor Sport (HD) + AXN (HD) + Baby TV + Balaton TV + BBC Earth (HD) + BBC World News + EWTN / Bonum TV + Boomerang + Cartoon Network + CBS Reality + Cinemax 2 (HD) + Cinemax (HD) + club MTV + CNBC + CNN + Comedy Central Family + Comedy Central (HD) + Cool (HD) + D1 Televízió + Da Vinci + DIGI Animal World (HD) + DIGI Life (HD) + DIGI Sport 1 (HD) + DIGI Sport 2 (HD) + DIGI Sport 3 (HD) + DIGI World (HD) + Dikh TV (HD) + Direct One TV + Discovery Channel (HD) + Discovery Science (HD) + Disney Channel + Docubox HD + Discovery Turbo Xtra (DTX) (HD) + Duck TV + Duck TV HD + Duna TV (HD) + Duna World (HD) + E! Entertainment (HD) + English Club TV + Epic Drama (HD) + Erdély TV + Euronews (HD) + Eurosport 1 (HD) + Eurosport 2 (HD) + Eurosport 4K + Extreme Sports Channel + Fashion TV HD + Fehérvár TV + FEM3 + Fightbox HD + Film 4 (HD) + Filmbox Arthouse + Filmbox + Filmbox Extra HD + Filmbox Family + Filmbox Premium + Filmbox Stars + Film Café (HD) + Film Mánia (HD) + Film Now + film+ (HD) + Fishing & Hunting Channel (HD) + Fit HD + FIX TV (HD) + Food Network (HD) + Funbox UltraHD 4K + Galaxy 4 (HD) + Gametoon HD + Hatoscsatorna + HBO 2 (HD) + HBO 3 (HD) + HBO (HD) + Hegyvidék TV + Heti TV + HGTV + Hír TV (HD) + History (HD) + H!T Music + ID (HD) + Izaura TV + JimJam + Jocky TV + Kapos TV + Kölcsey TV + Life TV (HD) + Love Nature (HD / 4K) + Love Nature (HD / 4K) + M1 (HD) + M2 / Petőfi (HD) + M4 Sport (HD) + M4 Sport+ (HD) + M5 (HD) + Mezzo + Mezzo Live HD + Minimax + Mozi+ (HD) + Moziverzum (HD) + MTV 00s + MTV 80s + MTV 90s + MTV European + MTV Hits + MTV Hungary + MTV Live HD + 1 Music Channel (HD) + Muzsika TV + National Geographic (HD) + National Geographic Wild (HD) + Nautical Channel (HD) + Nickelodeon + Nick Jr + Nicktoons + Ozone TV (HD) + Pannon TV (Vajdaság) + Paramount Network (HD) + PAX TV + Pesti TV + Prime (HD) + RTL Gold + RTL II (HD) + RTL Klub (HD) + RTL+ + Sky News + Sláger TV (HD) + Sony Max + Sony Movie Channel + Sorozat+ + Spektrum (HD) + Spektrum Home (HD) + Spíler1 TV (HD) + Spíler2 TV (HD) + Sport 1 (HD) + Sport 2 (HD) + Stingray Classica HD + Stingray C Music + Stingray iConcerts HD + Story 4 (HD) + Super TV2 (HD) + Szeged TV + TeenNick + TLC (HD) + Total Dance TV (HD) + Trace Sports HD + Trace Urban (HD) + Travel Channel (HD) + Travel XP (HD / 4K) + Travel XP (HD / 4K) + TV2 (HD) + TV21 Ungvár (Kárpátalja) + TV2 Comedy + TV2 Kids + TV2 Séf + TV 4 (HD) + TV Eger + TV Paprika (HD) + Újbuda TV + Viasat 3 (HD) + Viasat 6 + Viasat Explore (HD) + Viasat History (HD) + Viasat Nature (HD) + Zalaegerszegi TV + Zenebutik TV From 53a7e7332bb62b925ed336d3c8b5e7db4bd8a388 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Mon, 7 Mar 2022 01:25:28 +0300 Subject: [PATCH 6/6] Update musor.tv_hu.channels.xml --- sites/musor.tv/musor.tv_hu.channels.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/musor.tv/musor.tv_hu.channels.xml b/sites/musor.tv/musor.tv_hu.channels.xml index 1ebd1129..c20e15a4 100644 --- a/sites/musor.tv/musor.tv_hu.channels.xml +++ b/sites/musor.tv/musor.tv_hu.channels.xml @@ -68,7 +68,7 @@ Film Café (HD) Film Mánia (HD) Film Now - film+ (HD) + film+ (HD) Fishing & Hunting Channel (HD) Fit HD FIX TV (HD)