From 2d03b36bb30ae004c902bdd0517d05ca2e0a2568 Mon Sep 17 00:00:00 2001 From: Toha Date: Sat, 23 Nov 2024 22:41:34 +0700 Subject: [PATCH 1/2] Update indihometv.com guide. Signed-off-by: Toha --- .../indihometv.com.channels.xml | 46 ++++++++----------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/sites/indihometv.com/indihometv.com.channels.xml b/sites/indihometv.com/indihometv.com.channels.xml index 2a8316a6..eac573d6 100644 --- a/sites/indihometv.com/indihometv.com.channels.xml +++ b/sites/indihometv.com/indihometv.com.channels.xml @@ -1,35 +1,26 @@ - Antara - Flik - I-Konser - Kungfu TV - Maxstream - Musik Indonesia - Prambors - UseeSports - UseeSports2 ABC Australia Aljazeera Animal Planet Animax Aniplus + Antara ANTV Arirang Asian Food Network ATV AXN Bali TV - beIN Sports 1 - beIN Sports 3 Bioskop Indonesia Bloomberg BTV - Boomerang + Cartoonito Cartoon Network CCTV4 Celestial Movie CGTN Documentary + Chinese Drama Cinema World Citra Dangdut Citra Drama @@ -39,7 +30,6 @@ CNN Indonesia CNN International Crime Investigation - CTI Asia Curiosity Daai TV Da Vinci Learning @@ -50,16 +40,13 @@ Dunia Lain DW (English) Eat & Go - EBC Asia Euronews FashionTV Fight Sport + Flik France 24 - Formosa Galaxy Galaxy Premium - SGEM - GTV HGTV History Hits @@ -67,14 +54,16 @@ HITS Now Horee Horizon Sports + I-Konser + IDTV IDX IMC FunPlanet Indonesiana TV Indosiar iNews - Panda TV JakTV + Jawa Pos TV JTV KBS World Kix @@ -83,28 +72,32 @@ Lifetime Lingua Love Nature + Maxstream Mentari TV Metro TV - MNC MOJI + Moonbug MQTV + MTATV MTV Live - My Cinema - My Cinema Asia - My Family + Musik Indonesia MyKidz NBA Net. + New Tv Comprehensive + New Tv Finance + New Tv Variety nhk world Japan Nickelodeon Nick Junior Insert Nusantara TV SONE - Paramount + Phoenix Chinese + Phoenix InfoNews + Prambors AlQuran Kareem Rajawali TV - RCTI Rock Entertainment Rock Action Rodja TV @@ -114,8 +107,9 @@ Seru! Shenzen SINDO News TV - SPOTV2 - SPOTV + SPOTV 2 + SPOTV + Studio Universal Tawaf TV Tech Storm Thrill From 1f8d82e8699cf85132783b3481790f392ff04858 Mon Sep 17 00:00:00 2001 From: Toha Date: Sun, 24 Nov 2024 03:22:08 +0700 Subject: [PATCH 2/2] Set fetch days to 2 days. In case of the date is behind current time zone, setting days to 1 day only yield previous day guide so it becomes expired. Signed-off-by: Toha --- sites/indihometv.com/indihometv.com.config.js | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/sites/indihometv.com/indihometv.com.config.js b/sites/indihometv.com/indihometv.com.config.js index b5456d8e..cf943af8 100644 --- a/sites/indihometv.com/indihometv.com.config.js +++ b/sites/indihometv.com/indihometv.com.config.js @@ -8,18 +8,20 @@ dayjs.extend(utc) dayjs.extend(timezone) dayjs.extend(customParseFormat) +const tz = 'Asia/Jakarta' + module.exports = { site: 'indihometv.com', - days: 1, + days: 2, url({ channel }) { return `https://www.indihometv.com/livetv/${channel.site_id}` }, parser({ content, date }) { const programs = [] - const items = parseItems(content, date) + const [$, items] = parseItems(content, date) items.forEach(item => { const prev = programs[programs.length - 1] - const $item = cheerio.load(item) + const $item = $(item) let start = parseStart($item, date) if (prev && start.isBefore(prev.start)) { start = start.add(1, 'd') @@ -64,27 +66,27 @@ module.exports = { } function parseStart($item, date) { - const timeString = $item('p').text() + const timeString = $item.find('p').text() const [, start] = timeString.match(/(\d{2}:\d{2}) -/) || [null, null] const dateString = `${date.format('YYYY-MM-DD')} ${start}` - return dayjs.tz(dateString, 'YYYY-MM-DD HH:mm', 'Asia/Jakarta') + return dayjs.tz(dateString, 'YYYY-MM-DD HH:mm', tz) } function parseStop($item, date) { - const timeString = $item('p').text() + const timeString = $item.find('p').text() const [, stop] = timeString.match(/- (\d{2}:\d{2})/) || [null, null] const dateString = `${date.format('YYYY-MM-DD')} ${stop}` - return dayjs.tz(dateString, 'YYYY-MM-DD HH:mm', 'Asia/Jakarta') + return dayjs.tz(dateString, 'YYYY-MM-DD HH:mm', tz) } function parseTitle($item) { - return $item('b').text() + return $item.find('b').text() } function parseItems(content, date) { const $ = cheerio.load(content) - return $(`#pills-${date.format('YYYY-MM-DD')} .schedule-item`).toArray() + return [$, $(`#pills-${date.format('YYYY-MM-DD')} .schedule-item`).toArray()] }