From c49e276b33221eb5a2ab59aa79b4cce598aee8f6 Mon Sep 17 00:00:00 2001
From: theofficialomega <30985701+BellezaEmporium@users.noreply.github.com>
Date: Thu, 19 Feb 2026 17:55:39 +0100
Subject: [PATCH] stod2 -> syn.is
---
sites/stod2.is/readme.md | 21 ---
.../__data__/content.json | 0
sites/syn.is/readme.md | 21 +++
.../syn.is.channels.xml} | 32 ++---
.../syn.is.config.js} | 134 +++++++++---------
.../syn.is.test.js} | 92 ++++++------
6 files changed, 150 insertions(+), 150 deletions(-)
delete mode 100644 sites/stod2.is/readme.md
rename sites/{stod2.is => syn.is}/__data__/content.json (100%)
create mode 100644 sites/syn.is/readme.md
rename sites/{stod2.is/stod2.is.channels.xml => syn.is/syn.is.channels.xml} (98%)
rename sites/{stod2.is/stod2.is.config.js => syn.is/syn.is.config.js} (95%)
rename sites/{stod2.is/stod2.is.test.js => syn.is/syn.is.test.js} (97%)
diff --git a/sites/stod2.is/readme.md b/sites/stod2.is/readme.md
deleted file mode 100644
index 0a37bda4..00000000
--- a/sites/stod2.is/readme.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# 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
-```
diff --git a/sites/stod2.is/__data__/content.json b/sites/syn.is/__data__/content.json
similarity index 100%
rename from sites/stod2.is/__data__/content.json
rename to sites/syn.is/__data__/content.json
diff --git a/sites/syn.is/readme.md b/sites/syn.is/readme.md
new file mode 100644
index 00000000..d7a02f6c
--- /dev/null
+++ b/sites/syn.is/readme.md
@@ -0,0 +1,21 @@
+# syn.is
+
+https://www.syn.is/sjonvarp/dagskra
+
+### Download the guide
+
+```sh
+npm run grab --- --site=syn.is
+```
+
+### Update channel list
+
+```sh
+npm run channels:parse --- --config=./sites/syn.is/syn.is.config.js --output=./sites/syn.is/syn.is.channels.xml
+```
+
+### Test
+
+```sh
+npm test --- syn.is
+```
diff --git a/sites/stod2.is/stod2.is.channels.xml b/sites/syn.is/syn.is.channels.xml
similarity index 98%
rename from sites/stod2.is/stod2.is.channels.xml
rename to sites/syn.is/syn.is.channels.xml
index 1126c898..8b2d86ac 100644
--- a/sites/stod2.is/stod2.is.channels.xml
+++ b/sites/syn.is/syn.is.channels.xml
@@ -1,16 +1,16 @@
-
-
-
-
-
- Stöð 2 Sport
- Stöð 2 Sport 2
- Stöð 2 Sport 3
- Stöð 2 Sport 4
- Stöð 2 Sport 5
- Stöð 2 Sport 6
-
-
-
-
-
+
+
+
+
+
+ Stöð 2 Sport
+ Stöð 2 Sport 2
+ Stöð 2 Sport 3
+ Stöð 2 Sport 4
+ Stöð 2 Sport 5
+ Stöð 2 Sport 6
+
+
+
+
+
diff --git a/sites/stod2.is/stod2.is.config.js b/sites/syn.is/syn.is.config.js
similarity index 95%
rename from sites/stod2.is/stod2.is.config.js
rename to sites/syn.is/syn.is.config.js
index c3e84236..7a575b49 100644
--- a/sites/stod2.is/stod2.is.config.js
+++ b/sites/syn.is/syn.is.config.js
@@ -1,67 +1,67 @@
-const dayjs = require('dayjs')
-const utc = require('dayjs/plugin/utc')
-const axios = require('axios')
-
-dayjs.extend(utc)
-
-module.exports = {
- site: 'syn.is',
- days: 7,
- request: {
- cache: {
- ttl: 60 * 60 * 1000 // 1 hour
- }
- },
- url({ channel, date }) {
- return `https://www.syn.is/api/epg/${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://www.syn.is/api/epg/')
- 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: 'syn.is',
+ days: 7,
+ request: {
+ cache: {
+ ttl: 60 * 60 * 1000 // 1 hour
+ }
+ },
+ url({ channel, date }) {
+ return `https://www.syn.is/api/epg/${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://www.syn.is/api/epg/')
+ 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 []
+ }
+ }
+}
diff --git a/sites/stod2.is/stod2.is.test.js b/sites/syn.is/syn.is.test.js
similarity index 97%
rename from sites/stod2.is/stod2.is.test.js
rename to sites/syn.is/syn.is.test.js
index b16bb5eb..068d58aa 100644
--- a/sites/stod2.is/stod2.is.test.js
+++ b/sites/syn.is/syn.is.test.js
@@ -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://www.syn.is/api/epg/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://www.syn.is/api/epg/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([])
+})