UNPKG

@livetv-app/epgdata

Version:
64 lines (63 loc) 2.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getNextProgrammeTime = exports.getPreviousProgrammeTime = exports.getProgrammeAtTime = void 0; function getProgrammeAtTime(time, programmes, channel) { if (typeof channel === 'object') channel = channel.id; const time_ms = time.getTime(); let now = null; let now_start = 0; for (const programme of programmes) { if (channel && programme.channel !== channel) continue; if (programme.end.getTime() <= time_ms) continue; const start = programme.start.getTime(); if (start > time_ms) continue; if (!now || now_start < start) now = programme, now_start = start; } return now; } exports.getProgrammeAtTime = getProgrammeAtTime; function getPreviousProgrammeTime(time, programmes, channel) { if (typeof channel === 'object') channel = channel.id; const time_ms = time.getTime(); let prev = null; let prev_end = 0; for (const programme of programmes) { if (channel && programme.channel !== channel) continue; if (programme.start.getTime() > time_ms) continue; const end = programme.end.getTime(); if (end > time_ms) continue; if (!prev || prev_end < end) prev = programme, prev_end = end; } return prev ? new Date(prev_end - 60000) : null; } exports.getPreviousProgrammeTime = getPreviousProgrammeTime; function getNextProgrammeTime(time, programmes, channel) { if (typeof channel === 'object') channel = channel.id; const time_ms = time.getTime(); let next = null; let next_start = 0; for (const programme of programmes) { if (channel && programme.channel !== channel) continue; if (programme.end.getTime() <= time_ms) continue; const start = programme.start.getTime(); if (start <= time_ms) continue; if (!next || next_start > start) next = programme, next_start = start; } return next ? new Date(next_start + 60000) : null; } exports.getNextProgrammeTime = getNextProgrammeTime;