mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-09 16:40:07 -04:00

Test: ```sh npm test -- startimestv.com > test > run-script-os startimestv.com > test:win32 > SET "TZ=Pacific/Nauru" && npx jest --runInBand startimestv.com PASS sites/startimestv.com/startimestv.com.test.js √ can generate valid url (3 ms) √ can parse response (114 ms) √ can handle empty guide (2 ms) Test Suites: 1 passed, 1 total Tests: 3 passed, 3 total Snapshots: 0 total Time: 4.618 s, estimated 5 s Ran all test suites matching /startimestv.com/i. ``` Grab: ```sh npm run grab -- --site=startimestv.com > grab > npx tsx scripts/commands/epg/grab.ts --site=startimestv.com starting... config: output: guide.xml maxConnections: 1 gzip: false site: startimestv.com loading channels... found 77 channel(s) run #1: [1/154] startimestv.com (en) - 648 - Dec 10, 2024 (17 programs) [2/154] startimestv.com (en) - 648 - Dec 11, 2024 (18 programs) ... [153/154] startimestv.com (pt) - DisneyChannel.pt - Dec 11, 2024 (61 programs) [154/154] startimestv.com (en) - ZeeOneAfrica.za - Dec 10, 2024 (22 programs) saving to "guide.xml"... done in 00h 01m 02s ``` Signed-off-by: Toha <tohenk@yahoo.com>
48 lines
2.1 KiB
JavaScript
48 lines
2.1 KiB
JavaScript
const { parser, url } = require('./startimestv.com.config.js')
|
|
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('2024-12-10', 'YYYY-MM-DD').startOf('d')
|
|
const channel = {
|
|
site_id: '1023102509',
|
|
xmltv_id: 'ZeeOneAfrica.za'
|
|
}
|
|
|
|
it('can generate valid url', () => {
|
|
expect(url({ channel, date })).toBe(
|
|
'https://www.startimestv.com/channeldetail/1023102509/2024-12-10.html'
|
|
)
|
|
})
|
|
|
|
it('can parse response', () => {
|
|
const fs = require('fs')
|
|
const path = require('path')
|
|
const content = fs.readFileSync(path.join(__dirname, '__data__', 'content.html'))
|
|
const result = parser({ content, date }).map(p => {
|
|
p.start = p.start.toJSON()
|
|
p.stop = p.stop.toJSON()
|
|
return p
|
|
})
|
|
|
|
expect(result.length).toBe(22)
|
|
expect(result[0]).toMatchObject({
|
|
start: '2024-12-10T00:00:00.000Z',
|
|
stop: '2024-12-10T01:00:00.000Z',
|
|
title: 'Deserted S1 E37',
|
|
description:
|
|
'Tora approaches Tubri for help, but she expresses her helplessness in seeking assistance from Arjun. Meanwhile, other family members are caught in the crossfire, trying to navigate their own positions within the household.',
|
|
season: 1,
|
|
episode: 37
|
|
})
|
|
})
|
|
|
|
it('can handle empty guide', () => {
|
|
const result = parser({
|
|
content:
|
|
'<!DOCTYPE html><html> <body> <div id="body" class="page"> <div class="block"> <div class="channel"> <div class="title1"> <h3 style="text-transform:uppercase;"></h3> </div><div class="content"> <div class="des" style="background-color:#FFAB00"> <div class="sdw"></div><div class="inner clearfix"> <div class="pic"> <img src="" onerror="onerror=null;src=\'/Public/static/images/channellogo.png\'"> </div><div class="inf"> <h3 style="text-transform:uppercase;"></h3> <div class="num"> </div><div class="box"> <p class="rate" data="">Rate: <i></i><i></i><i></i><i></i><i></i></p><p>Category: </p><br/> </div></div><div class="txt"> <p></p></div></div></div></div></div></div></div></body></html>'
|
|
})
|
|
expect(result).toMatchObject([])
|
|
})
|