Replace LF line endings with CRLF

This commit is contained in:
freearhey
2025-09-28 17:55:05 +03:00
parent efc74efcf8
commit b6a589c62a
1192 changed files with 445631 additions and 445631 deletions

View File

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

View File

@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<channels>
<channel site="stod2.is" lang="is" xmltv_id="Stod2.is" site_id="stod2">Stöð 2</channel>
<channel site="stod2.is" lang="is" xmltv_id="Stod2Fjolskylda.is" site_id="stod3">Stöð 2 Fjölskylda</channel>
<channel site="stod2.is" lang="is" xmltv_id="Stod2Sport.is" site_id="sport">Stöð 2 Sport</channel>
<channel site="stod2.is" lang="is" xmltv_id="Stod2Sport2.is" site_id="sport2">Stöð 2 Sport 2</channel>
<channel site="stod2.is" lang="is" xmltv_id="Stod2Sport3.is" site_id="sport3">Stöð 2 Sport 3</channel>
<channel site="stod2.is" lang="is" xmltv_id="Stod2Sport4.is" site_id="sport4">Stöð 2 Sport 4</channel>
<channel site="stod2.is" lang="is" xmltv_id="Stod2Sport5.is" site_id="golfstodin">Stöð 2 Sport 5</channel>
<channel site="stod2.is" lang="is" xmltv_id="Stod2Sport6.is" site_id="sport6">Stöð 2 Sport 6</channel>
<channel site="stod2.is" lang="is" xmltv_id="" site_id="besta01">Besta01</channel>
<channel site="stod2.is" lang="is" xmltv_id="" site_id="besta02">Besta02</channel>
<channel site="stod2.is" lang="is" xmltv_id="" site_id="besta03">Besta03</channel>
<channel site="stod2.is" lang="is" xmltv_id="" site_id="vodasport">Vodafone Sport</channel>
</channels>
<?xml version="1.0" encoding="UTF-8"?>
<channels>
<channel site="stod2.is" lang="is" xmltv_id="Stod2.is" site_id="stod2">Stöð 2</channel>
<channel site="stod2.is" lang="is" xmltv_id="Stod2Fjolskylda.is" site_id="stod3">Stöð 2 Fjölskylda</channel>
<channel site="stod2.is" lang="is" xmltv_id="Stod2Sport.is" site_id="sport">Stöð 2 Sport</channel>
<channel site="stod2.is" lang="is" xmltv_id="Stod2Sport2.is" site_id="sport2">Stöð 2 Sport 2</channel>
<channel site="stod2.is" lang="is" xmltv_id="Stod2Sport3.is" site_id="sport3">Stöð 2 Sport 3</channel>
<channel site="stod2.is" lang="is" xmltv_id="Stod2Sport4.is" site_id="sport4">Stöð 2 Sport 4</channel>
<channel site="stod2.is" lang="is" xmltv_id="Stod2Sport5.is" site_id="golfstodin">Stöð 2 Sport 5</channel>
<channel site="stod2.is" lang="is" xmltv_id="Stod2Sport6.is" site_id="sport6">Stöð 2 Sport 6</channel>
<channel site="stod2.is" lang="is" xmltv_id="" site_id="besta01">Besta01</channel>
<channel site="stod2.is" lang="is" xmltv_id="" site_id="besta02">Besta02</channel>
<channel site="stod2.is" lang="is" xmltv_id="" site_id="besta03">Besta03</channel>
<channel site="stod2.is" lang="is" xmltv_id="" site_id="vodasport">Vodafone Sport</channel>
</channels>

View File

@@ -1,67 +1,67 @@
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const axios = require('axios')
dayjs.extend(utc)
module.exports = {
site: 'stod2.is',
days: 7,
request: {
cache: {
ttl: 60 * 60 * 1000 // 1 hour
}
},
url({ channel, date }) {
return `https://api.stod2.is/dagskra/api/${channel.site_id}/${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.upphaf)
const stop = start.add(item.slott, 'm')
programs.push({
title: item.isltitill,
sub_title: item.undirtitill,
description: item.lysing,
actors: item.adalhlutverk,
directors: item.leikstjori,
start,
stop
})
})
}
return programs
},
async channels() {
try {
const response = await axios.get('https://api.stod2.is/dagskra/api')
if (!response.data || !Array.isArray(response.data)) {
console.error('Error: No channels data found')
return []
}
return response.data.map(item => {
return {
lang: 'is',
site_id: item
}
})
} 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: 'stod2.is',
days: 7,
request: {
cache: {
ttl: 60 * 60 * 1000 // 1 hour
}
},
url({ channel, date }) {
return `https://api.stod2.is/dagskra/api/${channel.site_id}/${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.upphaf)
const stop = start.add(item.slott, 'm')
programs.push({
title: item.isltitill,
sub_title: item.undirtitill,
description: item.lysing,
actors: item.adalhlutverk,
directors: item.leikstjori,
start,
stop
})
})
}
return programs
},
async channels() {
try {
const response = await axios.get('https://api.stod2.is/dagskra/api')
if (!response.data || !Array.isArray(response.data)) {
console.error('Error: No channels data found')
return []
}
return response.data.map(item => {
return {
lang: 'is',
site_id: item
}
})
} catch (error) {
console.error('Error fetching channels:', error)
return []
}
}
}

View File

@@ -1,46 +1,46 @@
const { parser, url } = require('./stod2.is.config.js')
const fs = require('fs')
const path = require('path')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const customParseFormat = require('dayjs/plugin/customParseFormat')
const timezone = require('dayjs/plugin/timezone')
dayjs.extend(utc)
dayjs.extend(customParseFormat)
dayjs.extend(timezone)
const date = dayjs.utc('2025-01-03', 'YYYY-MM-DD').startOf('day')
const channel = { site_id: 'stod2', xmltv_id: 'Stod2.is' }
it('can generate valid url', () => {
const generatedUrl = url({ date, channel })
expect(generatedUrl).toBe('https://api.stod2.is/dagskra/api/stod2/2025-01-03')
})
it('can parse response', () => {
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json'))
const result = parser({ content }).map(p => {
p.start = p.start.toISOString()
p.stop = p.stop.toISOString()
return p
})
expect(result).toMatchObject([
{
title: 'Heimsókn',
sub_title: 'Telma Borgþórsdóttir',
description:
'Frábærir þættir með Sindra Sindrasyni sem lítur inn hjá íslenskum fagurkerum. Heimilin eru jafn ólík og þau eru mörg en eiga það þó eitt sameiginlegt að vera sett saman af alúð og smekklegheitum. Sindri hefur líka einstakt lag á að ná fram því besta í viðmælendum sínum.',
actors: '',
directors: '',
start: '2025-01-03T08:00:00.000Z',
stop: '2025-01-03T08:15:00.000Z'
}
])
})
it('can handle empty guide', () => {
const result = parser({ content: '[]' })
expect(result).toMatchObject([])
})
const { parser, url } = require('./stod2.is.config.js')
const fs = require('fs')
const path = require('path')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const customParseFormat = require('dayjs/plugin/customParseFormat')
const timezone = require('dayjs/plugin/timezone')
dayjs.extend(utc)
dayjs.extend(customParseFormat)
dayjs.extend(timezone)
const date = dayjs.utc('2025-01-03', 'YYYY-MM-DD').startOf('day')
const channel = { site_id: 'stod2', xmltv_id: 'Stod2.is' }
it('can generate valid url', () => {
const generatedUrl = url({ date, channel })
expect(generatedUrl).toBe('https://api.stod2.is/dagskra/api/stod2/2025-01-03')
})
it('can parse response', () => {
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json'))
const result = parser({ content }).map(p => {
p.start = p.start.toISOString()
p.stop = p.stop.toISOString()
return p
})
expect(result).toMatchObject([
{
title: 'Heimsókn',
sub_title: 'Telma Borgþórsdóttir',
description:
'Frábærir þættir með Sindra Sindrasyni sem lítur inn hjá íslenskum fagurkerum. Heimilin eru jafn ólík og þau eru mörg en eiga það þó eitt sameiginlegt að vera sett saman af alúð og smekklegheitum. Sindri hefur líka einstakt lag á að ná fram því besta í viðmælendum sínum.',
actors: '',
directors: '',
start: '2025-01-03T08:00:00.000Z',
stop: '2025-01-03T08:15:00.000Z'
}
])
})
it('can handle empty guide', () => {
const result = parser({ content: '[]' })
expect(result).toMatchObject([])
})