Update Init

This commit is contained in:
CyberPoison committed 2026-01-24 03:31:40 +01:00
1 parent 57a82236f5
commit 4434f6f5a3
3 files changed
+98 -26

No files matched your search

+67 -1
View File
@@ -1 +1,67 @@
[{"CoreId":"2023121151009543","AssetId":"EPGE2023121151009543","ContentId":"epg@2023121151009543","ProgramId":"3011502","AggregatorId":"2967456","DateFullEventId":"2023121151009543","GridItemsLink":"/v2/browse/epg@2023121151009543/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121151009543/PlayListTray/items","UtcDateTimeStart":"2023-12-11T16:30:00Z","UtcDateTimeEnd":"2023-12-11T17:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Village Vets","SubTitle":"","RatingDisplay":"NC","GenreDisplay":"Reality TV","SeriesId":"142241","Description":"A história de dois melhores amigos veterinários e o seu extraordinário trabalho na Austrália.","ReleaseYear":"2014","Rating":0,"Season":1,"Episode":12,"Duration":30,"ProgramId":3011502,"AggregatorId":2967456,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"8329ed1aec5d4c0faa2056972256ff9f","Url":"http://vip.pam.local.internal/PAM.Images/Store/8329ed1aec5d4c0faa2056972256ff9f","Type":1}]},{"CoreId":"2023121151009544","AssetId":"EPGE2023121151009544","ContentId":"epg@2023121151009544","ProgramId":"3161537","AggregatorId":"2165665","DateFullEventId":"2023121151009544","GridItemsLink":"/v2/browse/epg@2023121151009544/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121151009544/PlayListTray/items","UtcDateTimeStart":"2023-12-11T17:00:00Z","UtcDateTimeEnd":"2023-12-11T18:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Histórias Clínicas","SubTitle":"Associações","RatingDisplay":"M12","GenreDisplay":"Saúde","SeriesId":"102905","Description":"Processo de Decisão Clínica.","ReleaseYear":"2018","Rating":80,"Season":7,"Episode":13,"Duration":60,"ProgramId":3161537,"AggregatorId":2165665,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"818dba4817a7464f9e8433620270b01d","Url":"http://vip.pam.local.internal/PAM.Images/Store/818dba4817a7464f9e8433620270b01d","Type":1}]},{"CoreId":"2023121151009545","AssetId":"EPGE2023121151009545","ContentId":"epg@2023121151009545","ProgramId":"3357379","AggregatorId":"2182966","DateFullEventId":"2023121151009545","GridItemsLink":"/v2/browse/epg@2023121151009545/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121151009545/PlayListTray/items","UtcDateTimeStart":"2023-12-11T18:00:00Z","UtcDateTimeEnd":"2023-12-11T19:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Corpo Clínico","SubTitle":"","RatingDisplay":"Todos","GenreDisplay":"Saúde","SeriesId":"103390","Description":"Farmacovigilância.","ReleaseYear":"2018","Rating":1,"Season":12,"Episode":5,"Duration":60,"ProgramId":3357379,"AggregatorId":2182966,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"a060ca5930444d3a864ad20615e7df33","Url":"http://vip.pam.local.internal/PAM.Images/Store/a060ca5930444d3a864ad20615e7df33","Type":1}]},{"CoreId":"2023121151009546","AssetId":"EPGE2023121151009546","ContentId":"epg@2023121151009546","ProgramId":"3364579","AggregatorId":"3161534","DateFullEventId":"2023121151009546","GridItemsLink":"/v2/browse/epg@2023121151009546/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121151009546/PlayListTray/items","UtcDateTimeStart":"2023-12-11T19:00:00Z","UtcDateTimeEnd":"2023-12-11T20:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Caixa de Pandora","SubTitle":"","RatingDisplay":"M12","GenreDisplay":"Talk-Show","SeriesId":"152921","Description":"Programa de 45 minutos, em estúdio, que reúne 4 mulheres de diversas idades e backgrounds que conversam todas as seLine truncated
[
{
"CoreId": "2026012313905035",
"AssetId": "EPGE2026012313905035",
"ContentId": "epg@2026012313905035",
"ProgramId": "3805166",
"AggregatorId": "2649043",
"DateFullEventId": "2026012313905035",
"GridItemsLink": "/v2/browse/epg@2026012313905035/grid/items",
"PlayListTrayItemLink": "/v1/contents/epg@2026012313905035/PlayListTray/items",
"DetailNodeItemNavLink": "/nodeitems/epg@2026012313905035/detail?context=schedule",
"UtcDateTimeStart": "2026-01-23T22:39:00Z",
"UtcDateTimeEnd": "2026-01-24T00:23:00Z",
"Type": 4,
"IsAdult": false,
"AiringChannel": {
"IsOnline": true,
"IsTimeWarpable": true,
"IsRestartable": true,
"ServiceId": "139",
"ChannelId": "5",
"AssetId": "EPGC139",
"Name": "RTP 1 HD",
"RatingDisplay": "M3",
"DvbLocator": "dvb://36.4E.1E79",
"Rating": 20,
"Position": 1,
"QualityVersion": 2,
"Images": [
{
"ImageId": "RTPHD.png",
"Type": 16,
"Url": "http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/RTPHD.png"
}
]
},
"Metadata": {
"Title": "Em Casa d'Amália",
"SubTitle": "",
"RatingDisplay": "M6",
"GenreDisplay": "Talk-Show",
"SeriesId": "124075",
"Description": "Que mais poderíamos pedir para o regresso deste programa, do que receber um dos poetas de Amália? Manuel Alegre, autor do icónico \"Trova do Vento que Passa\", estará connosco. A este raro momento, juntam-se também ilustres convidados: Paulo de Carvalho e o seu filho Agir, Rita Guerra e André Amaro...",
"ReleaseYear": "2025",
"Rating": 60,
"Season": 9,
"Episode": 15,
"Duration": 104,
"ProgramId": 3805166,
"AggregatorId": 2649043,
"IsNPVR": true,
"IsStartOver": true
},
"Images": [
{
"ImageId": "901d96a8f1534749b076212c296d821e",
"Type": 1,
"Url": "http://vip.pam.local.internal/PAM.Images/Store/901d96a8f1534749b076212c296d821e"
},
{
"ImageId": "4de2fbd7177c4e7c8cc9faf703b119b5",
"Type": 38,
"Url": "http://vip.pam.local.internal/PAM.Images/Store/4de2fbd7177c4e7c8cc9faf703b119b5"
}
]
}
]
+23 -14
View File
@@ -5,24 +5,33 @@ const utc = require('dayjs/plugin/utc')
dayjs.extend(utc)
const headers = {
'X-Apikey': 'xe1dgrShwdR1DVOKGmsj8Ut4QLlGyOFI',
'X-Core-Appversion': '2.20.0.3',
'X-Core-Contentratinglimit': '0',
'X-Core-Deviceid': '',
'X-Core-Devicetype': 'web',
Origin: 'https://nostv.pt',
'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
'accept': 'application/json, text/plain, */*',
'accept-language': 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7,pt;q=0.6,cs;q=0.5',
'cache-control': 'no-cache',
'origin': 'https://nostv.pt',
'pragma': 'no-cache',
'priority': 'u=1, i',
'referer': 'https://nostv.pt/',
'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
'sec-ch-ua-mobile': '?1',
'sec-ch-ua-platform': '"Android"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'cross-site',
'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
'x-apikey': 'xe1dgrShwdR1DVOKGmsj8Ut4QLlGyOFI',
'x-core-appversion': '2.20.2.2',
'x-core-contentratinglimit': '0',
'x-core-deviceid': '',
'x-core-devicetype': 'web',
'x-core-timezoneoffset': '3600000'
}
module.exports = {
site: 'nostv.pt',
days: 2,
url({ channel, date }) {
return `https://api.clg.nos.pt/nostv/ott/schedule/range/contents/guest?channels=${channel.site_id
}&minDate=${date.format('YYYY-MM-DD')}T00:00:00Z&maxDate=${date.format(
'YYYY-MM-DD'
)}T23:59:59Z&isDateInclusive=true&client_id=${headers['X-Apikey']}`
return `https://api.clg.nos.pt/nostv/ott/schedule/range/contents/guest?channels=${channel.site_id}&minDate=${date.format('YYYY-MM-DD')}T00:00:00Z&maxDate=${date.format('YYYY-MM-DD')}T23:59:59Z&isDateInclusive=true&client_id=${headers['x-apikey']}`
},
request: { headers },
parser({ content }) {
@@ -31,7 +40,7 @@ module.exports = {
const items = Array.isArray(content) ? content : JSON.parse(content)
items.forEach(item => {
const image = item.Images
? `https://mage.stream.nos.pt/mage/v1/Images?sourceUri=${item.Images[0].Url}&profile=ott_1_452x340&client_id=${headers['X-Apikey']}`
? `https://mage.stream.nos.pt/mage/v1/Images?sourceUri=${item.Images[0].Url}&profile=ott_1_452x340&client_id=${headers['x-apikey']}`
: null
programs.push({
title: item.Metadata?.Title,
@@ -54,7 +63,7 @@ module.exports = {
async channels() {
const result = await axios
.get(
`https://api.clg.nos.pt/nostv/ott/channels/guest?client_id=${headers['X-Apikey']}`,
`https://api.clg.nos.pt/nostv/ott/channels/guest?client_id=${headers['x-apikey']}`,
{ headers }
)
.then(r => r.data)
+8 -11
View File
@@ -28,20 +28,17 @@ it('can parse response', () => {
return p
})
const image = 'https://mage.stream.nos.pt/mage/v1/Images?sourceUri=http://vip.pam.local.internal/PAM.Images/Store/8329ed1aec5d4c0faa2056972256ff9f&profile=ott_1_452x340&client_id=xe1dgrShwdR1DVOKGmsj8Ut4QLlGyOFI'
expect(results[0]).toMatchObject({
start: '2023-12-11T16:30:00.000Z',
stop: '2023-12-11T17:00:00.000Z',
title: 'Village Vets',
description:
'A história de dois melhores amigos veterinários e o seu extraordinário trabalho na Austrália.',
season: 1,
episode: 12,
start: '2026-01-23T22:39:00.000Z',
stop: '2026-01-24T00:23:00.000Z',
title: 'Em Casa d\'Amália',
description: 'Que mais poderíamos pedir para o regresso deste programa, do que receber um dos poetas de Amália? Manuel Alegre, autor do icónico "Trova do Vento que Passa", estará connosco. A este raro momento, juntam-se também ilustres convidados: Paulo de Carvalho e o seu filho Agir, Rita Guerra e André Amaro...',
season: 9,
episode: 15,
icon: {
src: image
src: 'https://mage.stream.nos.pt/mage/v1/Images?sourceUri=http://vip.pam.local.internal/PAM.Images/Store/901d96a8f1534749b076212c296d821e&profile=ott_1_452x340&client_id=xe1dgrShwdR1DVOKGmsj8Ut4QLlGyOFI'
},
image
image: 'https://mage.stream.nos.pt/mage/v1/Images?sourceUri=http://vip.pam.local.internal/PAM.Images/Store/901d96a8f1534749b076212c296d821e&profile=ott_1_452x340&client_id=xe1dgrShwdR1DVOKGmsj8Ut4QLlGyOFI'
})
})