From a650a4a23ce5fb41e5b9981ec677b1ebb1cedf24 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Tue, 14 Jan 2025 22:07:20 +0300 Subject: [PATCH 1/5] Create tvmustra.hu.test.js --- sites/tvmustra.hu/tvmustra.hu.test.js | 47 +++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 sites/tvmustra.hu/tvmustra.hu.test.js diff --git a/sites/tvmustra.hu/tvmustra.hu.test.js b/sites/tvmustra.hu/tvmustra.hu.test.js new file mode 100644 index 00000000..a1093629 --- /dev/null +++ b/sites/tvmustra.hu/tvmustra.hu.test.js @@ -0,0 +1,47 @@ +const { parser, url } = require('./tvmustra.hu.config.js') +const fs = require('fs') +const path = require('path') +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('2025-01-17', 'YYYY-MM-DD').startOf('d') +const channel = { + site_id: 'M1HD', + xmltv_id: 'M1HD.hu' +} + +it('can generate valid url', () => { + expect(url({ channel, date })).toBe('https://www.tvmustra.hu/tvmusor/M1HD/2025-01-17') +}) + +it('can parse response', () => { + const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.html')) + const results = parser({ content, date }).map(p => { + p.start = p.start.toJSON() + p.stop = p.stop.toJSON() + return p + }) + + expect(results.length).toBe(98) + expect(results[0]).toMatchObject({ + start: '2025-01-17T05:00:00.000Z', + stop: '2025-01-17T05:30:00.000Z', + title: 'HÍRADÓ' + }) + expect(results[97]).toMatchObject({ + start: '2025-01-18T04:00:00.000Z', + stop: '2025-01-18T04:30:00.000Z', + title: 'Ma éjszaka' + }) +}) + +it('can handle empty guide', () => { + const results = parser({ + date, + content: '' + }) + expect(results).toMatchObject([]) +}) From c8bc5109fc931e8424d5d502a631f6faa0e9a7c4 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Tue, 14 Jan 2025 22:07:39 +0300 Subject: [PATCH 2/5] Create content.html --- sites/tvmustra.hu/__data__/content.html | 2145 +++++++++++++++++++++++ 1 file changed, 2145 insertions(+) create mode 100644 sites/tvmustra.hu/__data__/content.html diff --git a/sites/tvmustra.hu/__data__/content.html b/sites/tvmustra.hu/__data__/content.html new file mode 100644 index 00000000..fda96e7c --- /dev/null +++ b/sites/tvmustra.hu/__data__/content.html @@ -0,0 +1,2145 @@ + + + + + + + m1 HD mai műsora - Tv Műsor - TvMustra tv újság + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ TvMustra logo + + + + + + Megosztás: + +
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+
+
m1 HD
+

TV Műsor

+
+ +
+
+
Jan 17., Péntek
+ + +
+
+
+ +
+
+ Sweet.tv +
+
+ Nézd + 7 napig ingyen + m1 HD csatorna műsorát, majd előfizetéshez használd a + MUSTRAL1 + kuponkódot további 10% kedvezményért! +
+
+ +
+
+
+
+ + + + +
+
+
+ +
+ + + + +
+
+
+ + + + +
+
+
+
+
06:00
+
HÍRADÓ
+
+ + +
+
06:30
+
Nemzeti Sporthíradó
+
+ + +
+
06:35
+
Időjárás-jelentés
+
+ + +
+
06:45
+
VILÁGHÍRADÓ
+
+ + +
+
07:00
+
HÍRADÓ
+
+ + +
+
07:15
+
Nemzeti Sporthíradó
+
+ + +
+
07:20
+
Időjárás-jelentés
+
+ + +
+
07:30
+
HÍREK
+
+ + +
+
07:33
+
Ma reggel
+
+ + +
+
08:00
+
HÍRADÓ
+
+ + +
+
08:10
+
Nemzeti Sporthíradó
+
+ + +
+
08:15
+
Időjárás-jelentés
+
+ + +
+
08:20
+
Ma reggel
+
+ + +
+
08:30
+
HÍREK
+
+ + +
+
08:33
+
Ma reggel
+
+ + +
+
09:00
+
HÍRADÓ
+
+ + +
+
09:20
+
Időjárás-jelentés
+
+ + +
+
09:22
+
Ma délelőtt
+
+ + +
+
09:30
+
HÍREK
+
+ + +
+
09:33
+
Ma délelőtt
+
+ + +
+
10:00
+
HÍRADÓ
+
+ + +
+
10:10
+
Nemzeti Sporthíradó
+
+ + +
+
10:20
+
Időjárás-jelentés
+
+ + +
+
10:22
+
Ma délelőtt
+
+ + +
+
10:30
+
HÍREK
+
+ + +
+
10:33
+
Magyarország ma
+
+ + +
+
10:50
+
Ma délelőtt
+
+ + +
+
11:00
+
HÍRADÓ
+
+ + +
+
11:20
+
Időjárás-jelentés
+
+ + +
+
11:22
+
Ma délelőtt
+
+ + +
+
11:30
+
HÍREK
+
+ + +
+
11:33
+
Itthon vagy!
+
+ + +
+
11:50
+
Ma délelőtt
+
+ + +
+
12:00
+
Déli harangszó
+
+ + +
+
12:01
+
HÍRADÓ
+
+ + +
+
12:35
+
Nemzeti Sporthíradó
+
+ + +
+
12:45
+
Időjárás-jelentés
+
+ + +
+
12:50
+
Ma délután
+
+ + +
+
13:00
+
HÍRADÓ
+
+ + +
+
13:20
+
Időjárás-jelentés
+
+ + +
+
13:22
+
Ma délután
+
+ + +
+
13:30
+
HÍREK
+
+ + +
+
13:33
+
Ma délután
+
+ + +
+
14:00
+
HÍRADÓ
+
+ + +
+
14:20
+
Időjárás-jelentés
+
+ + +
+
14:22
+
Ma délután
+
+ + +
+
14:30
+
HÍREK
+
+ + +
+
14:33
+
Magyar gazda
+
+ + +
+
14:50
+
Ma délután
+
+ + +
+
15:00
+
HÍRADÓ
+
+ + +
+
15:20
+
Időjárás-jelentés
+
+ + +
+
15:22
+
Ma délután
+
+ + +
+
15:30
+
HÍREK
+
+ + +
+
15:33
+
Magyarország ma
+
+ + +
+
15:50
+
Ma délután
+
+ + +
+
16:00
+
HÍRADÓ
+
+ + +
+
16:15
+
Időjárás-jelentés
+
+ + +
+
16:20
+
Ma délután
+
+ + +
+
16:30
+
HÍREK
+
+ + +
+
16:33
+
Unió27
+
+ + +
+
17:00
+
HÍRADÓ
+
+ + +
+
17:10
+
Időjárás-jelentés
+
+ + +
+
17:15
+
Ma délután
+
+ + +
+
17:45
+
Agenda
+
+ + +
+
18:00
+
HÍRADÓ
+
+ + +
+
18:25
+
Nemzeti Sporthíradó
+
+ + +
+
18:35
+
Időjárás-jelentés
+
+ + +
+
18:45
+
Ma este
+
+ + +
+
19:00
+
Időjárás-jelentés
+
+ + +
+
19:04
+
VILÁGHÍRADÓ
+
+ + +
+
19:25
+
Időjárás-jelentés
+
+ + +
+
19:30
+
HÍRADÓ
+
+ + +
+
20:20
+
Nemzeti Sporthíradó
+
+ + +
+
20:25
+
Időjárás-jelentés
+
+ + +
+
20:35
+
Ma este
+
+ + +
+
21:00
+
HÍRADÓ
+
+ + +
+
21:20
+
Időjárás-jelentés
+
+ + +
+
21:22
+
V4 HÍRADÓ
+
+ + +
+
21:30
+
VILÁGHÍRADÓ
+
+ + +
+
22:00
+
HÍRADÓ
+
+ + +
+
22:20
+
Nemzeti Sporthíradó
+
+ + +
+
22:30
+
Időjárás-jelentés
+
+ + +
+
22:40
+
Ma éjjel
+
+ + +
+
23:00
+
HÍRADÓ
+
+ + +
+
23:15
+
ANGOL NYELVŰ HÍREK
+
+ + +
+
23:19
+
NÉMET NYELVŰ HÍREK
+
+ + +
+
23:22
+
OROSZ NYELVŰ HÍREK
+
+ + +
+
23:26
+
KÍNAI NYELVŰ HÍREK
+
+ + +
+
23:30
+
VILÁGHÍRADÓ
+
+ + +
+
00:00
+
Himnusz
+
+ + +
+
00:02
+
ZÁRÓHÍRADÓ
+
+ + +
+
00:10
+
Időjárás-jelentés
+
+ + +
+
00:20
+
Ma éjszaka
+
+ + +
+
01:05
+
Ma éjszaka
+
+ + +
+
02:00
+
Ma éjszaka
+
+ + +
+
03:00
+
Ma éjszaka
+
+ + +
+
04:00
+
Ma éjszaka
+
+ + +
+
05:00
+
Ma éjszaka
+
+ + +
+
+ + + + +
+
+
+ +
+ + + + +
+
+
+
+
+ + + + +
+
+
+
+
+
+

+ Az M1 csatorna a tévézés alapja. Ha visszatekintünk az időben, minden innen + indult. Amikor még fekete fehér képernyőn mindent erről az egy helyről kaptunk: + híreket, szórakozást, kultúrát, politikát és tudást. Válogatni egyáltalán nem tudtunk + és adás se volt napi 24 órán át. Ehhez képest manapság roppant mód el vagyunk + kényeztetve. +

+ +

+ Ma már a tv műsor m1 HD minőségben + elérhető és leginkább híreket, információkat, sport közvetítéseket, magazinműsorokat + közvetít egész álló nap. A Duna Médiaszolgáltatóhoz tartozik. Az adást a + Déli harangszó hagyományos felcsendülése szeli ketté, majd éjfélkor hazánk + tiszteletére a Himnusz zárja. Valójában viszont a közvetítés soha sem ér véget. +

+ +

+ Kifejezetten hasznos csatorna, mert a friss híreket fél óránként meghallgathatjuk + HÍREK, illetve HÍRADÓ formájában. Amennyiben csak gyors összefoglalóra + van szükségünk, akkor az előbbit ajánljuk, ami pár percben közli velünk a legfontosabb + eseményeket. Első kézből, hitelesen tájékozódhatunk, folyamatosan képben lehetünk az + objektív, szakszerű hírközlés segítségével. Az utóbbi már egy részletesebb műsor, fél + órás időtartamában kitér a részletekre is. Naponta többször is meghallgathatjuk a + Kárpát-medence, Európa és a világ híreit. A TV Mustra megmutatja, hogy éppen mi + következik, vagy kezdődött el. +

+ +

+ Akit részletesebben érdekelnek a hazánkon kívüli hírek, annak kifejezetten ajánlott a + Világhíradó, amit szintén naponta többször is sugároznak. Emellett programra + tűzték az Unió27 hírműsort, a V4 híradót és angol, német, orosz és kínai nyelvű + hírekkel is kiszolgálják nézőiket. +

+ +

+ A sport egy hírcsatornáról sem hiányozhat, hiszen a sporthírekre tömegek kíváncsiak. A + Híradót a Nemzeti Sporthíradó követi, ami valódi sportműsor. Napi három alkalommal, a + reggeli első, a déli és a kora esti Híradó után informálódhatunk a + magyarországi és határainkon túli eseményekről, eredményekről, a sportolók, csapatok + sikereiről. +

+ +

+ A hírekkel együtt a várható időjárásról is értesülünk, ha az M1 (HD) műsort + követjük. Szinte óránként kapunk tájékoztatást, úgyhogy nem kell attól aggódnunk, hogy + váratlanul ér egy-egy vihar, az erős szél, vagy munkából hazajövet nem lesz nálunk + esernyő. Persze az időjósok is hibázhatnak, de az előrejelzés követésével minimálisra + csökken a kockázat valószínűsége. +

+ +

+ A magazinműsorokat kifejezetten sokan kedvelik. Nézettségük a délutáni, kora esti + órákban a legnagyobb, de délelőtt sem kell panaszkodniuk a nézői létszám miatt, ami + főleg nyugdíjasokból, kisgyermekes anyukákból, vagy a délutáni műszakra készülőkből + áll. Már a reggeli hírműsorok után elkezdődik a Ma reggel, amelyben politikai + és közéleti témákról hallhatunk az MTVA saját szerkesztésében. A műsor kisebb + megszakításokkal tulajdonképpen átszővi a reggeli órákat, majd egyszer csak átcsap + Ma délelőtt címmel egy kicsit aktívabb, pezsgőbb hangulatba. A szüneteket, + illetve a beékelt hírműsorokat a TV Mustra segít követni. Bekapcsolódhatunk nem csak + politikai és gazdasági, hanem kulturális szakmai beszélgetésekbe, élő kapcsolásoknak + is részesei lehetünk. Olyan élő műsorblokk, ami, ha nagyon egyedül érezzük magunkat + otthon, akkor is színt visz az életünkbe. +

+ +

+ Már biztos kitaláltuk, hogy az élő műsorblokk dél után a Ma délután keretében + folytatódik tovább pont ugyanúgy. Időnként elmondják, hogy a következő órákban mi + várható, kit hallgathatunk meg egy-egy beszélgetés, riport alkalmával és a kíváncsiság + felkeltése érdekében meglepetésekről is gondoskodnak. Ebből következik, hogy egyszer + csak eljön a Ma este, majd késő éjszaka a Ma éjjel, ami egész hajnalig + szórakoztatja és informálja virrasztó nézőit. +

+ +

+ A csatorna gondol az egyházakra is, hiszen Élő egyház címmel magyar vallási + műsort közvetít hetente többször, amelynek az ismétléseit is megtekinthetjük. + Foglalkozik egy magazinműsorban Földünk környezetével, a természetvédelemmel, az + energiagazdálkodással is, ami napjainkban kifejezetten aktuális. +

+ +

+ A TV Mustra segítséget nyújt abban, hogy pillanatok alatt áttekintsük az + M1 műsorkínálatát és semmiről se maradjunk le, amire kíváncsiak vagyunk. + Kukkantsunk be az érdekesebbnél érdekesebb adásokba, az elgondolkodtató, különböző + témaköröket feldolgozó magazinműsorokba. Újdonság, izgalom szinte mindig akad, hiszen + a nagyvilágban folyamatosan zajlanak az események. Tájékozottnak lenni pedig óriási + előny mind a politika, gazdaság, napi események, kultúra és sport tekintetében. +

+
+
+
+
+
+
+ + + + + + + + + + +
+
+
+
+
+
+ A csatornák a műsorváltoztatás jogát fenntartják! A portál üzemeltetője semmiféle + felelősséget nem vállal a weboldalon megjelentetett hirdetések tartalmáért, illetve a + hirdetésekhez feltöltött képekért! +
+
+
+
+
+
+ + + From ceb4932e6ed7fb4b62b508bbf45f6e3920984d10 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Tue, 14 Jan 2025 22:08:00 +0300 Subject: [PATCH 3/5] Create tvmustra.hu.config.js --- sites/tvmustra.hu/tvmustra.hu.config.js | 78 +++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 sites/tvmustra.hu/tvmustra.hu.config.js diff --git a/sites/tvmustra.hu/tvmustra.hu.config.js b/sites/tvmustra.hu/tvmustra.hu.config.js new file mode 100644 index 00000000..ca59ea39 --- /dev/null +++ b/sites/tvmustra.hu/tvmustra.hu.config.js @@ -0,0 +1,78 @@ +const cheerio = require('cheerio') +const axios = require('axios') +const { DateTime } = require('luxon') + +module.exports = { + site: 'tvmustra.hu', + days: 2, + url({ channel, date }) { + return `https://www.tvmustra.hu/tvmusor/${channel.site_id}/${date.format('YYYY-MM-DD')}` + }, + parser({ content, date }) { + const programs = [] + const items = parseItems(content) + items.forEach(item => { + const prev = programs[programs.length - 1] + const $item = cheerio.load(item) + let start = parseStart($item, date) + if (!start) return + if (prev) { + if (start < prev.start) { + start = start.plus({ days: 1 }) + date = date.add(1, 'd') + } + prev.stop = start + } + const stop = start.plus({ minute: 30 }) + + programs.push({ + title: parseTitle($item), + start, + stop + }) + }) + + return programs + }, + async channels() { + const html = await axios + .get('https://www.tvmustra.hu/') + .then(r => r.data) + .catch(console.log) + const $ = cheerio.load(html) + const items = $('.channel-selector option').toArray() + + const channels = [] + items.forEach(item => { + const name = $(item).text().trim() + const site_id = $(item).attr('value').trim() + if (!site_id) return + + channels.push({ + lang: 'hu', + site_id, + name + }) + }) + + return channels + } +} + +function parseTitle($item) { + return $item('.musor_lista_cim, .musor_lista_cim2').text().trim() +} + +function parseStart($item, date) { + const time = $item('.musor_lista_idopont, .musor_lista_idopont2').text().trim() + + return DateTime.fromFormat(`${date.format('YYYY-MM-DD')} ${time}`, 'yyyy-MM-dd HH:mm', { + zone: 'Europe/Budapest' + }).toUTC() +} + +function parseItems(content) { + const $ = cheerio.load(content) + + return $('#epg-container > div:nth-child(4) > div.col-6_sor3 > div.showtime').toArray() +} From 9599038a1051ce3e59fd6c2bc1b89c22c79b7fa3 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Tue, 14 Jan 2025 22:08:17 +0300 Subject: [PATCH 4/5] Create tvmustra.hu.channels.xml --- sites/tvmustra.hu/tvmustra.hu.channels.xml | 191 +++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 sites/tvmustra.hu/tvmustra.hu.channels.xml diff --git a/sites/tvmustra.hu/tvmustra.hu.channels.xml b/sites/tvmustra.hu/tvmustra.hu.channels.xml new file mode 100644 index 00000000..089b1a3a --- /dev/null +++ b/sites/tvmustra.hu/tvmustra.hu.channels.xml @@ -0,0 +1,191 @@ + + + 3Sat + 360TuneBox + Al Jazeera + AMC + Animal Planet HD + Apostol TV + ARD1 + Aréna4 + Arte + ATV + ATV SPIRIT + AXN + Babyfirst + Baby TV + Balaton TV + BBC Earth + Bonum TV + Brazzers TV Europe + Cartoon Network + Cartoonito + Cinemax + Cinemax 2 + Stingray Classica + Club MTV + Stingray CMusic + CNN + Comedy Central + Cool TV + Crime + Investigation + D1 + Da Vinci Tv + Deutsche Welle + Dikh TV + Discovery Channel + ID: Investigation Discovery + Disney Channel + Docubox + Duck Tv + Duna TV + Duna World + English Club TV + Epic Drama + Eroxxx HD + Euronews + Eurosport HD + Eurosport 2 HD + Eurosport 4K + Extreme Sports + Fashionbox + Fishing and Hunting Channel + FightBox + Film4 + Filmbox + Filmbox Arthouse + Filmbox Family + Filmbox Extra HD + FilmBox Prémium + FilmBox Stars + Film Café + Film Mánia + Film+ + Fit HD + Food Network + Fashion TV Europe + FTV HD + FunBox UHD + Galaxy4 + Gametoon + Ginx + Hatos csatorna + HBO + HBO 2 + HBO 3 + Heti Tv + HGTV + HIR TV + History2 + HRT-1 + HRT-2 + Hustler TV + Stingray iConcerts + Izaura TV + JazzTV + JimJam + Jocky TV + Kika + Kölyökklub + LifeTv + Love Nature + m1 HD + m2 HD + m4 + m4sport+ + m5 + Magyar Mozi TV + Match 4 + Max4 + MEZZO + MEZZOHD + Minimax + Motorvision TV + Moziklub + Mozi+ + Moziverzum + MR1-Kossuth + MR2-Petőfi + MR3-Bartók + MR4-Nemzetiségi + MR6-Dankó + MTV 00's + MTV 80's + MTV 90's + MTV Euro + MTV Hits + MTV Hungary + MTV Live HD + Muzsika TV + National Geographic HD + National Geographic + National Geographic Wild + National Geographic Wild HD + Nautical Channel HD + Nick Jr. + Nickelodeon + Nickmusic + Nicktoons + ORF1 + ORF2 + OzoneTv + Paramount Network + Pax TV + Playboy TV + Prime + Private TV + PRO 7 + Rai 1 + Redlight HD + RTL + RTL2 DE + RTL DE + RTL HÁROM + RTL KETTŐ + RTL GOLD + RTL OTTHON + SAT 1 + Sláger TV + Smile of a Child + SorozatKlub + Sorozat+ + Spektrum + Spektrum HD + Spektrum Home + Spíler1 TV + Spíler2 TV + Sport1 + Sport2 + Story4 + Superone HD + Super Rtl + Super TV2 + TeenNick + Telepaks + History Channel + The History HD + TLC + Tolnatáj TV + Travel Channel HD + TravelXP + TV2 + TV2 Kids + TV2 Comedy + TV2 Klub + TV2 Séf + TV4 + TV5 + TVE + TV Paprika + Viasat 2 + Viasat 3 + Viasat 6 + Viasat Film + Viasat Explore + Viasat History + Viasat Nature + Vox + ZDF + Zeg TV + Zenebutik + From fa7f1eb2eced00906bea48b94efe24d1c3cfde68 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Tue, 14 Jan 2025 22:08:36 +0300 Subject: [PATCH 5/5] Create readme.md --- sites/tvmustra.hu/readme.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 sites/tvmustra.hu/readme.md diff --git a/sites/tvmustra.hu/readme.md b/sites/tvmustra.hu/readme.md new file mode 100644 index 00000000..024e8efb --- /dev/null +++ b/sites/tvmustra.hu/readme.md @@ -0,0 +1,21 @@ +# tvmustra.hu + +https://www.tvmustra.hu/ + +### Download the guide + +```sh +npm run grab --- --site=tvmustra.hu +``` + +### Update channel list + +```sh +npm run channels:parse --- --config=./sites/tvmustra.hu/tvmustra.hu.config.js --output=./sites/tvmustra.hu/tvmustra.hu.channels.xml +``` + +### Test + +```sh +npm test --- tvmustra.hu +```