From 3e8dcb13eb05823d57cbdaae82ccb76265a5233d Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Tue, 14 Dec 2021 10:46:03 +0300 Subject: [PATCH 1/3] Update update.db --- tests/__data__/input/update.db | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/__data__/input/update.db b/tests/__data__/input/update.db index c2622abee7..33267072e2 100644 --- a/tests/__data__/input/update.db +++ b/tests/__data__/input/update.db @@ -2,5 +2,5 @@ {"name":"BBC News HD","id":"BBCNews.uk","filepath":"tests/__data__/output/channels/uk.m3u","src_country":{"name":"United Kingdom","code":"UK","lang":"eng"},"tvg_country":"UK","countries":[{"name":"United Kingdom","code":"UK","lang":"eng"}],"regions":[{"name":"Europe, the Middle East and Africa","code":"EMEA"},{"name":"Europe","code":"EUR"}],"languages":[{"name":"English","code":"eng"}],"categories":[{"name":"News","slug":"news","nsfw":false}],"tvg_url":"","guides":[],"logo":"https://i.imgur.com/eNPIQ9f.png","resolution":{"height":720,"width":null},"status":{"label":"Not 24/7","code":"not_247","level":3},"url":"http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8","http":{"referrer":"","user-agent":""},"is_nsfw":false,"is_broken":false,"updated":false,"cluster_id":3,"_id":"3TbieV1ptnZVCIdn"} {"name":"ATV","id":"AndorraTV.ad","filepath":"tests/__data__/output/channels/ad.m3u","src_country":{"name":"Andorra","code":"AD","lang":"cat"},"tvg_country":"AD","countries":[{"name":"Andorra","code":"AD","lang":"cat"}],"regions":[{"name":"Europe, the Middle East and Africa","code":"EMEA"},{"name":"Europe","code":"EUR"}],"languages":[{"name":"Catalan","code":"cat"}],"categories":[{"name":"General","slug":"general","nsfw":false}],"tvg_url":"","guides":[],"logo":"https://i.imgur.com/kJCjeQ4.png","resolution":{"height":720,"width":null},"status":{"label":"Offline","code":"offline","level":5},"url":"https://iptv-all.lanesh4d0w.repl.co/andorra/atv","http":{"referrer":"","user-agent":""},"is_nsfw":false,"is_broken":true,"updated":false,"cluster_id":1,"_id":"I6cjG2xCBRFFP4sz"} {"name":"BBC News HD","id":"AndorraTV.ad","filepath":"tests/__data__/output/channels/uk.m3u","src_country":{"name":"United Kingdom","code":"UK","lang":"eng"},"tvg_country":"UK","countries":[{"name":"United Kingdom","code":"UK","lang":"eng"}],"regions":[{"name":"Europe, the Middle East and Africa","code":"EMEA"},{"name":"Europe","code":"EUR"}],"languages":[{"name":"English","code":"eng"}],"categories":[{"name":"News","slug":"news","nsfw":false}],"tvg_url":"","guides":[],"logo":"https://i.imgur.com/eNPIQ9f.png","resolution":{"height":720,"width":null},"status":{"label":"Not 24/7","code":"not_247","level":3},"url":"http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8","http":{"referrer":"","user-agent":""},"is_nsfw":false,"is_broken":false,"updated":false,"cluster_id":3,"_id":"WTbieV1ptnZVCIdn"} -{"name":"Kayhan TV","id":"KayhanTV.af","filepath":"channels/af.m3u","src_country":{"name":"Afghanistan","code":"AF","lang":"pus"},"tvg_country":"AF","countries":[{"name":"Afghanistan","code":"AF","lang":"pus"}],"regions":[{"name":"Asia-Pacific","code":"APAC"},{"name":"Asia","code":"ASIA"},{"name":"South Asia","code":"SAS"}],"languages":[{"name":"Pashto","code":"pus"}],"categories":[],"tvg_url":"","guides":[],"logo":"https://i.imgur.com/XpR1VvZ.png","resolution":{"height":720,"width":null},"status":{"label":"Geo-blocked","code":"geo_blocked","level":2},"url":"http://208.93.117.113/live/Stream1/playlist.m3u8","http":{"referrer":"","user-agent":""},"is_nsfw":false,"is_broken":true,"updated":true,"cluster_id":1,"_id":"cFFpFVzSn6xFMUF3"} -{"name":"Sharq","id":"Sharq.af","filepath":"channels/af.m3u","src_country":{"name":"Afghanistan","code":"AF","lang":"pus"},"tvg_country":"AF","countries":[{"name":"Afghanistan","code":"AF","lang":"pus"}],"regions":[{"name":"Asia-Pacific","code":"APAC"},{"name":"Asia","code":"ASIA"},{"name":"South Asia","code":"SAS"}],"languages":[{"name":"Pashto","code":"pus"}],"categories":[{"name":"General","slug":"general","nsfw":false}],"tvg_url":"","guides":[],"logo":"https://ws.shoutcast.com/images/contacts/b/b9f8/b9f811c5-d210-4d0b-ae32-f467823a913e/radios/0d677ea5-46b4-4129-9359-9e5783fb6a37/0d677ea5-46b4-4129-9359-9e5783fb6a37.png","resolution":{"height":576,"width":null},"status":{"label":"Offline","code":"offline","level":5},"url":"http://51.210.199.50/hls/stream.m3u8","http":{"referrer":"","user-agent":""},"is_nsfw":false,"is_broken":false,"updated":true,"cluster_id":1,"_id":"u7iyA6cjtf1iWWAZ"} +{"name":"Kayhan TV","id":"KayhanTV.af","filepath":"channels/af.m3u","src_country":{"name":"Afghanistan","code":"AF","lang":"pus"},"tvg_country":"AF","countries":[{"name":"Afghanistan","code":"AF","lang":"pus"}],"regions":[{"name":"Asia-Pacific","code":"APAC"},{"name":"Asia","code":"ASIA"},{"name":"South Asia","code":"SAS"}],"languages":[{"name":"Pashto","code":"pus"}],"categories":[],"tvg_url":"","guides":[],"logo":"https://i.imgur.com/XpR1VvZ.png","resolution":{"height":720,"width":null},"status":{"label":"Geo-blocked","code":"geo_blocked","level":2},"url":"http://208.93.117.113/live/Stream1/playlist.m3u8","http":{"referrer":"","user-agent":""},"is_nsfw":false,"is_broken":false,"updated":false,"cluster_id":1,"_id":"cFFpFVzSn6xFMUF3"} +{"name":"Sharq","id":"Sharq.af","filepath":"channels/af.m3u","src_country":{"name":"Afghanistan","code":"AF","lang":"pus"},"tvg_country":"AF","countries":[{"name":"Afghanistan","code":"AF","lang":"pus"}],"regions":[{"name":"Asia-Pacific","code":"APAC"},{"name":"Asia","code":"ASIA"},{"name":"South Asia","code":"SAS"}],"languages":[{"name":"Pashto","code":"pus"}],"categories":[{"name":"General","slug":"general","nsfw":false}],"tvg_url":"","guides":[],"logo":"https://ws.shoutcast.com/images/contacts/b/b9f8/b9f811c5-d210-4d0b-ae32-f467823a913e/radios/0d677ea5-46b4-4129-9359-9e5783fb6a37/0d677ea5-46b4-4129-9359-9e5783fb6a37.png","resolution":{"height":576,"width":null},"status":{"label":"Offline","code":"offline","level":5},"url":"http://51.210.199.50/hls/stream.m3u8","http":{"referrer":"","user-agent":""},"is_nsfw":false,"is_broken":false,"updated":false,"cluster_id":1,"_id":"u7iyA6cjtf1iWWAZ"} From 98edaa5e0bbc921506f0bb9dbba15993b7162647 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Tue, 14 Dec 2021 10:46:06 +0300 Subject: [PATCH 2/3] Update update-database.test.js --- tests/commands/update-database.test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/commands/update-database.test.js b/tests/commands/update-database.test.js index 1a76932dee..cfac43868f 100644 --- a/tests/commands/update-database.test.js +++ b/tests/commands/update-database.test.js @@ -96,9 +96,9 @@ it('can update database', () => { }) expect(JSON.parse(lines[4])).toMatchObject({ id: 'KayhanTV.af', - status: { label: 'Timeout', code: 'timeout', level: 4 }, - is_broken: true, - updated: true + status: { label: 'Geo-blocked', code: 'geo_blocked', level: 2 }, + is_broken: false, + updated: false }) expect(JSON.parse(lines[5])).toMatchObject({ id: 'Sharq.af', From 56246c015fca21f8048da9dd0c159aed89763cf1 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Tue, 14 Dec 2021 10:46:12 +0300 Subject: [PATCH 3/3] Update update-database.js --- scripts/commands/update-database.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/scripts/commands/update-database.js b/scripts/commands/update-database.js index a69e2cc9c7..4e385849d1 100644 --- a/scripts/commands/update-database.js +++ b/scripts/commands/update-database.js @@ -200,7 +200,20 @@ function parseResolution(streams) { return null } +// Mapping Scheme: +// =============== +// not_247 -> * = not_247 +// geo_blocked -> * = geo_blocked +// offline -> online = not_247 +// * -> online = online +// * -> timeout = timeout +// * -> geo_blocked = geo_blocked +// * -> offline = offline + function parseStatus(error, prevStatus) { + if (['not_247', 'geo_blocked'].includes(prevStatus.code)) return null + if(!error && prevStatus.code === 'offline') return statuses['not_247'] + if(!error) return statuses['online'] if (error) { if (error.includes('timed out')) { return statuses['timeout'] @@ -212,7 +225,7 @@ function parseStatus(error, prevStatus) { return statuses['offline'] } - return statuses['online'] + return null } function findLogo(id) {