Merge pull request #2566 from fraudiay79/cyta.com.cy

Add cyta.com.cy
This commit is contained in:
PopeyeTheSai10r 2025-01-04 07:55:03 -08:00 committed by GitHub
commit 82f6fc114b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 5742 additions and 0 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8"?>
<channels>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="1945">CNN</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="2001">Sky News</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="2221">Vergina TV</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="2266">Cartoonito</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="2374">Cartoon Network</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="2394">Disney Channel</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="2491">Motorvision</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="2498">Nickelodeon</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="2743">Baby TV</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="2755">FOX HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="2767">History HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="2831">National Geographic Wild HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="2926">Disney Junior</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="206750">4E</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="211368">Al Jazeera</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="213706">BBC News</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="213719">Bloomberg</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="213775">Deutsche Welle</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="213814">E! Entertainment</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="213835">NBA TV</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="213889">France 24 (French)</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="213936">TV 5 Monde</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="216382">Fashion TV</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="216389">MTV 80s</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="216415">Novasports PrimeHD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="216459">National Geographic HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="216501">Novacinema 2 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="216582">Novacinema 1 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="216595">FOX life HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="216630">Βουλή Ελλήνων</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="218874">TLC</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="218883">Novasports 2HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="289530">SIGMA TV</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="289542">ANT1 TV</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="289555">OMEGA</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="289568">PLUS TV</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="289607">Alpha Cyprus</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="349455">Euronews ENG</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="561066">RIK 1</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="561078">RIK 2</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="561166">Capital TV</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="561178">One Channel</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="561210">Smile TV</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="573851">Greek Cınema</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="573950">MAD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="573974">Euronews Ελληνικό</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="574035">MAD Viral</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="574094">Euronews (Russıan)</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="574124">MAD Greekζ</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="574264">ERT World</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="604956">Cytavision Sports1 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="607141">Movies Best HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="608096">RIK HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="4185119">Eurosport 1 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="5183085">Eurosport 2 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="6260715">Nova Christmas</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="8242808">Cytavision Sports3 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="8242848">Cytavision Sports2 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="8242862">Cytavision Sports4 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="8242886">Cytavision Sports5 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="8243873">Cytavision Sports6 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="9744271">Novacinema 4 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="9745267">Novacinema 3 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="9821917">BBC Earth HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="9821930">TCM HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="10963625">Novalife HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="10965536">Novasports 3 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="10965554">Novasports 4 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="10973069">Novasports 5 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="11762362">Mezzo Live HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="12253994">MTV Live SD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="13132700">Food Network HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="24654412">Cytavision Sports7 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="24745114">Cablenet Sports 1 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="24746908">Cablenet Sports 2 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="35973256">HGTV HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="38335692">Discovery Channel HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="38335714">Animal Planet HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="38335725">Investigation Discovery HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="39337317">Alpha Cyprus HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="46137467">Novasports 6 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="46137848">Novasports Start HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52027167">Novasportsextra1HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52027180">Novasportsextra4HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52027399">Novasportsextra2HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52027412">Novasportsextra3HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52098866">Cytavision Sports2 HD CMAF</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52101919">Cytavision Sports1 HD CMAF</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52101930">Cytavision Sports3 HD CMAF</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52103938">Cytavision Sports4 HD CMAF</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52103947">Cytavision Sports6 HD CMAF</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52105043">Cytavision Sports5 HD CMAF</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52105052">Cytavision Sports7 HD CMAF</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52187736">Cablenet Sports 1 HD CMAF</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52187749">Cablenet Sports 2 HD CMAF</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52196563">PPV1 CMAF</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52196572">PPV3 CMAF</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52196581">PPV5 CMAF</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52196745">PPV2 CMAF</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52196754">PPV4 CMAF</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="52196763">PPV6 CMAF</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="53005467">Cablenet Sports 3 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="54111184">OMEGA HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="54111209">CVSPORTS UHD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="54111722">Premier League</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="54184415">ANT1 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="55844755">Current Time HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="56063885">CCTV 4E</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="56064497">CGTN</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="57944046">CGTN Documentary</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="66620028">CVSPORTS Multiview</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="71037984">Bloomberg TV+</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="71037999">Bloomberg Original</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="74516237">Cytavision Sports8 HD</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="75835625">OMONOIA TV</channel>
<channel site="cyta.com.cy" lang="el" xmltv_id="" site_id="77956035">Cytavision Sports8 HD CMAF</channel>
</channels>

View file

@ -0,0 +1,60 @@
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const timezone = require('dayjs/plugin/timezone')
const customParseFormat = require('dayjs/plugin/customParseFormat')
const cheerio = require('cheerio')
dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.extend(customParseFormat)
module.exports = {
site: 'cyta.com.cy',
days: 7,
request: {
cache: {
ttl: 60 * 60 * 1000 // 1 hour
}
},
url: function ({date, channel}) {
// Get the epoch timestamp
const todayEpoch = date.startOf('day').utc().valueOf()
// Get the epoch timestamp for the next day
const nextDayEpoch = date.add(1, 'day').startOf('day').utc().valueOf()
return `https://epg.cyta.com.cy/api/mediacatalog/fetchEpg?startTimeEpoch=${todayEpoch}&endTimeEpoch=${nextDayEpoch}&language=1&channelIds=${channel.site_id}`
},
parser: function ({content}) {
const data = JSON.parse(content)
const programs = []
data.channelEpgs.forEach(channel => {
channel.epgPlayables.forEach(epg => {
const start = new Date(epg.startTime).toISOString();
const stop = new Date(epg.endTime).toISOString();
programs.push({
title: epg.name,
start,
stop
})
})
})
return programs
},
async channels() {
const axios = require('axios')
const data = await axios
.get(`https://epg.cyta.com.cy/api/mediacatalog/fetchChannels?language=1`)
.then(r => r.data)
.catch(console.log)
return data.channels.map(item => {
return {
lang: 'el',
site_id: item.id,
name: item.name
}
})
}
}

View file

@ -0,0 +1,53 @@
const { url, parser } = require('./cyta.com.cy.config.js')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const customParseFormat = require('dayjs/plugin/customParseFormat')
dayjs.extend(utc)
dayjs.extend(customParseFormat)
const date = dayjs.utc('2025-01-03', 'YYYY-MM-DD').startOf('day')
const channel = {
site_id: '561066',
xmltv_id: 'RIK1.cy'
}
it('can generate valid url', () => {
const generatedUrl = url({ date, channel })
expect(generatedUrl).toBe(
'https://epg.cyta.com.cy/api/mediacatalog/fetchEpg?startTimeEpoch=1735862400000&endTimeEpoch=1735948800000&language=1&channelIds=561066'
)
})
it('can parse response', () => {
const content = `
{
"channelEpgs": [
{
"epgPlayables": [
{ "name": "Πρώτη Ενημέρωση", "startTime": 1735879500000, "endTime": 1735889400000 }
]
}
]
}`
const result = parser({ content }).map(p => {
p.start = p.start
p.stop = p.stop
return p
})
expect(result).toMatchObject([
{
title: 'Πρώτη Ενημέρωση',
start: '2025-01-03T04:45:00.000Z',
stop: '2025-01-03T07:30:00.000Z'
}
])
})
it('can handle empty guide', () => {
const result = parser({
content: '{"channelEpgs":[]}'
})
expect(result).toMatchObject([])
})

View file

@ -0,0 +1,21 @@
# cyta.com.cy
https://epg.cyta.com.cy/tv-guide/el
### Download the guide
```sh
npm run grab --- --site=cyta.com.cy
```
### Update channel list
```sh
npm run channels:parse --- --config=./sites/cyta.com.cy/cyta.com.cy.config.js --output=./sites/cyta.com.cy/cyta.com.cy.channels.xml
```
### Test
```sh
npm test --- cyta.com.cy
```