mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-09 08:30:06 -04:00
Update osn.com guide.
Test ``` npm test -- osn.com > test > run-script-os osn.com > test:win32 > SET "TZ=Pacific/Nauru" && npx jest --runInBand osn.com PASS sites/osn.com/osn.com.test.js (5.194 s) √ can generate valid request headers (6 ms) √ can generate valid url (2 ms) √ can parse response (ar) (112 ms) √ can parse response (en) (9 ms) √ can handle empty guide (1 ms) Test Suites: 1 passed, 1 total Tests: 5 passed, 5 total Snapshots: 0 total Time: 5.499 s Ran all test suites matching /osn.com/i. ``` Grab ``` npm run grab -- --site=osn.com --lang=ar > grab > npx tsx scripts/commands/epg/grab.ts --site=osn.com --lang=ar starting... config: output: guide.xml maxConnections: 1 gzip: false site: osn.com lang: ar loading channels... found 59 channel(s) run #1: [1/118] osn.com (ar) - DWR - Nov 27, 2024 (24 programs) [2/118] osn.com (ar) - DWR - Nov 28, 2024 (24 programs) ... [117/118] osn.com (ar) - OSNYahalaBilArabi.ae - Nov 28, 2024 (29 programs) [118/118] osn.com (ar) - TheFilipinoChannelMiddleEast.us - Nov 28, 2024 (30 programs) saving to "guide.xml"... done in 00h 01m 23s ``` Signed-off-by: Toha <tohenk@yahoo.com>
This commit is contained in:
parent
78dad4cfb4
commit
1d3008d144
5 changed files with 470 additions and 102 deletions
379
sites/osn.com/__data__/content.json
Normal file
379
sites/osn.com/__data__/content.json
Normal file
|
@ -0,0 +1,379 @@
|
|||
[
|
||||
{
|
||||
"Title": "Alo Cake: Episode 12",
|
||||
"Arab_Title": "ألو كيك: الحلقة 12",
|
||||
"EPGUNIQID": "FTF-202426111955",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 240,
|
||||
"TotalDivWidth": 24,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "23:55",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "26 Nov 2024, 23:55"
|
||||
},
|
||||
{
|
||||
"Title": "House Of Desserts: Episode 3",
|
||||
"Arab_Title": "بيت الحلويات: الحلقة 3",
|
||||
"EPGUNIQID": "FTF-202426112050",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 264,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "00:50",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 00:50"
|
||||
},
|
||||
{
|
||||
"Title": "Ekhtar Sehetak (Choose Healthy): 11",
|
||||
"Arab_Title": "اختار صحتك: 11",
|
||||
"EPGUNIQID": "FTF-202426112145",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 240,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "01:45",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 01:45"
|
||||
},
|
||||
{
|
||||
"Title": "Matbakh Manal Al Alem (Manal Alalem\u0027s Kitchen): Episode 10",
|
||||
"Arab_Title": "مطبخ منال العالم: الحلقة 10",
|
||||
"EPGUNIQID": "FTF-202426112235",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 240,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "02:35",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 02:35"
|
||||
},
|
||||
{
|
||||
"Title": "The Mattar Kitchen: Episode 15",
|
||||
"Arab_Title": "شوّاية مطر: الحلقة 15",
|
||||
"EPGUNIQID": "FTF-202426112325",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 264,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "03:25",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 03:25"
|
||||
},
|
||||
{
|
||||
"Title": "Fi Beit Atyab (Tastes Better At Home): Episode 3",
|
||||
"Arab_Title": "فالبيت اطيب: الحلقة 3",
|
||||
"EPGUNIQID": "FTF-202427110020",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 264,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "04:20",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 04:20"
|
||||
},
|
||||
{
|
||||
"Title": "Alo Cake: Episode 12",
|
||||
"Arab_Title": "ألو كيك: الحلقة 12",
|
||||
"EPGUNIQID": "FTF-202427110115",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 264,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "05:15",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 05:15"
|
||||
},
|
||||
{
|
||||
"Title": "House Of Desserts: Episode 3",
|
||||
"Arab_Title": "بيت الحلويات: الحلقة 3",
|
||||
"EPGUNIQID": "FTF-202427110210",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 240,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "06:10",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 06:10"
|
||||
},
|
||||
{
|
||||
"Title": "Matbakh Manal Al Alem (Manal Alalem\u0027s Kitchen): Episode 10",
|
||||
"Arab_Title": "مطبخ منال العالم: الحلقة 10",
|
||||
"EPGUNIQID": "FTF-202427110300",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 240,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "07:00",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 07:00"
|
||||
},
|
||||
{
|
||||
"Title": "Ekhtar Sehetak (Choose Healthy): 11",
|
||||
"Arab_Title": "اختار صحتك: 11",
|
||||
"EPGUNIQID": "FTF-202427110350",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 264,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "07:50",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 07:50"
|
||||
},
|
||||
{
|
||||
"Title": "Wala Ahla Ma\u0027 Loulou: Episode 1",
|
||||
"Arab_Title": "ولا أحلى مع لولو: الحلقة 1",
|
||||
"EPGUNIQID": "FTF-202427110445",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 240,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "08:45",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 08:45"
|
||||
},
|
||||
{
|
||||
"Title": "The Mattar Kitchen: Episode 15",
|
||||
"Arab_Title": "شوّاية مطر: الحلقة 15",
|
||||
"EPGUNIQID": "FTF-202427110535",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 264,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "09:35",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 09:35"
|
||||
},
|
||||
{
|
||||
"Title": "Fi Beit Atyab (Tastes Better At Home): Episode 3",
|
||||
"Arab_Title": "فالبيت اطيب: الحلقة 3",
|
||||
"EPGUNIQID": "FTF-202427110630",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 264,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "10:30",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 10:30"
|
||||
},
|
||||
{
|
||||
"Title": "Alo Cake: Episode 12",
|
||||
"Arab_Title": "ألو كيك: الحلقة 12",
|
||||
"EPGUNIQID": "FTF-202427110725",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 264,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "11:25",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 11:25"
|
||||
},
|
||||
{
|
||||
"Title": "House Of Desserts: Episode 3",
|
||||
"Arab_Title": "بيت الحلويات: الحلقة 3",
|
||||
"EPGUNIQID": "FTF-202427110820",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 264,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "12:20",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 12:20"
|
||||
},
|
||||
{
|
||||
"Title": "Wala Ahla Ma\u0027 Loulou: Episode 1",
|
||||
"Arab_Title": "ولا أحلى مع لولو: الحلقة 1",
|
||||
"EPGUNIQID": "FTF-202427110915",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 240,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "13:15",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 13:15"
|
||||
},
|
||||
{
|
||||
"Title": "Ekhtar Sehetak (Choose Healthy): 11",
|
||||
"Arab_Title": "اختار صحتك: 11",
|
||||
"EPGUNIQID": "FTF-202427111005",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 264,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "14:05",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 14:05"
|
||||
},
|
||||
{
|
||||
"Title": "Matbakh Manal Al Alem (Manal Alalem\u0027s Kitchen): Episode 11",
|
||||
"Arab_Title": "مطبخ منال العالم: الحلقة 11",
|
||||
"EPGUNIQID": "FTF-202427111100",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 240,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "15:00",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 15:00"
|
||||
},
|
||||
{
|
||||
"Title": "Fatafeat Kitchen Tales: Episode 104",
|
||||
"Arab_Title": "حكايات مطبخ من فتافيت: الحلقة 104",
|
||||
"EPGUNIQID": "FTF-202427111150",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 120,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "15:50",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 15:50"
|
||||
},
|
||||
{
|
||||
"Title": "Sahetak Ala Bali: Episode 4",
|
||||
"Arab_Title": "صحتك على بالي: الحلقة 4",
|
||||
"EPGUNIQID": "FTF-202427111215",
|
||||
"IsPlaying": "1",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 264,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "16:15",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 16:15"
|
||||
},
|
||||
{
|
||||
"Title": "Shu Bihib El Orf: Episode 14",
|
||||
"Arab_Title": "شو بحب الأورف: الحلقة 14",
|
||||
"EPGUNIQID": "FTF-202427111310",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 264,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "17:10",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 17:10"
|
||||
},
|
||||
{
|
||||
"Title": "Street Food: Episode 4",
|
||||
"Arab_Title": "أكل شوارع: الحلقة 4",
|
||||
"EPGUNIQID": "FTF-202427111405",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 264,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "18:05",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 18:05"
|
||||
},
|
||||
{
|
||||
"Title": "Marwan\u0027s Innovations (Ibtikarat Marwan): Episode 14",
|
||||
"Arab_Title": "ابتكارات مروان: الحلقة 14",
|
||||
"EPGUNIQID": "FTF-202427111500",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 264,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "19:00",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 19:00"
|
||||
},
|
||||
{
|
||||
"Title": "Wala Ahla Ma\u0027 Loulou: Episode 2",
|
||||
"Arab_Title": "ولا أحلى مع لولو: الحلقة 2",
|
||||
"EPGUNIQID": "FTF-202427111555",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 240,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "19:55",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 19:55"
|
||||
},
|
||||
{
|
||||
"Title": "Ekhtar Sehetak (Choose Healthy): 12",
|
||||
"Arab_Title": "اختار صحتك: 12",
|
||||
"EPGUNIQID": "FTF-202427111645",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 264,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "20:45",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 20:45"
|
||||
},
|
||||
{
|
||||
"Title": "Fatafeat Kitchen Tales: Episode 104",
|
||||
"Arab_Title": "حكايات مطبخ من فتافيت: الحلقة 104",
|
||||
"EPGUNIQID": "FTF-202427111740",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 120,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "21:40",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 21:40"
|
||||
},
|
||||
{
|
||||
"Title": "Sahetak Ala Bali: Episode 4",
|
||||
"Arab_Title": "صحتك على بالي: الحلقة 4",
|
||||
"EPGUNIQID": "FTF-202427111805",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 264,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "22:05",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 22:05"
|
||||
},
|
||||
{
|
||||
"Title": "Shu Bihib El Orf: Episode 14",
|
||||
"Arab_Title": "شو بحب الأورف: الحلقة 14",
|
||||
"EPGUNIQID": "FTF-202427111900",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 264,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "23:00",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 23:00"
|
||||
},
|
||||
{
|
||||
"Title": "Street Food: Episode 4",
|
||||
"Arab_Title": "أكل شوارع: الحلقة 4",
|
||||
"EPGUNIQID": "FTF-202427111955",
|
||||
"IsPlaying": "0",
|
||||
"EmptyDivWidth": 0,
|
||||
"TotalDivWidth": 24,
|
||||
"IsLastRow": false,
|
||||
"StartTime": "23:55",
|
||||
"ChannelCode": "FTF",
|
||||
"ChannelNumber": 25,
|
||||
"StartDateTime": "27 Nov 2024, 23:55"
|
||||
}
|
||||
]
|
|
@ -5,75 +5,64 @@ const timezone = require('dayjs/plugin/timezone')
|
|||
dayjs.extend(utc)
|
||||
dayjs.extend(timezone)
|
||||
|
||||
const packages = { 'OSNTV CONNECT': 3720, 'OSNTV PRIME': 3733, 'ALFA': 1281, 'OSN PINOY PLUS EXTRA': 3519 }
|
||||
const country = 'AE'
|
||||
const tz = 'Asia/Dubai'
|
||||
|
||||
module.exports = {
|
||||
site: 'osn.com',
|
||||
days: 2,
|
||||
url({ channel, date }) {
|
||||
return `https://www.osn.com/api/TVScheduleWebService.asmx/GetTVChannelsProgramTimeTable?newDate=${encodeURIComponent(
|
||||
date.format('MM/DD/YYYY')
|
||||
)}&selectedCountry=AE&channelCode=${channel.site_id}&isMobile=false&hoursForMobile=0`
|
||||
return `https://www.osn.com/api/TVScheduleWebService.asmx/time?dt=${
|
||||
encodeURIComponent(date.format('MM/DD/YYYY'))
|
||||
}&co=${country}&ch=${
|
||||
channel.site_id
|
||||
}&mo=false&hr=0`
|
||||
},
|
||||
request: {
|
||||
headers({ channel }) {
|
||||
return {
|
||||
Referer: `https://www.osn.com/${channel.lang}-ae/watch/tv-schedule`
|
||||
Referer: `https://www.osn.com/${channel.lang}-${country.toLowerCase()}/watch/tv-schedule`
|
||||
}
|
||||
}
|
||||
},
|
||||
parser({ content, channel }) {
|
||||
const programs = []
|
||||
const items = parseItems(content)
|
||||
items.forEach(item => {
|
||||
const start = parseStart(item, channel)
|
||||
const duration = parseDuration(item)
|
||||
const stop = start.add(duration, 'm')
|
||||
programs.push({
|
||||
title: parseTitle(item, channel),
|
||||
category: parseCategory(item, channel),
|
||||
start: start.toString(),
|
||||
stop: stop.toString()
|
||||
})
|
||||
})
|
||||
const items = JSON.parse(content) || []
|
||||
if (Array.isArray(items)) {
|
||||
for (const item of items) {
|
||||
const title = channel.lang === 'ar' ? item.Arab_Title : item.Title
|
||||
const start = dayjs.tz(item.StartDateTime, 'DD MMM YYYY, HH:mm', tz)
|
||||
const duration = parseInt(item.TotalDivWidth / 4.8)
|
||||
const stop = start.add(duration, 'm')
|
||||
programs.push({ title, start, stop })
|
||||
}
|
||||
}
|
||||
|
||||
return programs
|
||||
},
|
||||
async channels({ lang = 'ar' }) {
|
||||
const result = {}
|
||||
const axios = require('axios')
|
||||
const result = await axios
|
||||
.get('https://www.osn.com/api/tvchannels.ashx?culture=en-US&packageId=3519&country=AE')
|
||||
.then(response => response.data)
|
||||
.catch(console.error)
|
||||
for (const pkg of Object.values(packages)) {
|
||||
const channels = await axios
|
||||
.get(`https://www.osn.com/api/tvchannels.ashx?culture=en-US&packageId=${pkg}&country=${country}`)
|
||||
.then(response => response.data)
|
||||
.catch(console.error)
|
||||
|
||||
const channels = result.map(channel => {
|
||||
return {
|
||||
lang: lang,
|
||||
site_id: channel.channelCode,
|
||||
name: channel.channeltitle
|
||||
if (Array.isArray(channels)) {
|
||||
for (const ch of channels) {
|
||||
if (result[ch.channelCode] === undefined) {
|
||||
result[ch.channelCode] = {
|
||||
lang,
|
||||
site_id: ch.channelCode,
|
||||
name: ch.channeltitle
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
return channels
|
||||
return Object.values(result)
|
||||
}
|
||||
}
|
||||
|
||||
function parseTitle(item, channel) {
|
||||
return channel.lang === 'ar' ? item.Arab_Title : item.Title
|
||||
}
|
||||
|
||||
function parseCategory(item, channel) {
|
||||
return channel.lang === 'ar' ? item.GenreArabicName : item.GenreEnglishName
|
||||
}
|
||||
|
||||
function parseDuration(item) {
|
||||
return parseInt(item.TotalDivWidth / 4.8)
|
||||
}
|
||||
|
||||
function parseStart(item) {
|
||||
const time = item.StartDateTime
|
||||
|
||||
return dayjs.tz(time, 'DD MMM YYYY, HH:mm', 'Asia/Dubai')
|
||||
}
|
||||
|
||||
function parseItems(content) {
|
||||
return content ? JSON.parse(content) : []
|
||||
}
|
||||
|
|
|
@ -1,15 +1,17 @@
|
|||
const { parser, url, request } = require('./osn.com.config.js')
|
||||
const { parser, url, request } = require('./osn.com.config')
|
||||
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('2021-10-24', 'YYYY-MM-DD').startOf('d')
|
||||
const channelAR = { site_id: 'AAN', xmltv_id: 'AlAanTV.ae', lang: 'ar' }
|
||||
const channelEN = { site_id: 'AAN', xmltv_id: 'AlAanTV.ae', lang: 'en' }
|
||||
const content =
|
||||
'[{"IsPlaying":"0","Durationtime":null,"StartMinute":0,"EndMinute":0,"EmptyDivWidth":1152,"TotalDivWidth":576,"IsTodayDate":false,"IsLastRow":false,"StartDateTime":"24 Oct 2021, 22:00","EndDateTime":"\\/Date(-62135596800000)\\/","Title":"Al Aan TV","Arab_Title":"تلفزيون الآن","GenreEnglishName":null,"GenreArabicName":null,"ChannelNumber":140,"ChannelCode":"AAN","Duration":"\\/Date(-62135596800000)\\/","Showtime":"\\/Date(-62135596800000)\\/","EpisodeId":738257,"ProgramType":null,"EPGUNIQID":"AAN202110271800738257"}]'
|
||||
const date = dayjs.utc('2024-11-27', 'YYYY-MM-DD').startOf('d')
|
||||
const channelAR = { site_id: 'FTF', xmltv_id: 'Fatafeat.ae', lang: 'ar' }
|
||||
const channelEN = { site_id: 'FTF', xmltv_id: 'Fatafeat.ae', lang: 'en' }
|
||||
const content = fs.readFileSync(path.join(__dirname, '__data__', 'content.json'))
|
||||
|
||||
it('can generate valid request headers', () => {
|
||||
const result = request.headers({ channel: channelAR, date })
|
||||
|
@ -21,32 +23,38 @@ it('can generate valid request headers', () => {
|
|||
it('can generate valid url', () => {
|
||||
const result = url({ channel: channelAR, date })
|
||||
expect(result).toBe(
|
||||
'https://www.osn.com/api/TVScheduleWebService.asmx/GetTVChannelsProgramTimeTable?newDate=10%2F24%2F2021&selectedCountry=AE&channelCode=AAN&isMobile=false&hoursForMobile=0'
|
||||
'https://www.osn.com/api/TVScheduleWebService.asmx/time?dt=11%2F27%2F2024&co=AE&ch=FTF&mo=false&hr=0'
|
||||
)
|
||||
})
|
||||
|
||||
it('can parse response (ar)', () => {
|
||||
const result = parser({ date, channel: channelAR, content })
|
||||
expect(result).toMatchObject([
|
||||
{
|
||||
start: 'Sun, 24 Oct 2021 18:00:00 GMT',
|
||||
stop: 'Sun, 24 Oct 2021 20:00:00 GMT',
|
||||
title: 'تلفزيون الآن',
|
||||
category: null
|
||||
}
|
||||
])
|
||||
.map(a => {
|
||||
a.start = a.start.toJSON()
|
||||
a.stop = a.stop.toJSON()
|
||||
return a
|
||||
})
|
||||
expect(result.length).toBe(29)
|
||||
expect(result[1]).toMatchObject({
|
||||
start: '2024-11-26T20:50:00.000Z',
|
||||
stop: '2024-11-26T21:45:00.000Z',
|
||||
title: 'بيت الحلويات: الحلقة 3',
|
||||
})
|
||||
})
|
||||
|
||||
it('can parse response (en)', () => {
|
||||
const result = parser({ date, channel: channelEN, content })
|
||||
expect(result).toMatchObject([
|
||||
{
|
||||
start: 'Sun, 24 Oct 2021 18:00:00 GMT',
|
||||
stop: 'Sun, 24 Oct 2021 20:00:00 GMT',
|
||||
title: 'Al Aan TV',
|
||||
category: null
|
||||
}
|
||||
])
|
||||
.map(a => {
|
||||
a.start = a.start.toJSON()
|
||||
a.stop = a.stop.toJSON()
|
||||
return a
|
||||
})
|
||||
expect(result.length).toBe(29)
|
||||
expect(result[1]).toMatchObject({
|
||||
start: '2024-11-26T20:50:00.000Z',
|
||||
stop: '2024-11-26T21:45:00.000Z',
|
||||
title: 'House Of Desserts: Episode 3',
|
||||
})
|
||||
})
|
||||
|
||||
it('can handle empty guide', () => {
|
||||
|
|
|
@ -1,14 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<channels>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="" site_id="DWR">DWRR 101.9</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="" site_id="OBG">OSN TV Crime</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="" site_id="OCM">OSNtv Movies Horror</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="" site_id="OFM">OSN TV Movies Family</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="" site_id="OLH">OSN TV Now</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="" site_id="OMC">OSN TV Movies Comedy</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="" site_id="OST">OSN TV Showcase Classics</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="" site_id="OTO">OSN TV One</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="AksyonTVInternational.ph" site_id="AKS">Kapatid TV5</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="AlfaSeries.ae" site_id="SE2">Alfa Series +2</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="AlfaSeriesPlus2.ae" site_id="SER">Alfa Series Channel</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="AlSafwa.ae" site_id="SAF">Al Safwa</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="AlYawm.ae" site_id="YAW">Alfa Al Yawm</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="ANC.ph" site_id="ANC">ANC</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="BabyTV.uk" site_id="BAB">BabyTV</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="AnimalPlanet.ae" site_id="APL">Animal Planet</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="BloombergTVEurope.uk" site_id="BTV">Bloomberg</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="CartoonNetworkArabic.ae" site_id="TCN">Cartoon Network</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="Cinema1.ae" site_id="CM1">Alfa Cinema 1</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="Cinema2.ae" site_id="CM2">Alfa Cinema 2</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="CinemaOneGlobal.ph" site_id="COG">Cinema One Global</channel>
|
||||
|
@ -17,11 +25,9 @@
|
|||
<channel site="osn.com" lang="ar" xmltv_id="CNNArabic.ae" site_id="CNN">CNN</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="CrimePlusInvestigation.uk" site_id="CAI">Crime & Investigation Network</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="DiscoveryChannelMiddleEastAfrica.us" site_id="DSC">Discovery HD</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="DiscoveryScienceMiddleEast.uk" site_id="SCI">Discovery Science HD</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="DisneyChannelMENA.uk" site_id="DIS">Disney HD</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="DisneyJuniorMENA.uk" site_id="DJR">Disney Junior</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="EMiddleEast.us" site_id="ETV">E! Entertainment</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="Fann.ae" site_id="FAN">Alfa Fann</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="Fatafeat.ae" site_id="FTF">Fatafeat</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="GMALifeTV.ph" site_id="GML">GMA Life TV</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="GMANewsTV.ph" site_id="GMN">GMA News TV</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="GMAPinoyTVMiddleEast.ph" site_id="GMA">GMA Pinoy TV</channel>
|
||||
|
@ -33,33 +39,23 @@
|
|||
<channel site="osn.com" lang="ar" xmltv_id="MTVLive.uk" site_id="MTL">MTV Live HD</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="MusicNow.ae" site_id="NOW">Music Now</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="MyxMiddleEast.ph" site_id="MYX">Myx</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="NationalGeographicMiddleEast.uk" site_id="NGO">Nat Geo HD</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="NationalGeographicWildMiddleEast.uk" site_id="NHD">Nat Geo Wild HD</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="NickelodeonArabia.ae" site_id="NIC">Nickelodeon HD</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="NickJrArabia.ae" site_id="NJR">Nick Jr.</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="NickJrArabia.ae" site_id="NJR">Nick Jr</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="NicktoonsArabia.ae" site_id="NKT">NickToons HD</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="OSNComedy.ae" site_id="OCO">OSN TV Comedy</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="" site_id="OBG">OSN TV Crime</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="OSNKids.ae" site_id="OMK">OSN TV Kids</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="OSNKidzone.ae" site_id="KDZ">OSN TV Kidzone</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="OSNMezze.ae" site_id="OMZ">OSN TV Mezze</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="OSNMoviesAction.ae" site_id="AHD">OSN TV Movies Action</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="" site_id="OMC">OSN TV Movies Comedy</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="" site_id="OFM">OSN TV Movies Family</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="OSNMoviesHollywood.ae" site_id="OPR">OSN TV Movies Hollywood</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="OSNMoviesPremiere.ae" site_id="OM1">OSN TV Movies Premiere</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="OSNNews.ae" site_id="ONS">OSN TV News</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="" site_id="OLH">OSN TV Now</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="" site_id="OTO">OSN TV One</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="OSNShowcase.ae" site_id="OFH">OSN TV Showcase</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="" site_id="OST">OSN TV Showcase Classics</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="OSNYahala.ae" site_id="OYH">OSN TV Yahala</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="OSNYahalaAflam.ae" site_id="OYC">OSN TV Yahala Aflam</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="OSNYahalaBilArabi.ae" site_id="OYA">OSN TV Yahala Bil Arabi</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="PBARush.ph" site_id="PBA">PBA Rush</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="SkyNewsInternational.uk" site_id="SKH">Sky News HD</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="StarMoviesMiddleEast.ae" site_id="STM">Star Movies HD</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="StarWorldMiddleEast.ae" site_id="STW">Star World HD</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="TeleRadyoGlobal.ph" site_id="DZM">DZMM Teleradyo</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="TheFilipinoChannelMiddleEast.us" site_id="TFC">TFC</channel>
|
||||
<channel site="osn.com" lang="ar" xmltv_id="TLCArabia.us" site_id="TLC">TLC HD</channel>
|
||||
|
|
|
@ -1,14 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<channels>
|
||||
<channel site="osn.com" lang="en" xmltv_id="" site_id="DWR">DWRR 101.9</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="" site_id="OBG">OSN TV Crime</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="" site_id="OCM">OSNtv Movies Horror</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="" site_id="OFM">OSN TV Movies Family</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="" site_id="OLH">OSN TV Now</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="" site_id="OMC">OSN TV Movies Comedy</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="" site_id="OST">OSN TV Showcase Classics</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="" site_id="OTO">OSN TV One</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="AksyonTVInternational.ph" site_id="AKS">Kapatid TV5</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="AlfaSeries.ae" site_id="SE2">Alfa Series +2</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="AlfaSeriesPlus2.ae" site_id="SER">Alfa Series Channel</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="AlSafwa.ae" site_id="SAF">Al Safwa</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="AlYawm.ae" site_id="YAW">Alfa Al Yawm</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="ANC.ph" site_id="ANC">ANC</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="BabyTV.uk" site_id="BAB">BabyTV</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="AnimalPlanet.ae" site_id="APL">Animal Planet</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="BloombergTVEurope.uk" site_id="BTV">Bloomberg</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="CartoonNetworkArabic.ae" site_id="TCN">Cartoon Network</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="Cinema1.ae" site_id="CM1">Alfa Cinema 1</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="Cinema2.ae" site_id="CM2">Alfa Cinema 2</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="CinemaOneGlobal.ph" site_id="COG">Cinema One Global</channel>
|
||||
|
@ -17,11 +25,9 @@
|
|||
<channel site="osn.com" lang="en" xmltv_id="CNNArabic.ae" site_id="CNN">CNN</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="CrimePlusInvestigation.uk" site_id="CAI">Crime & Investigation Network</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="DiscoveryChannelMiddleEastAfrica.us" site_id="DSC">Discovery HD</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="DiscoveryScienceMiddleEast.uk" site_id="SCI">Discovery Science HD</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="DisneyChannelMENA.uk" site_id="DIS">Disney HD</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="DisneyJuniorMENA.uk" site_id="DJR">Disney Junior</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="EMiddleEast.us" site_id="ETV">E! Entertainment</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="Fann.ae" site_id="FAN">Alfa Fann</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="Fatafeat.ae" site_id="FTF">Fatafeat</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="GMALifeTV.ph" site_id="GML">GMA Life TV</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="GMANewsTV.ph" site_id="GMN">GMA News TV</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="GMAPinoyTVMiddleEast.ph" site_id="GMA">GMA Pinoy TV</channel>
|
||||
|
@ -33,33 +39,23 @@
|
|||
<channel site="osn.com" lang="en" xmltv_id="MTVLive.uk" site_id="MTL">MTV Live HD</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="MusicNow.ae" site_id="NOW">Music Now</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="MyxMiddleEast.ph" site_id="MYX">Myx</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="NationalGeographicMiddleEast.uk" site_id="NGO">Nat Geo HD</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="NationalGeographicWildMiddleEast.uk" site_id="NHD">Nat Geo Wild HD</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="NickelodeonArabia.ae" site_id="NIC">Nickelodeon HD</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="NickJrArabia.ae" site_id="NJR">Nick Jr.</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="NickJrArabia.ae" site_id="NJR">Nick Jr</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="NicktoonsArabia.ae" site_id="NKT">NickToons HD</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="OSNComedy.ae" site_id="OCO">OSN TV Comedy</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="" site_id="OBG">OSN TV Crime</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="OSNKids.ae" site_id="OMK">OSN TV Kids</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="OSNKidzone.ae" site_id="KDZ">OSN TV Kidzone</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="OSNMezze.ae" site_id="OMZ">OSN TV Mezze</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="OSNMoviesAction.ae" site_id="AHD">OSN TV Movies Action</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="" site_id="OMC">OSN TV Movies Comedy</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="" site_id="OFM">OSN TV Movies Family</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="OSNMoviesHollywood.ae" site_id="OPR">OSN TV Movies Hollywood</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="OSNMoviesPremiere.ae" site_id="OM1">OSN TV Movies Premiere</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="OSNNews.ae" site_id="ONS">OSN TV News</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="" site_id="OLH">OSN TV Now</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="" site_id="OTO">OSN TV One</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="OSNShowcase.ae" site_id="OFH">OSN TV Showcase</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="" site_id="OST">OSN TV Showcase Classics</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="OSNYahala.ae" site_id="OYH">OSN TV Yahala</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="OSNYahalaAflam.ae" site_id="OYC">OSN TV Yahala Aflam</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="OSNYahalaBilArabi.ae" site_id="OYA">OSN TV Yahala Bil Arabi</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="PBARush.ph" site_id="PBA">PBA Rush</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="SkyNewsInternational.uk" site_id="SKH">Sky News HD</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="StarMoviesMiddleEast.ae" site_id="STM">Star Movies HD</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="StarWorldMiddleEast.ae" site_id="STW">Star World HD</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="TeleRadyoGlobal.ph" site_id="DZM">DZMM Teleradyo</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="TheFilipinoChannelMiddleEast.us" site_id="TFC">TFC</channel>
|
||||
<channel site="osn.com" lang="en" xmltv_id="TLCArabia.us" site_id="TLC">TLC HD</channel>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue