@livetv-app/epgdata
Version:
64 lines (63 loc) • 2.23 kB
JavaScript
;
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;