diff --git a/sites/musor.tv/musor.tv.channels.xml b/sites/musor.tv/musor.tv.channels.xml
index 42800ba4..9f2de59c 100644
--- a/sites/musor.tv/musor.tv.channels.xml
+++ b/sites/musor.tv/musor.tv.channels.xml
@@ -22,25 +22,38 @@
Cartoonito
Dankó Rádió
Debrecen TV
- Discovery Turbo Xtra (DTX) (HD)
Duck TV HD
Duna World Rádió
+ Első Kerület TV HD
Fashion TV
- Filmbox
+ Filmbox (HD)
+ Gyöngyös TV HD
HBO (HD)
History (HD)
Jazz TV (HD)
+ Kölyök Klub
+ M3 (online)
Magyar Katolikus Rádió
+ Mozi Klub
Kossuth Rádió
Petőfi Rádió
Bartók Rádió
Nemzetiségi Adások
+ Nemzeti Sport Rádió
MTV Hungary
Nickelodeon HD
+ PestBuda TV HD
RTL HÁROM (HD)
+ RTL Otthon
TV1000 Russian Kino
+ Sorozat Klub
+ Szakcsi Rádió
Travel XP 4K
- Viasat Film
+ Travel XP 4K
+ TV2 Klub
+ Vásárhelyi Televízió
+ Veszprém TV HD
+ Viasat Film (HD)
7.TV
AMC (HD)
Animal Planet (HD)
@@ -55,22 +68,19 @@
BBC Earth (HD)
BBC World News
Cartoon Network
- CBS Reality
Cinemax 2 (HD)
Cinemax (HD)
CNBC
CNN
Comedy Central (HD)
- Comedy Central Family
Cool (HD)
D1 Televízió
Da Vinci (HD)
Dikh TV (HD)
Direct One TV (HD)
Discovery Channel (HD)
- Discovery Science (HD)
Disney Channel
- Docubox HD
+ Docubox (HD)
Duck TV
Duna TV (HD)
Duna World (HD)
@@ -80,10 +90,10 @@
Eurosport 1 (HD)
Eurosport 2 (HD)
Eurosport 4K
+ Eurosport 4K
EWTN / Bonum TV (HD)
Fashion TV HD
Fehérvár TV
- FEM3
Film 4 (HD)
Filmbox Extra HD
Filmbox Family
@@ -95,8 +105,9 @@
Fit HD
Food Network (HD)
Funbox UltraHD 4K
+ Funbox UltraHD 4K
Galaxy 4 (HD)
- Gametoon HD
+ Gametoon (HD)
Hatoscsatorna
HBO 2 (HD)
HBO 3 (HD)
@@ -112,19 +123,19 @@
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)
- Magyar Mozi TV
+ Magyar Mozi TV (HD)
Match4 (HD)
Max 4
Mezzo
Mezzo Live HD
Minimax
Mozi+ (HD)
- Mozi Klub
Moziverzum (HD)
MTV 80s
Muzsika TV
@@ -144,7 +155,6 @@
RTL KETTŐ (HD)
Sláger TV (HD)
Sorozat+
- Sorozat Klub
Spektrum (HD)
Spektrum Home (HD)
Spíler1 TV (HD)
diff --git a/sites/musor.tv/musor.tv.config.js b/sites/musor.tv/musor.tv.config.js
index d8e75543..5900d6f6 100644
--- a/sites/musor.tv/musor.tv.config.js
+++ b/sites/musor.tv/musor.tv.config.js
@@ -1,15 +1,21 @@
const cheerio = require('cheerio')
-const dayjs = require('dayjs')
const axios = require('axios')
+const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const customParseFormat = require('dayjs/plugin/customParseFormat')
dayjs.extend(utc)
dayjs.extend(customParseFormat)
+const headers = {
+ 'User-Agent':
+ 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 OPR/115.0.0.0',
+}
+
module.exports = {
site: 'musor.tv',
days: 2,
+ request: { headers },
url({ channel, date }) {
return dayjs.utc().isSame(date, 'd')
? `https://musor.tv/mai/tvmusor/${channel.site_id}`
@@ -17,10 +23,10 @@ module.exports = {
},
parser({ content }) {
const programs = []
- const items = parseItems(content)
+ const [$, items] = parseItems(content)
items.forEach(item => {
const prev = programs[programs.length - 1]
- const $item = cheerio.load(item)
+ const $item = $(item)
let start = parseStart($item)
if (prev) prev.stop = start
const stop = start.add(30, 'm')
@@ -37,22 +43,22 @@ module.exports = {
},
async channels() {
const html = await axios
- .get('https://musor.tv/')
+ .get('https://musor.tv/', { headers })
.then(r => r.data)
- .catch(console.log)
+ .catch(console.error)
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')
+ const $item = $(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()
+ name: $item.text()
}
})
.filter(i => i)
@@ -60,21 +66,21 @@ module.exports = {
}
function parseImage($item) {
- const imgSrc = $item('div.smartpe_screenshot > img').attr('src')
+ const imgSrc = $item.find('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()
+ return $item.find('div:nth-child(2) > div > h3 > a').text().trim()
}
function parseDescription($item) {
- return $item('div:nth-child(5) > div > div').text().trim()
+ return $item.find('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')
+ let datetime = $item.find('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')
@@ -83,5 +89,5 @@ function parseStart($item) {
function parseItems(content) {
const $ = cheerio.load(content)
- return $('div.multicolumndayprogarea > div.smartpe_progentry').toArray()
+ return [$, $('div.multicolumndayprogarea > div.smartpe_progentry').toArray()]
}
diff --git a/sites/musor.tv/musor.tv.test.js b/sites/musor.tv/musor.tv.test.js
index 305f17fe..42ed2d4b 100644
--- a/sites/musor.tv/musor.tv.test.js
+++ b/sites/musor.tv/musor.tv.test.js
@@ -4,6 +4,7 @@ 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)
@@ -25,12 +26,12 @@ it('can generate valid url for today', () => {
it('can parse response', () => {
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.html'))
- let results = parser({ content, date })
- results = results.map(p => {
- p.start = p.start.toJSON()
- p.stop = p.stop.toJSON()
- return p
- })
+ const results = parser({ content, date })
+ .map(p => {
+ p.start = p.start.toJSON()
+ p.stop = p.stop.toJSON()
+ return p
+ })
expect(results[0]).toMatchObject({
start: '2022-11-19T23:00:00.000Z',