Update foxtel.com.au.config.js

This commit is contained in:
freearhey
2026-04-18 07:32:08 +03:00
parent bf8f00c0d2
commit 3a282f5108

View File

@@ -14,10 +14,11 @@ module.exports = {
headers: { headers: {
'Accept-Language': 'en-US,en;', 'Accept-Language': 'en-US,en;',
Cookie: 'AAMC_foxtel_0=REGION|7', Cookie: 'AAMC_foxtel_0=REGION|7',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' 'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
} }
}, },
parser: function ({ content, date }) { async parser({ content, date }) {
let programs = [] let programs = []
const items = parseItems(content) const items = parseItems(content)
for (let item of items) { for (let item of items) {
@@ -32,9 +33,18 @@ module.exports = {
prev.stop = start prev.stop = start
} }
const stop = start.add(30, 'm') const stop = start.add(30, 'm')
const programId = parseProgramId($item)
const details = await loadProgramDetails(programId)
let description
if (details) {
description = parseDescription(details)
}
programs.push({ programs.push({
title: parseTitle($item), title: parseTitle($item),
sub_title: parseSubTitle($item), sub_title: parseSubTitle($item),
description,
image: parseImage($item), image: parseImage($item),
rating: parseRating($item), rating: parseRating($item),
season: parseSeason($item), season: parseSeason($item),
@@ -72,6 +82,34 @@ module.exports = {
} }
} }
function parseProgramId($item) {
const href = $item('*').attr('href')
return href.split('/')[1]
}
async function loadProgramDetails(programId) {
if (!programId) return {}
return await axios
.get(
`https://www.foxtel.com.au/webepg/ws/foxtel/event/${programId}?movieHeight=213&tvShowHeight=213&regionId=8336`,
{
headers: {
'sec-fetch-dest': 'empty',
'sec-fetch-site': 'same-origin',
'User-Agent': 'insomnia/2022.7.5'
}
}
)
.then(r => r.data)
.catch(console.log)
}
function parseDescription(details) {
return details?.event?.shortSynopsis
}
function parseSeason($item) { function parseSeason($item) {
let seasonString = $item('.epg-event-description > div > abbr:nth-child(1)').attr('title') let seasonString = $item('.epg-event-description > div > abbr:nth-child(1)').attr('title')
if (!seasonString) return null if (!seasonString) return null
@@ -118,9 +156,9 @@ function parseRating($item) {
return rating return rating
? { ? {
system: 'ACB', system: 'ACB',
value: rating value: rating
} }
: null : null
} }