From 23bf7f79bc3f4dddea9da492701b8ad8f9edca67 Mon Sep 17 00:00:00 2001 From: Toha Date: Sat, 2 Dec 2023 16:40:01 +0700 Subject: [PATCH] Update mncvision.id. This update contains the following fix: - Fix cookie language logic - Update channels - Add readme Signed-off-by: Toha --- sites/mncvision.id/mncvision.id.config.js | 18 ++++++--- sites/mncvision.id/mncvision.id.test.js | 13 ++++--- .../mncvision.id/mncvision.id_en.channels.xml | 8 ++-- .../mncvision.id/mncvision.id_id.channels.xml | 8 ++-- sites/mncvision.id/readme.md | 37 +++++++++++++++++++ 5 files changed, 65 insertions(+), 19 deletions(-) create mode 100644 sites/mncvision.id/readme.md diff --git a/sites/mncvision.id/mncvision.id.config.js b/sites/mncvision.id/mncvision.id.config.js index 5dd8ccd0..8a791500 100644 --- a/sites/mncvision.id/mncvision.id.config.js +++ b/sites/mncvision.id/mncvision.id.config.js @@ -34,8 +34,10 @@ module.exports = { const headers = { 'Content-Type': 'application/x-www-form-urlencoded' } - if (channel && !cookies[channel.lang]) { - cookies[channel.lang] = await loadLangCookies(channel) + if (channel) { + if (!cookies[channel.lang]) { + cookies[channel.lang] = await loadLangCookies(channel) + } if (cookies[channel.lang]) { headers.Cookie = cookies[channel.lang] } @@ -44,7 +46,7 @@ module.exports = { }, jar: null }, - async parser({ content, headers, date, channel}) { + async parser({ content, headers, date, channel }) { const programs = [] if (!cookies[channel.lang]) { @@ -69,7 +71,7 @@ module.exports = { return programs }, - async channels({lang = 'id'}) { + async channels({ lang = 'id' }) { const axios = require('axios') const cheerio = require('cheerio') const result = await axios @@ -161,5 +163,11 @@ async function loadDescription($item, cookies) { } function parseCookies(headers) { - return Array.isArray(headers['set-cookie']) ? headers['set-cookie'].join(';') : null + const cookies = [] + if (Array.isArray(headers['set-cookie'])) { + headers['set-cookie'].forEach(cookie => { + cookies.push(cookie.split('; ')[0]) + }) + } + return cookies.length ? cookies.join('; ') : null } diff --git a/sites/mncvision.id/mncvision.id.test.js b/sites/mncvision.id/mncvision.id.test.js index 8c5b0ca9..1ce385d6 100644 --- a/sites/mncvision.id/mncvision.id.test.js +++ b/sites/mncvision.id/mncvision.id.test.js @@ -1,7 +1,3 @@ -// npm run channels:parse -- --config=./sites/mncvision.id/mncvision.id.config.js --output=./sites/mncvision.id/mncvision.id_id.channels.xml --set=lang:id -// npm run channels:parse -- --config=./sites/mncvision.id/mncvision.id.config.js --output=./sites/mncvision.id/mncvision.id_en.channels.xml --set=lang:en -// npm run grab -- --site=mncvision.id --lang=id - const { parser, url, request } = require('./mncvision.id.config.js') const fs = require('fs') const path = require('path') @@ -46,12 +42,17 @@ axios.get.mockImplementation((url, opts) => { if ( url === 'https://www.mncvision.id/schedule/detail/20231119001500154/Blue-Bloods-S13-Ep-19/1' ) { - if (opts.headers['Cookie'] === indonesiaHeaders['set-cookie'][0]) { + const getCookie = headers => { + if (Array.isArray(headers['set-cookie'])) { + return headers['set-cookie'][0].split('; ')[0] + } + } + if (opts.headers['Cookie'] === getCookie(indonesiaHeaders)) { return Promise.resolve({ data: fs.readFileSync(path.resolve(__dirname, '__data__/program_id.html')) }) } - if (opts.headers['Cookie'] === englishHeaders['set-cookie'][0]) { + if (opts.headers['Cookie'] === getCookie(englishHeaders)) { return Promise.resolve({ data: fs.readFileSync(path.resolve(__dirname, '__data__/program_en.html')) }) diff --git a/sites/mncvision.id/mncvision.id_en.channels.xml b/sites/mncvision.id/mncvision.id_en.channels.xml index 5924af97..256ea708 100644 --- a/sites/mncvision.id/mncvision.id_en.channels.xml +++ b/sites/mncvision.id/mncvision.id_en.channels.xml @@ -20,9 +20,9 @@ CGTN CGTN Documentary CINEMACHI - CINEMACHI HD CINEMACHI ACTION CINEMACHI ACTION HD + CINEMACHI HD CINEMACHI KIDS CINEMACHI KIDS HD CINEMACHI MAX @@ -102,9 +102,9 @@ Sportstars 2 HD Sportstars 3 Sportstars 4 - Sportstars 4 HD + Sportstars 4 HD Sportstars - Sportstars HD + Sportstars HD SPOTV 2 SPOTV 2 HD SPOTV @@ -119,8 +119,8 @@ tvN Movies HD tvOne TVRI - Vision Prime HD Vision Prime + Vision Prime HD Zee Bioskop Zoomoo diff --git a/sites/mncvision.id/mncvision.id_id.channels.xml b/sites/mncvision.id/mncvision.id_id.channels.xml index cf2dfc29..eb4766a7 100644 --- a/sites/mncvision.id/mncvision.id_id.channels.xml +++ b/sites/mncvision.id/mncvision.id_id.channels.xml @@ -20,9 +20,9 @@ CGTN CGTN Documentary CINEMACHI - CINEMACHI HD CINEMACHI ACTION CINEMACHI ACTION HD + CINEMACHI HD CINEMACHI KIDS CINEMACHI KIDS HD CINEMACHI MAX @@ -102,9 +102,9 @@ Sportstars 2 HD Sportstars 3 Sportstars 4 - Sportstars 4 HD + Sportstars 4 HD Sportstars - Sportstars HD + Sportstars HD SPOTV 2 SPOTV 2 HD SPOTV @@ -119,8 +119,8 @@ tvN Movies HD tvOne TVRI - Vision Prime HD Vision Prime + Vision Prime HD Zee Bioskop Zoomoo diff --git a/sites/mncvision.id/readme.md b/sites/mncvision.id/readme.md new file mode 100644 index 00000000..bee9dc42 --- /dev/null +++ b/sites/mncvision.id/readme.md @@ -0,0 +1,37 @@ +# mncvision.id + +https://www.mncvision.id/schedule/table + +### Download the guide + +Indonesian: + +```sh +npm run grab -- --site=mncvision.id --lang=id +``` + +English: + +```sh +npm run grab -- --site=mncvision.id --lang=en +``` + +### Update channel list + +Indonesian: + +```sh +npm run channels:parse -- --config=./sites/mncvision.id/mncvision.id.config.js --output=./sites/mncvision.id/mncvision.id_id.channels.xml --set=lang:id +``` + +English: + +```sh +npm run channels:parse -- --config=./sites/mncvision.id/mncvision.id.config.js --output=./sites/mncvision.id/mncvision.id_en.channels.xml --set=lang:en +``` + +### Test + +```sh +npm test -- mncvision.id +```