fix programme-tv.net : Remove srcset + add subTitle

This commit is contained in:
GreenSnakeLinux
2025-07-08 21:09:02 +02:00
parent cfe870b5b9
commit b001f408b0

View File

@@ -1,6 +1,5 @@
const durationParser = require('parse-duration').default
const cheerio = require('cheerio')
const srcset = require('srcset')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const timezone = require('dayjs/plugin/timezone')
@@ -29,13 +28,14 @@ module.exports = {
items.forEach(item => {
const $item = cheerio.load(item)
const title = parseTitle($item)
const subTitle = parseSubtitle($item)
const image = parseImage($item)
const category = parseCategory($item)
const start = parseStart($item, date)
const duration = parseDuration($item)
const stop = start.add(duration, 'ms')
programs.push({ title, image, category, start, stop })
programs.push({ title, subTitle, image, category, start, stop })
})
return programs
@@ -91,13 +91,21 @@ function parseDuration($item) {
function parseImage($item) {
const img = $item('.mainBroadcastCard-imageContent').first().find('img')
const value = img.attr('srcset') || img.data('srcset')
const obj = value ? srcset.parseSrcset(value).find(i => i.width === 128) : {}
if (obj.url) {
obj.url = obj.url.replace('128x180', '960x540')
let url = null
if (value) {
const sources = value.split(',').map(s => s.trim())
for (const source of sources) {
const [src, descriptor] = source.split(/\s+/)
if (descriptor === '128w') {
url = src.replace('128x180', '960x540')
break
}
}
}
return obj.url
return url
}
function parseCategory($item) {
@@ -113,3 +121,7 @@ function parseItems(content) {
return $('.mainBroadcastCard').toArray()
}
function parseSubtitle($item) {
return $item('.mainBroadcastCard-subtitle').text().trim() || null
}