Merge pull request #2598 from iptv-org/add-tvmustra.hu

Add tvmustra.hu
This commit is contained in:
PopeyeTheSai10r 2025-01-14 19:31:22 -08:00 committed by GitHub
commit 0b5c90c856
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 2482 additions and 0 deletions

File diff suppressed because it is too large Load diff

View file

@ -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
```

View file

@ -0,0 +1,191 @@
<?xml version="1.0" encoding="UTF-8"?>
<channels>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="3SAT">3Sat</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="360TUNEBOX">360TuneBox</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="ALJAZEERA">Al Jazeera</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="AMC">AMC</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="ANIMALPLANETHD">Animal Planet HD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="APOSTOL_TV">Apostol TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="ARD">ARD1</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="ARENA4">Aréna4</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="ARTE">Arte</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="ATV">ATV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="ATVSPIRIT">ATV SPIRIT</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="AXN">AXN</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="BABYFIRST">Babyfirst</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="BABYTV">Baby TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="BALATONTV">Balaton TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="BBCEARTH">BBC Earth</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="BONUMTV">Bonum TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="BRAZZERSTVEUROPE">Brazzers TV Europe</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="CARTOON">Cartoon Network</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="CARTOONITO">Cartoonito</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="CINEMAX">Cinemax</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="CINEMAX2">Cinemax 2</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="CLASSICA">Stingray Classica</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="CLUBMTV">Club MTV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="CMUSIC">Stingray CMusic</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="CNN">CNN</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="COMEDY">Comedy Central</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="COOL">Cool TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="CRIME_INVESTIGATION">Crime + Investigation</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="D1">D1</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="DAVINCILEARNING">Da Vinci Tv</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="DEUTSCHEWELLE">Deutsche Welle</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="DIKHTV">Dikh TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="DISCOVERYCHANNEL">Discovery Channel</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="DISCOVERYID">ID: Investigation Discovery</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="DISNEY">Disney Channel</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="DOCUBOX">Docubox</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="DUCKTV">Duck Tv</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="DUNA">Duna TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="DUNAWORLD">Duna World</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="ENGLISH_CLUB_TV">English Club TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="EPICDRAMA">Epic Drama</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="EROX">Eroxxx HD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="EURONEWS">Euronews</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="EUROSPORT">Eurosport HD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="EUROSPORT2">Eurosport 2 HD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="EUROSPORT4K">Eurosport 4K</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="EXTREMESPORTS">Extreme Sports</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="FASHIONBOX">Fashionbox</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="FH">Fishing and Hunting Channel</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="FIGHTBOX">FightBox</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="FILM4">Film4</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="FILMBOX">Filmbox</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="FILMBOXARTHOUSE">Filmbox Arthouse</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="FILMBOXFAMILY">Filmbox Family</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="FILMBOXHD">Filmbox Extra HD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="FILMBOXPREMIUM">FilmBox Prémium</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="FILMBOXSTARS">FilmBox Stars</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="FILMCAFE">Film Café</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="FILMMANIA">Film Mánia</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="FILMPLUSSZ">Film+</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="FITHD">Fit HD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="FOODNETWORK">Food Network</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="FTV">Fashion TV Europe</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="FTVHD">FTV HD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="FUNBOX">FunBox UHD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="GALAXY4">Galaxy4</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="GAMETOON">Gametoon</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="GINX">Ginx</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="HATOSCSATORNA">Hatos csatorna</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="HBO">HBO</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="HBO2">HBO 2</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="HBO3">HBO 3</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="HETITV">Heti Tv</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="HGTV">HGTV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="HIRTV">HIR TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="HISTORY2">History2</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="HRT1">HRT-1</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="HRT2">HRT-2</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="HUSTLERTV">Hustler TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="ICONCERT">Stingray iConcerts</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="IZAURATV">Izaura TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="JAZZTV">JazzTV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="JIMJAM">JimJam</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="JOCKYTV">Jocky TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="KIKA">Kika</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="KOLYOKKLUB">Kölyökklub</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="LIFETV">LifeTv</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="LOVE_NATURE">Love Nature</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="M1HD">m1 HD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="M2HD">m2 HD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="M4">m4</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="M4_SPORT_PLUSZ">m4sport+</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="M5">m5</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MAGYARMOZITV">Magyar Mozi TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MATCH4">Match 4</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MAX4">Max4</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MEZZO">MEZZO</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MEZZOHD">MEZZOHD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MINIMAX">Minimax</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MOTORVISIONHD">Motorvision TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MOZIKLUB">Moziklub</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MOZIPLUSZ">Mozi+</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MOZIVERZUM">Moziverzum</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MR1KOSSUTH">MR1-Kossuth</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MR2PETOFI">MR2-Petőfi</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MR3BARTOK">MR3-Bartók</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MR4NEMZETISEGI">MR4-Nemzetiségi</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MR6DANKO">MR6-Dankó</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MTV00S">MTV 00&apos;s</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MTV80S">MTV 80&apos;s</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MTV90S">MTV 90&apos;s</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MTVEURO">MTV Euro</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MTVHITS">MTV Hits</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MTVHUNGARY">MTV Hungary</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MTVLIVEHD">MTV Live HD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="MUZSIKA">Muzsika TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="NATGEOHD">National Geographic HD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="NATIONALGEOGRAPHIC">National Geographic</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="NATIONALGEOWILD">National Geographic Wild</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="NATIONALGEOWILDHD">National Geographic Wild HD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="NAUTICALCHANNEL">Nautical Channel HD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="NICK_JR">Nick Jr.</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="NICKELODEON">Nickelodeon</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="NICKMUSIC">Nickmusic</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="NICKTOONS">Nicktoons</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="ORF1">ORF1</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="ORF2">ORF2</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="OZONETV">OzoneTv</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="PARAMOUNT_NETWORK">Paramount Network</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="PAXTV">Pax TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="PLAYBOYTV">Playboy TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="PRIME">Prime</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="PRIVATETV">Private TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="PRO7">PRO 7</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="RAIUNO">Rai 1</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="REDLIGHTHD">Redlight HD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="RTL">RTL</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="RTL2_DE">RTL2 DE</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="RTL_DE">RTL DE</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="RTL_HAROM">RTL HÁROM</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="RTL_KETTO">RTL KETTŐ</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="RTLGOLD">RTL GOLD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="RTLOTTHON">RTL OTTHON</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="SAT1">SAT 1</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="SLAGERTV">Sláger TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="SMILEOFACHILD">Smile of a Child</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="SOROZATKLUB">SorozatKlub</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="SOROZATPLUSSZ">Sorozat+</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="SPEKTRUM">Spektrum</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="SPEKTRUMHD">Spektrum HD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="SPEKTRUMHOME">Spektrum Home</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="SPILER1TV">Spíler1 TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="SPILER2TV">Spíler2 TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="SPORT1">Sport1</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="SPORT2">Sport2</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="STORY4">Story4</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="SUPERONEHD">Superone HD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="SUPERRTL">Super Rtl</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="SUPERTV2">Super TV2</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="TEENNICK">TeenNick</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="TELEPAKS">Telepaks</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="THEHISTORYCHANNEL">History Channel</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="THEHISTORYCHANNELHD">The History HD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="TLC">TLC</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="TOLNATAJTV">Tolnatáj TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="TRAVELCHANNELHD">Travel Channel HD</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="TRAVELXP">TravelXP</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="TV2">TV2</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="TV2_KIDS">TV2 Kids</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="TV2COMEDY">TV2 Comedy</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="TV2KLUB">TV2 Klub</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="TV2SEF">TV2 Séf</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="TV4">TV4</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="TV5MONDE">TV5</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="TVE">TVE</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="TVPAPRIKA">TV Paprika</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="VIASAT2">Viasat 2</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="VIASAT3">Viasat 3</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="VIASAT6">Viasat 6</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="VIASAT_FILM">Viasat Film</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="VIASATEXPLORE">Viasat Explore</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="VIASATHISTORY">Viasat History</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="VIASATNATURE">Viasat Nature</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="VOX">Vox</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="ZDF">ZDF</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="ZEGTV">Zeg TV</channel>
<channel site="tvmustra.hu" lang="hu" xmltv_id="" site_id="ZENEBUTIK">Zenebutik</channel>
</channels>

View file

@ -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()
}

View file

@ -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([])
})