Fix linter issues

This commit is contained in:
freearhey 2025-01-16 16:12:06 +03:00
parent a66a06b4ea
commit 63d5f4877f
4 changed files with 252 additions and 242 deletions

View file

@ -1,21 +1,21 @@
# rikstv.no
https://play.rikstv.no/tv-guide
### Download the guide
```sh
npm run grab --- --site=rikstv.no
```
### Update channel list
```sh
npm run channels:parse --- --config=./sites/rikstv.no/rikstv.no.config.js --output=./sites/rikstv.no/rikstv.no.channels.xml
```
### Test
```sh
npm test --- rikstv.no
```
# rikstv.no
https://play.rikstv.no/tv-guide
### Download the guide
```sh
npm run grab --- --site=rikstv.no
```
### Update channel list
```sh
npm run channels:parse --- --config=./sites/rikstv.no/rikstv.no.config.js --output=./sites/rikstv.no/rikstv.no.channels.xml
```
### Test
```sh
npm test --- rikstv.no
```

View file

@ -1,83 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
<channels>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="12">BBC News</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="21">Discovery</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="22">TLC</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="23">Disney Channel</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="26">Eurosport 1</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="27">FEM</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="29">Frikanalen</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="43">REX</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="45">National Geographic</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="46">NRK Super/3</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="47">NRK1</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="48">NRK1 Tegnspråk</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="49">NRK2</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="55">SVT1</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="58">TV 2 Livsstil</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="60">TV 2 Direkte</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="61">TV 2 Nyheter</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="68">TV 2 Zebra</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="69">TV3</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="70">TVNorge</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="71">TV3+</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="72">Visjon Norge</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="73">VOX</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="74">Animal Planet</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="75">BBC Nordic</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="76">TV6</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="77">History Channel</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="121">Eurosport Norge</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="142">Nick Jr.</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="143">Nickelodeon</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="201">TV 2 Danmark</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="202">DR2</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="203">DR1</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="204">SVT2</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="205">TV4</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="241">CNN</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="281">Discovery Science</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="282">Investigation Discovery</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="283">Norway Live</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="361">V Sport +</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="362">V Sport 1</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="363">V Sport 2</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="364">V Sport 3</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="441">Hits</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="461">Stars</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="462">SF-kanalen</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="481">TV 2 Sport 1</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="501">TV 2 Sport 2</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="522">Sky News</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="524">CNBC</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="525">Deutsche Welle</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="526">France 24</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="561">NRK1 Sørlandet</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="562">NRK1 Nordland</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="563">NRK1 Midtnytt</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="564">NRK1 Vestfold og Telemark</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="565">NRK1 Vestlandsrevyen</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="567">NRK1 Nordnytt</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="581">NRK1 Innlandet</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="601">MTV00s</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="602">TV Nord</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="619">Travel Channel</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="620">Food Network</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="621">Euronews</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="622">Auto Motor og Sport TV</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="628">Rikstoto Direkte</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="629">TV Øst</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="630">NRK1 Rogaland</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="631">NRK1 Møre og Romsdal</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="632">NRK1 Lydtekst</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="633">NRK2 Lydtekst</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="634">NRK3 Super Lydtekst</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="635">Heim TV</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="642">V sport golf</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="643">NRK1 Underteksting</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="644">NRK2 Underteksting</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="650">Naturkanal1</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="651">V Film Action</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="652">V Film Premiere</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="653">V Series</channel>
</channels>
<?xml version="1.0" encoding="UTF-8"?>
<channels>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="12">BBC News</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="21">Discovery</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="22">TLC</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="23">Disney Channel</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="26">Eurosport 1</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="27">FEM</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="29">Frikanalen</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="43">REX</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="45">National Geographic</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="46">NRK Super/3</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="47">NRK1</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="48">NRK1 Tegnspråk</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="49">NRK2</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="55">SVT1</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="58">TV 2 Livsstil</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="60">TV 2 Direkte</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="61">TV 2 Nyheter</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="68">TV 2 Zebra</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="69">TV3</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="70">TVNorge</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="71">TV3+</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="72">Visjon Norge</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="73">VOX</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="74">Animal Planet</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="75">BBC Nordic</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="76">TV6</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="77">History Channel</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="121">Eurosport Norge</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="142">Nick Jr.</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="143">Nickelodeon</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="201">TV 2 Danmark</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="202">DR2</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="203">DR1</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="204">SVT2</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="205">TV4</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="241">CNN</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="281">Discovery Science</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="282">Investigation Discovery</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="283">Norway Live</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="361">V Sport +</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="362">V Sport 1</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="363">V Sport 2</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="364">V Sport 3</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="441">Hits</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="461">Stars</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="462">SF-kanalen</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="481">TV 2 Sport 1</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="501">TV 2 Sport 2</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="522">Sky News</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="524">CNBC</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="525">Deutsche Welle</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="526">France 24</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="561">NRK1 Sørlandet</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="562">NRK1 Nordland</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="563">NRK1 Midtnytt</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="564">NRK1 Vestfold og Telemark</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="565">NRK1 Vestlandsrevyen</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="567">NRK1 Nordnytt</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="581">NRK1 Innlandet</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="601">MTV00s</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="602">TV Nord</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="619">Travel Channel</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="620">Food Network</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="621">Euronews</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="622">Auto Motor og Sport TV</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="628">Rikstoto Direkte</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="629">TV Øst</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="630">NRK1 Rogaland</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="631">NRK1 Møre og Romsdal</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="632">NRK1 Lydtekst</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="633">NRK2 Lydtekst</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="634">NRK3 Super Lydtekst</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="635">Heim TV</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="642">V sport golf</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="643">NRK1 Underteksting</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="644">NRK2 Underteksting</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="650">Naturkanal1</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="651">V Film Action</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="652">V Film Premiere</channel>
<channel site="rikstv.no" lang="no" xmltv_id="" site_id="653">V Series</channel>
</channels>

View file

@ -1,72 +1,76 @@
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const axios = require('axios')
dayjs.extend(utc)
module.exports = {
site: 'rikstv.no',
days: 3,
request: {
cache: {
ttl: 60 * 60 * 1000 // 1 hour
}
},
url({ channel, date }) {
return `https://play.rikstv.no/api/content-search/1/channel/${channel.site_id}/epg/${date.format('YYYY-MM-DD')}`
},
parser: function ({ content }) {
let data
try {
data = JSON.parse(content)
} catch (error) {
console.error('Error parsing JSON:', error)
return []
}
const programs = []
if (data && Array.isArray(data)) {
data.forEach(item => {
if (!item) return
//const start = dayjs.utc(item.broadcastedTime)
//const stop = dayjs.utc(item.broadcastedTimeEnd)
programs.push({
title: item.seriesName,
sub_title: item.name,
description: item.description || item.synopsis,
season: item.season || null,
episode: item.episode || null,
category: item.genres,
actors: item.actors,
directors: item.director || item.directors,
icon: item.imagePackUri,
start: item.broadcastedTime,
stop: item.broadcastedTimeEnd
})
})
}
return programs
},
async channels() {
try {
const response = await axios.get('https://play.rikstv.no/api/content-search/1/channel?includePrograms=false')
if (!response.data || !Array.isArray(response.data)) {
console.error('Error: No channels data found')
return []
}
return response.data.map(item => {
return {
lang: 'no',
site_id: item.channelId,
name: item.serviceName
}
})
} catch (error) {
console.error('Error fetching channels:', error)
return []
}
}
}
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const axios = require('axios')
dayjs.extend(utc)
module.exports = {
site: 'rikstv.no',
days: 3,
request: {
cache: {
ttl: 60 * 60 * 1000 // 1 hour
}
},
url({ channel, date }) {
return `https://play.rikstv.no/api/content-search/1/channel/${
channel.site_id
}/epg/${date.format('YYYY-MM-DD')}`
},
parser: function ({ content }) {
let data
try {
data = JSON.parse(content)
} catch (error) {
console.error('Error parsing JSON:', error)
return []
}
const programs = []
if (data && Array.isArray(data)) {
data.forEach(item => {
if (!item) return
//const start = dayjs.utc(item.broadcastedTime)
//const stop = dayjs.utc(item.broadcastedTimeEnd)
programs.push({
title: item.seriesName,
sub_title: item.name,
description: item.description || item.synopsis,
season: item.season || null,
episode: item.episode || null,
category: item.genres,
actors: item.actors,
directors: item.director || item.directors,
icon: item.imagePackUri,
start: item.broadcastedTime,
stop: item.broadcastedTimeEnd
})
})
}
return programs
},
async channels() {
try {
const response = await axios.get(
'https://play.rikstv.no/api/content-search/1/channel?includePrograms=false'
)
if (!response.data || !Array.isArray(response.data)) {
console.error('Error: No channels data found')
return []
}
return response.data.map(item => {
return {
lang: 'no',
site_id: item.channelId,
name: item.serviceName
}
})
} catch (error) {
console.error('Error fetching channels:', error)
return []
}
}
}

View file

@ -1,66 +1,72 @@
const { parser, url } = require('./rikstv.no.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('2025-01-14', 'YYYY-MM-DD').startOf('d')
const channel = {
site_id: '47',
xmltv_id: 'NRK1.no'
}
describe('rikstv.no Module Tests', () => {
it('can generate valid url', () => {
expect(url({ date, channel })).toBe(`https://play.rikstv.no/api/content-search/1/channel/${channel.site_id}/epg/${date.format('YYYY-MM-DD')}`)
})
it('can parse response', () => {
const content = JSON.stringify([
{
seriesName: 'Vakre og ville Oman',
name: 'Vakre og ville Oman',
description: 'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
season: 1,
episode: 1,
genres: ['Dokumentar', 'Fakta', 'Natur'],
actors: ['Gergana Muskalla'],
director: 'Stefania Muller',
imagePackUri: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
broadcastedTime: '2025-01-13T23:00:00Z',
broadcastedTimeEnd: '2025-01-13T23:55:00Z'
}
])
const result = parser({ content }).map(p => {
p.start = dayjs(p.start).toISOString()
p.stop = dayjs(p.stop).toISOString()
return p
})
expect(result).toMatchObject([
{
title: 'Vakre og ville Oman',
sub_title: 'Vakre og ville Oman',
description: 'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
season: 1,
episode: 1,
category: ['Dokumentar', 'Fakta', 'Natur'],
actors: ['Gergana Muskalla'],
directors: 'Stefania Muller',
icon: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
start: '2025-01-13T23:00:00.000Z',
stop: '2025-01-13T23:55:00.000Z'
}
])
})
it('can handle empty guide', () => {
const result = parser({
content: '[]'
})
expect(result).toMatchObject([])
})
})
const { parser, url } = require('./rikstv.no.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('2025-01-14', 'YYYY-MM-DD').startOf('d')
const channel = {
site_id: '47',
xmltv_id: 'NRK1.no'
}
describe('rikstv.no Module Tests', () => {
it('can generate valid url', () => {
expect(url({ date, channel })).toBe(
`https://play.rikstv.no/api/content-search/1/channel/${channel.site_id}/epg/${date.format(
'YYYY-MM-DD'
)}`
)
})
it('can parse response', () => {
const content = JSON.stringify([
{
seriesName: 'Vakre og ville Oman',
name: 'Vakre og ville Oman',
description:
'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
season: 1,
episode: 1,
genres: ['Dokumentar', 'Fakta', 'Natur'],
actors: ['Gergana Muskalla'],
director: 'Stefania Muller',
imagePackUri: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
broadcastedTime: '2025-01-13T23:00:00Z',
broadcastedTimeEnd: '2025-01-13T23:55:00Z'
}
])
const result = parser({ content }).map(p => {
p.start = dayjs(p.start).toISOString()
p.stop = dayjs(p.stop).toISOString()
return p
})
expect(result).toMatchObject([
{
title: 'Vakre og ville Oman',
sub_title: 'Vakre og ville Oman',
description:
'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
season: 1,
episode: 1,
category: ['Dokumentar', 'Fakta', 'Natur'],
actors: ['Gergana Muskalla'],
directors: 'Stefania Muller',
icon: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
start: '2025-01-13T23:00:00.000Z',
stop: '2025-01-13T23:55:00.000Z'
}
])
})
it('can handle empty guide', () => {
const result = parser({
content: '[]'
})
expect(result).toMatchObject([])
})
})