mirror of
https://github.com/iptv-org/epg
synced 2025-12-17 02:47:02 -05:00
Merge pull request #2804 from GreenSnakeLinux/programme-tv.net
fix programme-tv.net : Remove srcset + add subTitle
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
const durationParser = require('parse-duration').default
|
const durationParser = require('parse-duration').default
|
||||||
const cheerio = require('cheerio')
|
const cheerio = require('cheerio')
|
||||||
const srcset = require('srcset')
|
|
||||||
const dayjs = require('dayjs')
|
const dayjs = require('dayjs')
|
||||||
const utc = require('dayjs/plugin/utc')
|
const utc = require('dayjs/plugin/utc')
|
||||||
const timezone = require('dayjs/plugin/timezone')
|
const timezone = require('dayjs/plugin/timezone')
|
||||||
@@ -29,13 +28,14 @@ module.exports = {
|
|||||||
items.forEach(item => {
|
items.forEach(item => {
|
||||||
const $item = cheerio.load(item)
|
const $item = cheerio.load(item)
|
||||||
const title = parseTitle($item)
|
const title = parseTitle($item)
|
||||||
|
const subTitle = parseSubtitle($item)
|
||||||
const image = parseImage($item)
|
const image = parseImage($item)
|
||||||
const category = parseCategory($item)
|
const category = parseCategory($item)
|
||||||
const start = parseStart($item, date)
|
const start = parseStart($item, date)
|
||||||
const duration = parseDuration($item)
|
const duration = parseDuration($item)
|
||||||
const stop = start.add(duration, 'ms')
|
const stop = start.add(duration, 'ms')
|
||||||
|
|
||||||
programs.push({ title, image, category, start, stop })
|
programs.push({ title, subTitle, image, category, start, stop })
|
||||||
})
|
})
|
||||||
|
|
||||||
return programs
|
return programs
|
||||||
@@ -91,13 +91,21 @@ function parseDuration($item) {
|
|||||||
function parseImage($item) {
|
function parseImage($item) {
|
||||||
const img = $item('.mainBroadcastCard-imageContent').first().find('img')
|
const img = $item('.mainBroadcastCard-imageContent').first().find('img')
|
||||||
const value = img.attr('srcset') || img.data('srcset')
|
const value = img.attr('srcset') || img.data('srcset')
|
||||||
const obj = value ? srcset.parseSrcset(value).find(i => i.width === 128) : {}
|
|
||||||
|
|
||||||
if (obj.url) {
|
let url = null
|
||||||
obj.url = obj.url.replace('128x180', '960x540')
|
|
||||||
|
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) {
|
function parseCategory($item) {
|
||||||
@@ -113,3 +121,7 @@ function parseItems(content) {
|
|||||||
|
|
||||||
return $('.mainBroadcastCard').toArray()
|
return $('.mainBroadcastCard').toArray()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function parseSubtitle($item) {
|
||||||
|
return $item('.mainBroadcastCard-subtitle').text().trim() || null
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user