From a817dabb0276044886d6a98c71fe6efc6708a2c3 Mon Sep 17 00:00:00 2001 From: Toha Date: Wed, 22 Apr 2026 10:06:26 +0700 Subject: [PATCH] Site indihometv.com is retired. Signed-off-by: Toha --- sites/indihometv.com/__data__/content.html | 1 - sites/indihometv.com/__data__/no_content.html | 1 - .../indihometv.com.channels.xml | 131 ------------------ sites/indihometv.com/indihometv.com.config.js | 92 ------------ sites/indihometv.com/indihometv.com.test.js | 57 -------- sites/indihometv.com/readme.md | 23 --- 6 files changed, 305 deletions(-) delete mode 100644 sites/indihometv.com/__data__/content.html delete mode 100644 sites/indihometv.com/__data__/no_content.html delete mode 100644 sites/indihometv.com/indihometv.com.channels.xml delete mode 100644 sites/indihometv.com/indihometv.com.config.js delete mode 100644 sites/indihometv.com/indihometv.com.test.js delete mode 100644 sites/indihometv.com/readme.md diff --git a/sites/indihometv.com/__data__/content.html b/sites/indihometv.com/__data__/content.html deleted file mode 100644 index 9feda34de..000000000 --- a/sites/indihometv.com/__data__/content.html +++ /dev/null @@ -1 +0,0 @@ -
\ No newline at end of file diff --git a/sites/indihometv.com/__data__/no_content.html b/sites/indihometv.com/__data__/no_content.html deleted file mode 100644 index 6fedfd4c7..000000000 --- a/sites/indihometv.com/__data__/no_content.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/sites/indihometv.com/indihometv.com.channels.xml b/sites/indihometv.com/indihometv.com.channels.xml deleted file mode 100644 index 85d06ca99..000000000 --- a/sites/indihometv.com/indihometv.com.channels.xml +++ /dev/null @@ -1,131 +0,0 @@ - - - ABC Australia - Asian Food Network - Aljazeera - AlQuran Kareem - Animal Planet - Animax - Aniplus - Antara - ANTV - Arirang - ATV - AXN - Bali TV - SPOTV - SPOTV 2 - BTV - Bioskop Indonesia - Bloomberg - Rock Entertainment - Rock Action - Cartoonito - Cartoon Network - CCTV4 - Citra Drama - Celestial Movie - CGTN Documentary - Chinese Drama - Cinema World - Citra Dangdut - CNBC Asia - CNBC Indonesia - CNN Indonesia - CNN International - Crime Investigation - Curiosity - Daai TV - Da Vinci Learning - Discovery Channel - Discovery Asia - Dreamworks - Dunia anak - Dunia Lain - DW (English) - Euronews - FashionTV - Fight Sport - Flik - France 24 - Galaxy - Galaxy Premium - HGTV - History - Hits - HIts Movie - HITS Now - Horee - Horizon Sports - Berita Satu - IDX - IMC - FunPlanet - Indosiar - iNews - JakTV - Jawa Pos TV - JTV - KBS World - Kix - Kompas TV - Kplus - Lifetime - Love Nature - Maxstream - Mentari TV - Metro TV - SINDO News TV - Moonbug - MQTV - MTATV - MTV Live - Muhammadiyah TV - MUI TV - Musik Indonesia - MyKidz - NBA - MDTV - News Asia - New Tv Comprehensive - New Tv Finance - New Tv Variety - nhk world Japan - Nickelodeon - Nick Junior - Nusantara TV - MOJI - Phoenix Chinese - Phoenix InfoNews - Prambors - Rodja TV - Rajawali TV - SCTV - Shenzen - SONE - Studio Universal - Tawaf TV - Thrill - TLC - Trans7 - TransTV - TV5Monde - TV9 NU - TVBS News - TVN - TVN Movies - TV One - TVRI Nasional - UChannel - AllPlay Ent - Warner - ZBioskop - Zhejiang - GTV - MNCTV - RCTI - RT - TVRI World - BBC World News - CBeebies - diff --git a/sites/indihometv.com/indihometv.com.config.js b/sites/indihometv.com/indihometv.com.config.js deleted file mode 100644 index cf943af82..000000000 --- a/sites/indihometv.com/indihometv.com.config.js +++ /dev/null @@ -1,92 +0,0 @@ -const cheerio = require('cheerio') -const dayjs = require('dayjs') -const utc = require('dayjs/plugin/utc') -const timezone = require('dayjs/plugin/timezone') -const customParseFormat = require('dayjs/plugin/customParseFormat') - -dayjs.extend(utc) -dayjs.extend(timezone) -dayjs.extend(customParseFormat) - -const tz = 'Asia/Jakarta' - -module.exports = { - site: 'indihometv.com', - days: 2, - url({ channel }) { - return `https://www.indihometv.com/livetv/${channel.site_id}` - }, - parser({ content, date }) { - const programs = [] - const [$, items] = parseItems(content, date) - items.forEach(item => { - const prev = programs[programs.length - 1] - const $item = $(item) - let start = parseStart($item, date) - if (prev && start.isBefore(prev.start)) { - start = start.add(1, 'd') - date = date.add(1, 'd') - } - let stop = parseStop($item, date) - if (stop.isBefore(start)) { - stop = stop.add(1, 'd') - date = date.add(1, 'd') - } - programs.push({ - title: parseTitle($item), - start, - stop - }) - }) - - return programs - }, - async channels() { - const axios = require('axios') - const cheerio = require('cheerio') - const data = await axios - .get('https://www.indihometv.com/tv/live') - .then(response => response.data) - .catch(console.error) - - const $ = cheerio.load(data) - const items = $('#channelContainer a.channel-item').toArray() - const channels = items.map(item => { - const $item = $(item) - - return { - lang: 'id', - site_id: $item.data('url').substr($item.data('url').lastIndexOf('/') + 1), - name: $item.data('name') - } - }) - - return channels - } -} - -function parseStart($item, date) { - 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', tz) -} - -function parseStop($item, date) { - 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', tz) -} - -function parseTitle($item) { - return $item.find('b').text() -} - -function parseItems(content, date) { - const $ = cheerio.load(content) - - return [$, $(`#pills-${date.format('YYYY-MM-DD')} .schedule-item`).toArray()] -} diff --git a/sites/indihometv.com/indihometv.com.test.js b/sites/indihometv.com/indihometv.com.test.js deleted file mode 100644 index d84c0c24e..000000000 --- a/sites/indihometv.com/indihometv.com.test.js +++ /dev/null @@ -1,57 +0,0 @@ -const { parser, url } = require('./indihometv.com.config.js') -const fs = require('fs') -const path = require('path') -const dayjs = require('dayjs') -const utc = require('dayjs/plugin/utc') -dayjs.extend(utc) - -const date = dayjs.utc('2022-08-08').startOf('d') -const channel = { - site_id: 'metrotv', - xmltv_id: 'MetroTV.id' -} - -it('can generate valid url', () => { - expect(url({ channel })).toBe('https://www.indihometv.com/livetv/metrotv') -}) - -it('can parse response', () => { - const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.html'), 'utf8') - const result = parser({ content, channel, date }).map(p => { - p.start = p.start.toJSON() - p.stop = p.stop.toJSON() - return p - }) - - expect(result).toMatchObject([ - { - title: 'Headline News', - start: '2022-08-08T00:00:00.000Z', - stop: '2022-08-08T00:05:00.000Z' - }, - { - title: 'Editorial Media Indonesia', - start: '2022-08-08T00:05:00.000Z', - stop: '2022-08-08T00:30:00.000Z' - }, - { - title: 'Editorial Media Indonesia', - start: '2022-08-08T00:30:00.000Z', - stop: '2022-08-08T00:45:00.000Z' - }, - { - title: 'Editorial Media Indonesia', - start: '2022-08-08T00:45:00.000Z', - stop: '2022-08-08T01:00:00.000Z' - } - ]) -}) - -it('can handle empty guide', () => { - const result = parser({ - date, - channel, - content: fs.readFileSync(path.resolve(__dirname, '__data__/no_content.html'), 'utf8') - }) - expect(result).toMatchObject([]) -}) diff --git a/sites/indihometv.com/readme.md b/sites/indihometv.com/readme.md deleted file mode 100644 index ccced056c..000000000 --- a/sites/indihometv.com/readme.md +++ /dev/null @@ -1,23 +0,0 @@ -# indihometv.com - -https://www.indihometv.com/ - -### Download the guide - -```sh -npm run grab --- --sites=indihometv.com -``` - -**NOTE:** Requests from some regions may return a "Connection timeout" error (https://check-host.net/check-report/13a843e2ke22). - -### Update channel list - -```sh -npm run channels:parse --- --config=./sites/indihometv.com/indihometv.com.config.js --output=./sites/indihometv.com/indihometv.com.channels.xml -``` - -### Test - -```sh -npm test --- indihometv.com -```