From 5ec8619268139966218c0aafef7ebf14e8a3c0af Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Fri, 11 Feb 2022 19:56:11 +0300 Subject: [PATCH] Update generate-playlist.js --- scripts/commands/generate-playlists.js | 37 ++++++------------- scripts/core/playlist.js | 2 +- scripts/generators/categories.js | 7 ++-- scripts/generators/countries.js | 14 +++---- scripts/generators/index_category_m3u.js | 17 +++------ scripts/generators/index_country_m3u.js | 15 ++++---- scripts/generators/index_language_m3u.js | 19 ++++------ scripts/generators/index_m3u.js | 2 +- scripts/generators/index_region_m3u.js | 15 ++++---- scripts/generators/languages.js | 6 +-- scripts/generators/regions.js | 14 +++---- scripts/store/getters/group_title.js | 11 +++++- scripts/store/getters/index.js | 1 - scripts/store/getters/tvg_country.js | 15 +++++++- scripts/store/getters/tvg_language.js | 12 +++++- scripts/store/getters/tvg_logo.js | 4 +- scripts/store/getters/tvg_url.js | 3 -- .../.gh-pages/categories/undefined.m3u | 10 +++-- .../expected/.gh-pages/countries/ad.m3u | 5 +++ .../expected/.gh-pages/countries/in.m3u | 5 +++ .../expected/.gh-pages/countries/uk.m3u | 2 + .../.gh-pages/countries/undefined.m3u | 2 - .../expected/.gh-pages/index.category.m3u | 10 +++-- .../expected/.gh-pages/index.country.m3u | 12 +++--- .../expected/.gh-pages/index.language.m3u | 10 +++-- tests/__data__/expected/.gh-pages/index.m3u | 10 +++-- .../expected/.gh-pages/index.nsfw.m3u | 10 +++-- .../expected/.gh-pages/index.region.m3u | 30 ++++++++++----- .../expected/.gh-pages/languages/cat.m3u | 3 -- .../expected/.gh-pages/languages/fra.m3u | 3 ++ .../.gh-pages/languages/undefined.m3u | 6 ++- .../expected/.gh-pages/regions/afr.m3u | 1 + .../expected/.gh-pages/regions/amer.m3u | 3 ++ .../expected/.gh-pages/regions/apac.m3u | 3 ++ .../expected/.gh-pages/regions/arab.m3u | 1 + .../expected/.gh-pages/regions/asia.m3u | 2 + .../expected/.gh-pages/regions/carib.m3u | 1 + .../expected/.gh-pages/regions/cas.m3u | 1 + .../expected/.gh-pages/regions/emea.m3u | 8 ++-- .../expected/.gh-pages/regions/eur.m3u | 8 ++-- .../expected/.gh-pages/regions/hispam.m3u | 1 + .../expected/.gh-pages/regions/int.m3u | 10 +++-- .../expected/.gh-pages/regions/lac.m3u | 1 + .../expected/.gh-pages/regions/latam.m3u | 1 + .../expected/.gh-pages/regions/maghreb.m3u | 1 + .../expected/.gh-pages/regions/mena.m3u | 1 + .../expected/.gh-pages/regions/mideast.m3u | 1 + .../expected/.gh-pages/regions/nam.m3u | 3 ++ .../expected/.gh-pages/regions/noram.m3u | 3 ++ .../expected/.gh-pages/regions/nord.m3u | 1 + .../expected/.gh-pages/regions/oce.m3u | 1 + .../expected/.gh-pages/regions/sas.m3u | 3 ++ .../expected/.gh-pages/regions/ssa.m3u | 1 + .../expected/.gh-pages/regions/undefined.m3u | 2 - .../expected/.gh-pages/regions/wafr.m3u | 1 + .../expected/logs/generators/categories.log | 2 +- .../expected/logs/generators/countries.log | 6 +-- .../logs/generators/index_category_m3u.log | 1 + .../logs/generators/index_country_m3u.log | 1 + .../logs/generators/index_language_m3u.log | 1 + .../expected/logs/generators/index_m3u.log | 1 + .../logs/generators/index_nsfw_m3u.log | 1 + .../logs/generators/index_region_m3u.log | 1 + .../expected/logs/generators/languages.log | 3 +- .../expected/logs/generators/regions.log | 14 +++---- 65 files changed, 246 insertions(+), 156 deletions(-) delete mode 100644 scripts/store/getters/tvg_url.js create mode 100644 tests/__data__/expected/.gh-pages/countries/ad.m3u create mode 100644 tests/__data__/expected/.gh-pages/countries/in.m3u delete mode 100644 tests/__data__/expected/.gh-pages/languages/cat.m3u create mode 100644 tests/__data__/expected/.gh-pages/languages/fra.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/afr.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/amer.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/apac.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/arab.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/carib.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/cas.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/hispam.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/lac.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/latam.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/maghreb.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/mena.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/mideast.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/nam.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/noram.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/nord.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/oce.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/sas.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/ssa.m3u create mode 100644 tests/__data__/expected/.gh-pages/regions/wafr.m3u create mode 100644 tests/__data__/expected/logs/generators/index_category_m3u.log create mode 100644 tests/__data__/expected/logs/generators/index_country_m3u.log create mode 100644 tests/__data__/expected/logs/generators/index_language_m3u.log create mode 100644 tests/__data__/expected/logs/generators/index_m3u.log create mode 100644 tests/__data__/expected/logs/generators/index_nsfw_m3u.log create mode 100644 tests/__data__/expected/logs/generators/index_region_m3u.log diff --git a/scripts/commands/generate-playlists.js b/scripts/commands/generate-playlists.js index 0fa4a1960..2d9da565e 100644 --- a/scripts/commands/generate-playlists.js +++ b/scripts/commands/generate-playlists.js @@ -1,4 +1,4 @@ -const { db, generator, api, logger } = require('../core') +const { db, generator, api, logger, file } = require('../core') const _ = require('lodash') async function main() { @@ -30,7 +30,7 @@ main() async function loadStreams() { await db.streams.load() - let streams = await db.streams.find({}) + let streams = await db.streams.find({ is_broken: false }) await api.channels.load() let channels = await api.channels.all() @@ -50,31 +50,16 @@ async function loadStreams() { return streams.map(stream => { const channel = channels[stream.channel_id] || null + const filename = file.getFilename(stream.filepath) + const [_, code] = filename.match(/^([a-z]{2})(_|$)/) || [null, null] + const defaultBroadcastArea = code ? [`c/${code.toUpperCase()}`] : [] - if (channel) { - stream.group_title = channel.categories - .map(id => (categories[id] ? categories[id].name : null)) - .filter(i => i) - .sort() - .join(';') - stream.tvg_language = channel.languages - .map(code => (languages[code] ? languages[code].name : '')) - .filter(i => i) - .sort() - .join(';') - stream.tvg_country = channel.broadcast_area - .map(item => { - const [_, code] = item.split('/') - return code - }) - .filter(i => i) - .sort() - .join(';') - stream.tvg_logo = channel.logo - stream.tvg_url = - guides[channel.id] && guides[channel.id].length ? guides[channel.id][0].url : null - stream.channel = channel - } + stream.guides = channel && Array.isArray(guides[channel.id]) ? guides[channel.id] : [] + stream.categories = channel ? channel.categories.map(id => categories[id]) : [] + stream.languages = channel ? channel.languages.map(id => languages[id]) : [] + stream.broadcast_area = channel ? channel.broadcast_area : defaultBroadcastArea + stream.is_nsfw = channel ? channel.is_nsfw : false + stream.logo = channel ? channel.logo : null return stream }) diff --git a/scripts/core/playlist.js b/scripts/core/playlist.js index 4d6c90c47..ef8305da9 100644 --- a/scripts/core/playlist.js +++ b/scripts/core/playlist.js @@ -53,7 +53,7 @@ playlist.create = function (items = [], options = {}) { const header = {} if (options.public) { - let guides = items.map(item => item.tvg_url).filter(i => i) + let guides = items.map(item => (item.guides.length ? item.guides[0].url : null)).filter(i => i) header['x-tvg-url'] = _.uniq(guides).sort().join(',') } p.setHeader(header) diff --git a/scripts/generators/categories.js b/scripts/generators/categories.js index 0d95cd34a..abbfc0cd1 100644 --- a/scripts/generators/categories.js +++ b/scripts/generators/categories.js @@ -2,15 +2,16 @@ const api = require('../core/api') const _ = require('lodash') module.exports = async function (streams = []) { - const output = [] await api.categories.load() const categories = await api.categories.all() + + const output = [] for (const category of categories) { - let items = _.filter(streams, { channel: { categories: [category.id] } }) + let items = _.filter(streams, { categories: [{ id: category.id }] }) output.push({ filepath: `categories/${category.id}.m3u`, items }) } - let items = _.filter(streams, stream => !stream.channel || !stream.channel.categories.length) + let items = _.filter(streams, stream => !stream.categories.length) output.push({ filepath: 'categories/undefined.m3u', items }) return output diff --git a/scripts/generators/countries.js b/scripts/generators/countries.js index cb3829052..58d08b6f9 100644 --- a/scripts/generators/countries.js +++ b/scripts/generators/countries.js @@ -2,7 +2,7 @@ const api = require('../core/api') const _ = require('lodash') module.exports = async function (streams = []) { - streams = _.filter(streams, stream => !stream.channel || stream.channel.is_nsfw === false) + streams = _.filter(streams, stream => stream.is_nsfw === false) await api.countries.load() const countries = await api.countries.all() @@ -15,15 +15,15 @@ module.exports = async function (streams = []) { r => `r/${r.code}` ) countryAreaCodes.push(`c/${country.code}`) - let items = _.filter( - streams, - stream => - stream.channel && _.intersection(stream.channel.broadcast_area, countryAreaCodes).length - ) + + let items = _.filter(streams, stream => { + return _.intersection(stream.broadcast_area, countryAreaCodes).length + }) + output.push({ filepath: `countries/${country.code.toLowerCase()}.m3u`, items }) } - let items = _.filter(streams, stream => !stream.channel || !stream.channel.broadcast_area.length) + let items = _.filter(streams, stream => !stream.broadcast_area.length) output.push({ filepath: 'countries/undefined.m3u', items }) return output diff --git a/scripts/generators/index_category_m3u.js b/scripts/generators/index_category_m3u.js index 0e8b364a6..1794f8733 100644 --- a/scripts/generators/index_category_m3u.js +++ b/scripts/generators/index_category_m3u.js @@ -1,32 +1,27 @@ -const api = require('../core/api') const _ = require('lodash') module.exports = async function (streams = []) { - streams = _.filter(streams, s => !s.channel || s.channel.is_nsfw === false) - - await api.categories.load() - let categories = await api.categories.all() - categories = _.keyBy(categories, 'id') + streams = _.filter(streams, stream => stream.is_nsfw === false) let items = [] streams.forEach(stream => { - if (!stream.channel || !stream.channel.categories.length) { + if (!stream.categories.length) { const item = _.cloneDeep(stream) - item.group_title = null + item.group_title = 'Undefined' items.push(item) return } - stream.channel.categories.forEach(id => { + stream.categories.forEach(category => { const item = _.cloneDeep(stream) - item.group_title = categories[id] ? categories[id].name : null + item.group_title = category.name items.push(item) }) }) items = _.sortBy(items, item => { - if (!item.group_title) return '' + if (item.group_title === 'Undefined') return '' return item.group_title }) diff --git a/scripts/generators/index_country_m3u.js b/scripts/generators/index_country_m3u.js index d7944bf5a..7f06ae84f 100644 --- a/scripts/generators/index_country_m3u.js +++ b/scripts/generators/index_country_m3u.js @@ -2,7 +2,7 @@ const api = require('../core/api') const _ = require('lodash') module.exports = async function (streams = []) { - streams = _.filter(streams, s => !s.channel || s.channel.is_nsfw === false) + streams = _.filter(streams, stream => stream.is_nsfw === false) await api.regions.load() let regions = await api.regions.all() @@ -14,14 +14,14 @@ module.exports = async function (streams = []) { let items = [] streams.forEach(stream => { - if (!stream.channel || !stream.channel.broadcast_area.length) { + if (!stream.broadcast_area.length) { const item = _.cloneDeep(stream) - item.group_title = null + item.group_title = 'Undefined' items.push(item) return } - getBroadcastCountries(stream.channel, { countries, regions }).forEach(country => { + getBroadcastCountries(stream, { countries, regions }).forEach(country => { const item = _.cloneDeep(stream) item.group_title = country.name items.push(item) @@ -29,15 +29,16 @@ module.exports = async function (streams = []) { }) items = _.sortBy(items, item => { - if (!item.group_title) return false + if (item.group_title === 'Undefined') return '' + return item.group_title }) return { filepath: 'index.country.m3u', items } } -function getBroadcastCountries(channel, { countries, regions }) { - let codes = channel.broadcast_area.reduce((acc, item) => { +function getBroadcastCountries(stream, { countries, regions }) { + let codes = stream.broadcast_area.reduce((acc, item) => { const [type, code] = item.split('/') switch (type) { case 'c': diff --git a/scripts/generators/index_language_m3u.js b/scripts/generators/index_language_m3u.js index c50c17a8e..a8bbd8d61 100644 --- a/scripts/generators/index_language_m3u.js +++ b/scripts/generators/index_language_m3u.js @@ -1,30 +1,27 @@ -const api = require('../core/api') const _ = require('lodash') module.exports = async function (streams = []) { - streams = _.filter(streams, s => !s.channel || s.channel.is_nsfw === false) - - await api.languages.load() - let languages = await api.languages.all() - languages = _.keyBy(languages, 'code') + streams = _.filter(streams, stream => stream.is_nsfw === false) let items = [] streams.forEach(stream => { - if (!stream.channel || !stream.channel.languages.length) { + if (!stream.languages.length) { const item = _.cloneDeep(stream) - item.group_title = null + item.group_title = 'Undefined' items.push(stream) return } - stream.channel.languages.forEach(code => { + stream.languages.forEach(language => { const item = _.cloneDeep(stream) - item.group_title = languages[code] ? languages[code].name : null + item.group_title = language.name items.push(item) }) }) + items = _.sortBy(items, i => { - if (!i.group_title) return '' + if (i.group_title === 'Undefined') return '' + return i.group_title }) diff --git a/scripts/generators/index_m3u.js b/scripts/generators/index_m3u.js index d280ecf51..b236051a4 100644 --- a/scripts/generators/index_m3u.js +++ b/scripts/generators/index_m3u.js @@ -2,6 +2,6 @@ const api = require('../core/api') const _ = require('lodash') module.exports = async function (streams = []) { - streams = _.filter(streams, s => !s.channel || s.channel.is_nsfw === false) + streams = _.filter(streams, stream => stream.is_nsfw === false) return { filepath: 'index.m3u', items: streams } } diff --git a/scripts/generators/index_region_m3u.js b/scripts/generators/index_region_m3u.js index bafcb3fd6..e1d32a8b6 100644 --- a/scripts/generators/index_region_m3u.js +++ b/scripts/generators/index_region_m3u.js @@ -2,7 +2,7 @@ const api = require('../core/api') const _ = require('lodash') module.exports = async function (streams = []) { - streams = _.filter(streams, stream => !stream.channel || stream.channel.is_nsfw === false) + streams = _.filter(streams, stream => stream.is_nsfw === false) await api.regions.load() let regions = await api.regions.all() @@ -10,14 +10,14 @@ module.exports = async function (streams = []) { let items = [] streams.forEach(stream => { - if (!stream.channel || !stream.channel.broadcast_area.length) { + if (!stream.broadcast_area.length) { const item = _.cloneDeep(stream) - item.group_title = null + item.group_title = 'Undefined' items.push(item) return } - getChannelRegions(stream.channel, { regions }).forEach(region => { + getChannelRegions(stream, { regions }).forEach(region => { const item = _.cloneDeep(stream) item.group_title = region.name items.push(item) @@ -25,15 +25,16 @@ module.exports = async function (streams = []) { }) items = _.sortBy(items, i => { - if (!i.group_title) return '' + if (i.group_title === 'Undefined') return '' + return i.group_title }) return { filepath: 'index.region.m3u', items } } -function getChannelRegions(channel, { regions }) { - return channel.broadcast_area +function getChannelRegions(stream, { regions }) { + return stream.broadcast_area .reduce((acc, item) => { const [type, code] = item.split('/') switch (type) { diff --git a/scripts/generators/languages.js b/scripts/generators/languages.js index 51ca967d1..eba2d8a8b 100644 --- a/scripts/generators/languages.js +++ b/scripts/generators/languages.js @@ -2,7 +2,7 @@ const api = require('../core/api') const _ = require('lodash') module.exports = async function (streams = []) { - streams = _.filter(streams, s => !s.channel || s.channel.is_nsfw === false) + streams = _.filter(streams, stream => stream.is_nsfw === false) await api.languages.load() let languages = await api.languages.all() @@ -10,13 +10,13 @@ module.exports = async function (streams = []) { const output = [] for (const language of languages) { - let items = _.filter(streams, { channel: { languages: [language.code] } }) + let items = _.filter(streams, { languages: [{ code: language.code }] }) if (items.length) { output.push({ filepath: `languages/${language.code}.m3u`, items }) } } - let items = _.filter(streams, stream => !stream.channel || !stream.channel.languages.length) + let items = _.filter(streams, stream => !stream.languages.length) output.push({ filepath: 'languages/undefined.m3u', items }) return output diff --git a/scripts/generators/regions.js b/scripts/generators/regions.js index 6df03e852..61cc62144 100644 --- a/scripts/generators/regions.js +++ b/scripts/generators/regions.js @@ -2,21 +2,21 @@ const api = require('../core/api') const _ = require('lodash') module.exports = async function (streams = []) { - const output = [] + streams = _.filter(streams, stream => stream.is_nsfw === false) + await api.regions.load() const regions = await api.regions.all() - streams = _.filter(streams, stream => !stream.channel || stream.channel.is_nsfw === false) + + const output = [] for (const region of regions) { const areaCodes = region.countries.map(code => `c/${code}`) areaCodes.push(`r/${region.code}`) - let items = _.filter( - streams, - stream => stream.channel && _.intersection(stream.channel.broadcast_area, areaCodes).length - ) + + let items = _.filter(streams, stream => _.intersection(stream.broadcast_area, areaCodes).length) output.push({ filepath: `regions/${region.code.toLowerCase()}.m3u`, items }) } - let items = _.filter(streams, stream => !stream.channel || !stream.channel.broadcast_area.length) + let items = _.filter(streams, stream => !stream.broadcast_area.length) output.push({ filepath: 'regions/undefined.m3u', items }) return output diff --git a/scripts/store/getters/group_title.js b/scripts/store/getters/group_title.js index c67c955de..78c0b944f 100644 --- a/scripts/store/getters/group_title.js +++ b/scripts/store/getters/group_title.js @@ -1,3 +1,12 @@ module.exports = function () { - return this.group_title || 'Undefined' + if (this.group_title) return this.group_title + + if (this.categories.length) { + return this.categories + .map(category => category.name) + .sort() + .join(';') + } + + return 'Undefined' } diff --git a/scripts/store/getters/index.js b/scripts/store/getters/index.js index 21f17b262..75fbe8be3 100644 --- a/scripts/store/getters/index.js +++ b/scripts/store/getters/index.js @@ -2,6 +2,5 @@ exports.group_title = require('./group_title') exports.title = require('./title') exports.tvg_id = require('./tvg_id') exports.tvg_logo = require('./tvg_logo') -exports.tvg_url = require('./tvg_url') exports.tvg_country = require('./tvg_country') exports.tvg_language = require('./tvg_language') diff --git a/scripts/store/getters/tvg_country.js b/scripts/store/getters/tvg_country.js index f3015d773..dd2f2c3cc 100644 --- a/scripts/store/getters/tvg_country.js +++ b/scripts/store/getters/tvg_country.js @@ -1,3 +1,16 @@ module.exports = function () { - return this.tvg_country || '' + if (this.tvg_country) return this.tvg_country + + if (this.broadcast_area.length) { + return this.broadcast_area + .map(item => { + const [_, code] = item.split('/') + return code + }) + .filter(i => i) + .sort() + .join(';') + } + + return '' } diff --git a/scripts/store/getters/tvg_language.js b/scripts/store/getters/tvg_language.js index ba4de84ed..a9b60a161 100644 --- a/scripts/store/getters/tvg_language.js +++ b/scripts/store/getters/tvg_language.js @@ -1,3 +1,13 @@ module.exports = function () { - return this.tvg_language || '' + if (this.tvg_language) return this.tvg_language + + if (this.languages.length) { + return this.languages + .map(language => (language ? language.name : null)) + .filter(l => l) + .sort() + .join(';') + } + + return '' } diff --git a/scripts/store/getters/tvg_logo.js b/scripts/store/getters/tvg_logo.js index 8b289fea0..7067ddabd 100644 --- a/scripts/store/getters/tvg_logo.js +++ b/scripts/store/getters/tvg_logo.js @@ -1,3 +1,5 @@ module.exports = function () { - return this.tvg_logo || '' + if (this.tvg_logo) return this.tvg_logo + + return this.logo || '' } diff --git a/scripts/store/getters/tvg_url.js b/scripts/store/getters/tvg_url.js deleted file mode 100644 index 2bb1bb1e4..000000000 --- a/scripts/store/getters/tvg_url.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = function () { - return this.tvg_url || '' -} diff --git a/tests/__data__/expected/.gh-pages/categories/undefined.m3u b/tests/__data__/expected/.gh-pages/categories/undefined.m3u index b16d81e94..9c088466a 100644 --- a/tests/__data__/expected/.gh-pages/categories/undefined.m3u +++ b/tests/__data__/expected/.gh-pages/categories/undefined.m3u @@ -1,7 +1,9 @@ -#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ad/andorradifusio.ad.epg.xml" -#EXTINF:-1 tvg-id="AndorraTV.ad" tvg-country="AD" tvg-language="Valencian" tvg-logo="" group-title="Undefined",ATV (720p) [Offline] -https://iptv-all.lanesh4d0w.repl.co/andorra/atv -#EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV +#EXTM3U x-tvg-url="" +#EXTINF:-1 tvg-id="ATV.ad" tvg-country="UK" tvg-language="" tvg-logo="" group-title="Undefined",Andorra TV (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="" tvg-country="IN" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 #EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Tastemade https://tastemade-freetv16min-plex.amagi.tv/hls/amagi_hls_data_tastemade-tastemadefreetv16-plex/CDN/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad" tvg-country="AD" tvg-language="" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/.gh-pages/countries/ad.m3u b/tests/__data__/expected/.gh-pages/countries/ad.m3u new file mode 100644 index 000000000..89c352d71 --- /dev/null +++ b/tests/__data__/expected/.gh-pages/countries/ad.m3u @@ -0,0 +1,5 @@ +#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xml" +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad" tvg-country="AD" tvg-language="" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/.gh-pages/countries/in.m3u b/tests/__data__/expected/.gh-pages/countries/in.m3u new file mode 100644 index 000000000..07c5a8be9 --- /dev/null +++ b/tests/__data__/expected/.gh-pages/countries/in.m3u @@ -0,0 +1,5 @@ +#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xml" +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 +#EXTINF:-1 tvg-id="" tvg-country="IN" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 diff --git a/tests/__data__/expected/.gh-pages/countries/uk.m3u b/tests/__data__/expected/.gh-pages/countries/uk.m3u index 8bbcae29c..6f4ab4ca5 100644 --- a/tests/__data__/expected/.gh-pages/countries/uk.m3u +++ b/tests/__data__/expected/.gh-pages/countries/uk.m3u @@ -1,3 +1,5 @@ #EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xml" +#EXTINF:-1 tvg-id="ATV.ad" tvg-country="UK" tvg-language="" tvg-logo="" group-title="Undefined",Andorra TV (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD (720p) [Not 24/7] http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 diff --git a/tests/__data__/expected/.gh-pages/countries/undefined.m3u b/tests/__data__/expected/.gh-pages/countries/undefined.m3u index f2393c589..a29324571 100644 --- a/tests/__data__/expected/.gh-pages/countries/undefined.m3u +++ b/tests/__data__/expected/.gh-pages/countries/undefined.m3u @@ -1,5 +1,3 @@ #EXTM3U x-tvg-url="" -#EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV -http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 #EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Tastemade https://tastemade-freetv16min-plex.amagi.tv/hls/amagi_hls_data_tastemade-tastemadefreetv16-plex/CDN/playlist.m3u8 diff --git a/tests/__data__/expected/.gh-pages/index.category.m3u b/tests/__data__/expected/.gh-pages/index.category.m3u index 5478245cd..508c94701 100644 --- a/tests/__data__/expected/.gh-pages/index.category.m3u +++ b/tests/__data__/expected/.gh-pages/index.category.m3u @@ -1,4 +1,4 @@ -#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ad/andorradifusio.ad.epg.xml,https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml,https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xml" +#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml,https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xml" #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General",BBC News HD (720p) [Not 24/7] http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 #EXTINF:-1 tvg-id="LDPRTV.ru" tvg-country="RU" tvg-language="Russian" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) @@ -7,9 +7,11 @@ http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8 http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 #EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-country="CA" tvg-language="French" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 -#EXTINF:-1 tvg-id="AndorraTV.ad" tvg-country="AD" tvg-language="Valencian" tvg-logo="" group-title="Undefined",ATV (720p) [Offline] -https://iptv-all.lanesh4d0w.repl.co/andorra/atv -#EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV +#EXTINF:-1 tvg-id="ATV.ad" tvg-country="UK" tvg-language="" tvg-logo="" group-title="Undefined",Andorra TV (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="" tvg-country="IN" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 #EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Tastemade https://tastemade-freetv16min-plex.amagi.tv/hls/amagi_hls_data_tastemade-tastemadefreetv16-plex/CDN/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad" tvg-country="AD" tvg-language="" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/.gh-pages/index.country.m3u b/tests/__data__/expected/.gh-pages/index.country.m3u index 78f959ce4..0a2dfa6a9 100644 --- a/tests/__data__/expected/.gh-pages/index.country.m3u +++ b/tests/__data__/expected/.gh-pages/index.country.m3u @@ -1,4 +1,4 @@ -#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ad/andorradifusio.ad.epg.xml,https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml,https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xml" +#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml,https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xml" #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="Afghanistan",BBC News HD (720p) [Not 24/7] http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="Albania",BBC News HD (720p) [Not 24/7] @@ -7,10 +7,10 @@ http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="American Samoa",BBC News HD (720p) [Not 24/7] http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 -#EXTINF:-1 tvg-id="AndorraTV.ad" tvg-country="AD" tvg-language="Valencian" tvg-logo="" group-title="Andorra",ATV (720p) [Offline] -https://iptv-all.lanesh4d0w.repl.co/andorra/atv #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="Andorra",BBC News HD (720p) [Not 24/7] http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad" tvg-country="AD" tvg-language="" tvg-logo="" group-title="Andorra",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="Angola",BBC News HD (720p) [Not 24/7] http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="Anguilla",BBC News HD (720p) [Not 24/7] @@ -205,6 +205,8 @@ http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="India",BBC News HD (720p) [Not 24/7] http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 +#EXTINF:-1 tvg-id="" tvg-country="IN" tvg-language="" tvg-logo="" group-title="India",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="Indonesia",BBC News HD (720p) [Not 24/7] http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="Iran",BBC News HD (720p) [Not 24/7] @@ -477,6 +479,8 @@ http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="United Arab Emirates",BBC News HD (720p) [Not 24/7] http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 +#EXTINF:-1 tvg-id="ATV.ad" tvg-country="UK" tvg-language="" tvg-logo="" group-title="United Kingdom",Andorra TV (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="United Kingdom",BBC News HD (720p) [Not 24/7] http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="United States",BBC News HD (720p) [Not 24/7] @@ -505,7 +509,5 @@ http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="Åland",BBC News HD (720p) [Not 24/7] http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 -#EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV -http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 #EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Tastemade https://tastemade-freetv16min-plex.amagi.tv/hls/amagi_hls_data_tastemade-tastemadefreetv16-plex/CDN/playlist.m3u8 diff --git a/tests/__data__/expected/.gh-pages/index.language.m3u b/tests/__data__/expected/.gh-pages/index.language.m3u index 3a43dc07b..9430c747a 100644 --- a/tests/__data__/expected/.gh-pages/index.language.m3u +++ b/tests/__data__/expected/.gh-pages/index.language.m3u @@ -1,13 +1,15 @@ -#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ad/andorradifusio.ad.epg.xml,https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml,https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xml" +#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml,https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xml" #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="English",BBC News HD (720p) [Not 24/7] http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 #EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-country="CA" tvg-language="French" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="French",Meteomedia http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 #EXTINF:-1 tvg-id="LDPRTV.ru" tvg-country="RU" tvg-language="Russian" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Russian",ЛДПР ТВ (1080p) http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8 -#EXTINF:-1 tvg-id="AndorraTV.ad" tvg-country="AD" tvg-language="Valencian" tvg-logo="" group-title="Valencian",ATV (720p) [Offline] -https://iptv-all.lanesh4d0w.repl.co/andorra/atv -#EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV +#EXTINF:-1 tvg-id="ATV.ad" tvg-country="UK" tvg-language="" tvg-logo="" group-title="Undefined",Andorra TV (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="" tvg-country="IN" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 #EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Tastemade https://tastemade-freetv16min-plex.amagi.tv/hls/amagi_hls_data_tastemade-tastemadefreetv16-plex/CDN/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad" tvg-country="AD" tvg-language="" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/.gh-pages/index.m3u b/tests/__data__/expected/.gh-pages/index.m3u index defab9463..763b5ee26 100644 --- a/tests/__data__/expected/.gh-pages/index.m3u +++ b/tests/__data__/expected/.gh-pages/index.m3u @@ -1,13 +1,15 @@ -#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ad/andorradifusio.ad.epg.xml,https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml,https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xml" -#EXTINF:-1 tvg-id="AndorraTV.ad" tvg-country="AD" tvg-language="Valencian" tvg-logo="" group-title="Undefined",ATV (720p) [Offline] -https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml,https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xml" +#EXTINF:-1 tvg-id="ATV.ad" tvg-country="UK" tvg-language="" tvg-logo="" group-title="Undefined",Andorra TV (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD (720p) [Not 24/7] http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 -#EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV +#EXTINF:-1 tvg-id="" tvg-country="IN" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 #EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-country="CA" tvg-language="French" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 #EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Tastemade https://tastemade-freetv16min-plex.amagi.tv/hls/amagi_hls_data_tastemade-tastemadefreetv16-plex/CDN/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad" tvg-country="AD" tvg-language="" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo #EXTINF:-1 tvg-id="LDPRTV.ru" tvg-country="RU" tvg-language="Russian" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8 diff --git a/tests/__data__/expected/.gh-pages/index.nsfw.m3u b/tests/__data__/expected/.gh-pages/index.nsfw.m3u index 95db56354..27f908f75 100644 --- a/tests/__data__/expected/.gh-pages/index.nsfw.m3u +++ b/tests/__data__/expected/.gh-pages/index.nsfw.m3u @@ -1,9 +1,9 @@ -#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ad/andorradifusio.ad.epg.xml,https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml,https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xml" -#EXTINF:-1 tvg-id="AndorraTV.ad" tvg-country="AD" tvg-language="Valencian" tvg-logo="" group-title="Undefined",ATV (720p) [Offline] -https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml,https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xml" +#EXTINF:-1 tvg-id="ATV.ad" tvg-country="UK" tvg-language="" tvg-logo="" group-title="Undefined",Andorra TV (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD (720p) [Not 24/7] http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 -#EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV +#EXTINF:-1 tvg-id="" tvg-country="IN" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 #EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-country="CA" tvg-language="French" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 @@ -11,5 +11,7 @@ http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 https://tastemade-freetv16min-plex.amagi.tv/hls/amagi_hls_data_tastemade-tastemadefreetv16-plex/CDN/playlist.m3u8 #EXTINF:-1 tvg-id="VisitXTV.nl" tvg-country="INT" tvg-language="Flemish" tvg-logo="https://i.imgur.com/RJ9wbNF.jpg" group-title="XXX",Visit-X TV https://stream.visit-x.tv/vxtv/ngrp:live_all/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad" tvg-country="AD" tvg-language="" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo #EXTINF:-1 tvg-id="LDPRTV.ru" tvg-country="RU" tvg-language="Russian" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8 diff --git a/tests/__data__/expected/.gh-pages/index.region.m3u b/tests/__data__/expected/.gh-pages/index.region.m3u index 2f40d87d1..d81e2f75c 100644 --- a/tests/__data__/expected/.gh-pages/index.region.m3u +++ b/tests/__data__/expected/.gh-pages/index.region.m3u @@ -1,31 +1,43 @@ -#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ad/andorradifusio.ad.epg.xml,https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml,https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xml" +#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml,https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xml" #EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-country="CA" tvg-language="French" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Americas",Meteomedia http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="" tvg-country="IN" tvg-language="" tvg-logo="" group-title="Asia",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 #EXTINF:-1 tvg-id="LDPRTV.ru" tvg-country="RU" tvg-language="Russian" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Asia",ЛДПР ТВ (1080p) http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8 +#EXTINF:-1 tvg-id="" tvg-country="IN" tvg-language="" tvg-logo="" group-title="Asia-Pacific",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 #EXTINF:-1 tvg-id="LDPRTV.ru" tvg-country="RU" tvg-language="Russian" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Commonwealth of Independent States",ЛДПР ТВ (1080p) http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8 -#EXTINF:-1 tvg-id="AndorraTV.ad" tvg-country="AD" tvg-language="Valencian" tvg-logo="" group-title="Europe",ATV (720p) [Offline] -https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="ATV.ad" tvg-country="UK" tvg-language="" tvg-logo="" group-title="Europe",Andorra TV (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad" tvg-country="AD" tvg-language="" tvg-logo="" group-title="Europe",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo #EXTINF:-1 tvg-id="LDPRTV.ru" tvg-country="RU" tvg-language="Russian" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Europe",ЛДПР ТВ (1080p) http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8 -#EXTINF:-1 tvg-id="AndorraTV.ad" tvg-country="AD" tvg-language="Valencian" tvg-logo="" group-title="Europe, the Middle East and Africa",ATV (720p) [Offline] -https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="ATV.ad" tvg-country="UK" tvg-language="" tvg-logo="" group-title="Europe, the Middle East and Africa",Andorra TV (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad" tvg-country="AD" tvg-language="" tvg-logo="" group-title="Europe, the Middle East and Africa",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo #EXTINF:-1 tvg-id="LDPRTV.ru" tvg-country="RU" tvg-language="Russian" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Europe, the Middle East and Africa",ЛДПР ТВ (1080p) http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8 #EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-country="CA" tvg-language="French" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="North America",Meteomedia http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 #EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-country="CA" tvg-language="French" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Northern America",Meteomedia http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 -#EXTINF:-1 tvg-id="AndorraTV.ad" tvg-country="AD" tvg-language="Valencian" tvg-logo="" group-title="Worldwide",ATV (720p) [Offline] -https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="" tvg-country="IN" tvg-language="" tvg-logo="" group-title="South Asia",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="ATV.ad" tvg-country="UK" tvg-language="" tvg-logo="" group-title="Worldwide",Andorra TV (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="Worldwide",BBC News HD (720p) [Not 24/7] http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 +#EXTINF:-1 tvg-id="" tvg-country="IN" tvg-language="" tvg-logo="" group-title="Worldwide",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 #EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-country="CA" tvg-language="French" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Worldwide",Meteomedia http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad" tvg-country="AD" tvg-language="" tvg-logo="" group-title="Worldwide",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo #EXTINF:-1 tvg-id="LDPRTV.ru" tvg-country="RU" tvg-language="Russian" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Worldwide",ЛДПР ТВ (1080p) http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8 -#EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV -http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 #EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Tastemade https://tastemade-freetv16min-plex.amagi.tv/hls/amagi_hls_data_tastemade-tastemadefreetv16-plex/CDN/playlist.m3u8 diff --git a/tests/__data__/expected/.gh-pages/languages/cat.m3u b/tests/__data__/expected/.gh-pages/languages/cat.m3u deleted file mode 100644 index 940072790..000000000 --- a/tests/__data__/expected/.gh-pages/languages/cat.m3u +++ /dev/null @@ -1,3 +0,0 @@ -#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ad/andorradifusio.ad.epg.xml" -#EXTINF:-1 tvg-id="AndorraTV.ad" tvg-country="AD" tvg-language="Valencian" tvg-logo="" group-title="Undefined",ATV (720p) [Offline] -https://iptv-all.lanesh4d0w.repl.co/andorra/atv diff --git a/tests/__data__/expected/.gh-pages/languages/fra.m3u b/tests/__data__/expected/.gh-pages/languages/fra.m3u new file mode 100644 index 000000000..1dfd5d41a --- /dev/null +++ b/tests/__data__/expected/.gh-pages/languages/fra.m3u @@ -0,0 +1,3 @@ +#EXTM3U x-tvg-url="" +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-country="CA" tvg-language="French" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/.gh-pages/languages/undefined.m3u b/tests/__data__/expected/.gh-pages/languages/undefined.m3u index f2393c589..9c088466a 100644 --- a/tests/__data__/expected/.gh-pages/languages/undefined.m3u +++ b/tests/__data__/expected/.gh-pages/languages/undefined.m3u @@ -1,5 +1,9 @@ #EXTM3U x-tvg-url="" -#EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV +#EXTINF:-1 tvg-id="ATV.ad" tvg-country="UK" tvg-language="" tvg-logo="" group-title="Undefined",Andorra TV (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="" tvg-country="IN" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 #EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Tastemade https://tastemade-freetv16min-plex.amagi.tv/hls/amagi_hls_data_tastemade-tastemadefreetv16-plex/CDN/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad" tvg-country="AD" tvg-language="" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/.gh-pages/regions/afr.m3u b/tests/__data__/expected/.gh-pages/regions/afr.m3u new file mode 100644 index 000000000..275a498ee --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/afr.m3u @@ -0,0 +1 @@ +#EXTM3U x-tvg-url="" diff --git a/tests/__data__/expected/.gh-pages/regions/amer.m3u b/tests/__data__/expected/.gh-pages/regions/amer.m3u new file mode 100644 index 000000000..1dfd5d41a --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/amer.m3u @@ -0,0 +1,3 @@ +#EXTM3U x-tvg-url="" +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-country="CA" tvg-language="French" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/.gh-pages/regions/apac.m3u b/tests/__data__/expected/.gh-pages/regions/apac.m3u new file mode 100644 index 000000000..3195408c1 --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/apac.m3u @@ -0,0 +1,3 @@ +#EXTM3U x-tvg-url="" +#EXTINF:-1 tvg-id="" tvg-country="IN" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 diff --git a/tests/__data__/expected/.gh-pages/regions/arab.m3u b/tests/__data__/expected/.gh-pages/regions/arab.m3u new file mode 100644 index 000000000..275a498ee --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/arab.m3u @@ -0,0 +1 @@ +#EXTM3U x-tvg-url="" diff --git a/tests/__data__/expected/.gh-pages/regions/asia.m3u b/tests/__data__/expected/.gh-pages/regions/asia.m3u index 0b77eed5a..548d25697 100644 --- a/tests/__data__/expected/.gh-pages/regions/asia.m3u +++ b/tests/__data__/expected/.gh-pages/regions/asia.m3u @@ -1,3 +1,5 @@ #EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml" +#EXTINF:-1 tvg-id="" tvg-country="IN" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 #EXTINF:-1 tvg-id="LDPRTV.ru" tvg-country="RU" tvg-language="Russian" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8 diff --git a/tests/__data__/expected/.gh-pages/regions/carib.m3u b/tests/__data__/expected/.gh-pages/regions/carib.m3u new file mode 100644 index 000000000..275a498ee --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/carib.m3u @@ -0,0 +1 @@ +#EXTM3U x-tvg-url="" diff --git a/tests/__data__/expected/.gh-pages/regions/cas.m3u b/tests/__data__/expected/.gh-pages/regions/cas.m3u new file mode 100644 index 000000000..275a498ee --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/cas.m3u @@ -0,0 +1 @@ +#EXTM3U x-tvg-url="" diff --git a/tests/__data__/expected/.gh-pages/regions/emea.m3u b/tests/__data__/expected/.gh-pages/regions/emea.m3u index 168033fc2..c580d531b 100644 --- a/tests/__data__/expected/.gh-pages/regions/emea.m3u +++ b/tests/__data__/expected/.gh-pages/regions/emea.m3u @@ -1,5 +1,7 @@ -#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ad/andorradifusio.ad.epg.xml,https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml" -#EXTINF:-1 tvg-id="AndorraTV.ad" tvg-country="AD" tvg-language="Valencian" tvg-logo="" group-title="Undefined",ATV (720p) [Offline] -https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml" +#EXTINF:-1 tvg-id="ATV.ad" tvg-country="UK" tvg-language="" tvg-logo="" group-title="Undefined",Andorra TV (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad" tvg-country="AD" tvg-language="" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo #EXTINF:-1 tvg-id="LDPRTV.ru" tvg-country="RU" tvg-language="Russian" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8 diff --git a/tests/__data__/expected/.gh-pages/regions/eur.m3u b/tests/__data__/expected/.gh-pages/regions/eur.m3u index 168033fc2..c580d531b 100644 --- a/tests/__data__/expected/.gh-pages/regions/eur.m3u +++ b/tests/__data__/expected/.gh-pages/regions/eur.m3u @@ -1,5 +1,7 @@ -#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ad/andorradifusio.ad.epg.xml,https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml" -#EXTINF:-1 tvg-id="AndorraTV.ad" tvg-country="AD" tvg-language="Valencian" tvg-logo="" group-title="Undefined",ATV (720p) [Offline] -https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml" +#EXTINF:-1 tvg-id="ATV.ad" tvg-country="UK" tvg-language="" tvg-logo="" group-title="Undefined",Andorra TV (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad" tvg-country="AD" tvg-language="" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo #EXTINF:-1 tvg-id="LDPRTV.ru" tvg-country="RU" tvg-language="Russian" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8 diff --git a/tests/__data__/expected/.gh-pages/regions/hispam.m3u b/tests/__data__/expected/.gh-pages/regions/hispam.m3u new file mode 100644 index 000000000..275a498ee --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/hispam.m3u @@ -0,0 +1 @@ +#EXTM3U x-tvg-url="" diff --git a/tests/__data__/expected/.gh-pages/regions/int.m3u b/tests/__data__/expected/.gh-pages/regions/int.m3u index 11a540bc9..b67457758 100644 --- a/tests/__data__/expected/.gh-pages/regions/int.m3u +++ b/tests/__data__/expected/.gh-pages/regions/int.m3u @@ -1,9 +1,13 @@ -#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ad/andorradifusio.ad.epg.xml,https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml,https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xml" -#EXTINF:-1 tvg-id="AndorraTV.ad" tvg-country="AD" tvg-language="Valencian" tvg-logo="" group-title="Undefined",ATV (720p) [Offline] -https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml,https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xml" +#EXTINF:-1 tvg-id="ATV.ad" tvg-country="UK" tvg-language="" tvg-logo="" group-title="Undefined",Andorra TV (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 #EXTINF:-1 tvg-id="BBCNews.uk" tvg-country="INT" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD (720p) [Not 24/7] http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 +#EXTINF:-1 tvg-id="" tvg-country="IN" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 #EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-country="CA" tvg-language="French" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad" tvg-country="AD" tvg-language="" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo #EXTINF:-1 tvg-id="LDPRTV.ru" tvg-country="RU" tvg-language="Russian" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8 diff --git a/tests/__data__/expected/.gh-pages/regions/lac.m3u b/tests/__data__/expected/.gh-pages/regions/lac.m3u new file mode 100644 index 000000000..275a498ee --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/lac.m3u @@ -0,0 +1 @@ +#EXTM3U x-tvg-url="" diff --git a/tests/__data__/expected/.gh-pages/regions/latam.m3u b/tests/__data__/expected/.gh-pages/regions/latam.m3u new file mode 100644 index 000000000..275a498ee --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/latam.m3u @@ -0,0 +1 @@ +#EXTM3U x-tvg-url="" diff --git a/tests/__data__/expected/.gh-pages/regions/maghreb.m3u b/tests/__data__/expected/.gh-pages/regions/maghreb.m3u new file mode 100644 index 000000000..275a498ee --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/maghreb.m3u @@ -0,0 +1 @@ +#EXTM3U x-tvg-url="" diff --git a/tests/__data__/expected/.gh-pages/regions/mena.m3u b/tests/__data__/expected/.gh-pages/regions/mena.m3u new file mode 100644 index 000000000..275a498ee --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/mena.m3u @@ -0,0 +1 @@ +#EXTM3U x-tvg-url="" diff --git a/tests/__data__/expected/.gh-pages/regions/mideast.m3u b/tests/__data__/expected/.gh-pages/regions/mideast.m3u new file mode 100644 index 000000000..275a498ee --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/mideast.m3u @@ -0,0 +1 @@ +#EXTM3U x-tvg-url="" diff --git a/tests/__data__/expected/.gh-pages/regions/nam.m3u b/tests/__data__/expected/.gh-pages/regions/nam.m3u new file mode 100644 index 000000000..1dfd5d41a --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/nam.m3u @@ -0,0 +1,3 @@ +#EXTM3U x-tvg-url="" +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-country="CA" tvg-language="French" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/.gh-pages/regions/noram.m3u b/tests/__data__/expected/.gh-pages/regions/noram.m3u new file mode 100644 index 000000000..1dfd5d41a --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/noram.m3u @@ -0,0 +1,3 @@ +#EXTM3U x-tvg-url="" +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-country="CA" tvg-language="French" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/.gh-pages/regions/nord.m3u b/tests/__data__/expected/.gh-pages/regions/nord.m3u new file mode 100644 index 000000000..275a498ee --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/nord.m3u @@ -0,0 +1 @@ +#EXTM3U x-tvg-url="" diff --git a/tests/__data__/expected/.gh-pages/regions/oce.m3u b/tests/__data__/expected/.gh-pages/regions/oce.m3u new file mode 100644 index 000000000..275a498ee --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/oce.m3u @@ -0,0 +1 @@ +#EXTM3U x-tvg-url="" diff --git a/tests/__data__/expected/.gh-pages/regions/sas.m3u b/tests/__data__/expected/.gh-pages/regions/sas.m3u new file mode 100644 index 000000000..3195408c1 --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/sas.m3u @@ -0,0 +1,3 @@ +#EXTM3U x-tvg-url="" +#EXTINF:-1 tvg-id="" tvg-country="IN" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 diff --git a/tests/__data__/expected/.gh-pages/regions/ssa.m3u b/tests/__data__/expected/.gh-pages/regions/ssa.m3u new file mode 100644 index 000000000..275a498ee --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/ssa.m3u @@ -0,0 +1 @@ +#EXTM3U x-tvg-url="" diff --git a/tests/__data__/expected/.gh-pages/regions/undefined.m3u b/tests/__data__/expected/.gh-pages/regions/undefined.m3u index f2393c589..a29324571 100644 --- a/tests/__data__/expected/.gh-pages/regions/undefined.m3u +++ b/tests/__data__/expected/.gh-pages/regions/undefined.m3u @@ -1,5 +1,3 @@ #EXTM3U x-tvg-url="" -#EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Daawah TV -http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 #EXTINF:-1 tvg-id="" tvg-country="" tvg-language="" tvg-logo="" group-title="Undefined",Tastemade https://tastemade-freetv16min-plex.amagi.tv/hls/amagi_hls_data_tastemade-tastemadefreetv16-plex/CDN/playlist.m3u8 diff --git a/tests/__data__/expected/.gh-pages/regions/wafr.m3u b/tests/__data__/expected/.gh-pages/regions/wafr.m3u new file mode 100644 index 000000000..275a498ee --- /dev/null +++ b/tests/__data__/expected/.gh-pages/regions/wafr.m3u @@ -0,0 +1 @@ +#EXTM3U x-tvg-url="" diff --git a/tests/__data__/expected/logs/generators/categories.log b/tests/__data__/expected/logs/generators/categories.log index af68b09a9..9e170e51c 100644 --- a/tests/__data__/expected/logs/generators/categories.log +++ b/tests/__data__/expected/logs/generators/categories.log @@ -26,4 +26,4 @@ {"filepath":"categories/travel.m3u","count":0} {"filepath":"categories/weather.m3u","count":1} {"filepath":"categories/xxx.m3u","count":1} -{"filepath":"categories/undefined.m3u","count":3} \ No newline at end of file +{"filepath":"categories/undefined.m3u","count":4} \ No newline at end of file diff --git a/tests/__data__/expected/logs/generators/countries.log b/tests/__data__/expected/logs/generators/countries.log index 9d56d14b6..c2b3b1676 100644 --- a/tests/__data__/expected/logs/generators/countries.log +++ b/tests/__data__/expected/logs/generators/countries.log @@ -98,7 +98,7 @@ {"filepath":"countries/hk.m3u","count":1} {"filepath":"countries/hu.m3u","count":1} {"filepath":"countries/is.m3u","count":1} -{"filepath":"countries/in.m3u","count":1} +{"filepath":"countries/in.m3u","count":2} {"filepath":"countries/id.m3u","count":1} {"filepath":"countries/ir.m3u","count":1} {"filepath":"countries/iq.m3u","count":1} @@ -234,7 +234,7 @@ {"filepath":"countries/ug.m3u","count":1} {"filepath":"countries/ua.m3u","count":1} {"filepath":"countries/ae.m3u","count":1} -{"filepath":"countries/uk.m3u","count":1} +{"filepath":"countries/uk.m3u","count":2} {"filepath":"countries/us.m3u","count":1} {"filepath":"countries/uy.m3u","count":1} {"filepath":"countries/uz.m3u","count":1} @@ -248,4 +248,4 @@ {"filepath":"countries/zm.m3u","count":1} {"filepath":"countries/zw.m3u","count":1} {"filepath":"countries/ax.m3u","count":1} -{"filepath":"countries/undefined.m3u","count":2} \ No newline at end of file +{"filepath":"countries/undefined.m3u","count":1} \ No newline at end of file diff --git a/tests/__data__/expected/logs/generators/index_category_m3u.log b/tests/__data__/expected/logs/generators/index_category_m3u.log new file mode 100644 index 000000000..fa8ba62b8 --- /dev/null +++ b/tests/__data__/expected/logs/generators/index_category_m3u.log @@ -0,0 +1 @@ +{"filepath":"index.category.m3u","count":8} \ No newline at end of file diff --git a/tests/__data__/expected/logs/generators/index_country_m3u.log b/tests/__data__/expected/logs/generators/index_country_m3u.log new file mode 100644 index 000000000..11d20bf36 --- /dev/null +++ b/tests/__data__/expected/logs/generators/index_country_m3u.log @@ -0,0 +1 @@ +{"filepath":"index.country.m3u","count":256} \ No newline at end of file diff --git a/tests/__data__/expected/logs/generators/index_language_m3u.log b/tests/__data__/expected/logs/generators/index_language_m3u.log new file mode 100644 index 000000000..c3d549c79 --- /dev/null +++ b/tests/__data__/expected/logs/generators/index_language_m3u.log @@ -0,0 +1 @@ +{"filepath":"index.language.m3u","count":7} \ No newline at end of file diff --git a/tests/__data__/expected/logs/generators/index_m3u.log b/tests/__data__/expected/logs/generators/index_m3u.log new file mode 100644 index 000000000..eb39be430 --- /dev/null +++ b/tests/__data__/expected/logs/generators/index_m3u.log @@ -0,0 +1 @@ +{"filepath":"index.m3u","count":7} \ No newline at end of file diff --git a/tests/__data__/expected/logs/generators/index_nsfw_m3u.log b/tests/__data__/expected/logs/generators/index_nsfw_m3u.log new file mode 100644 index 000000000..c44134e77 --- /dev/null +++ b/tests/__data__/expected/logs/generators/index_nsfw_m3u.log @@ -0,0 +1 @@ +{"filepath":"index.nsfw.m3u","count":8} \ No newline at end of file diff --git a/tests/__data__/expected/logs/generators/index_region_m3u.log b/tests/__data__/expected/logs/generators/index_region_m3u.log new file mode 100644 index 000000000..6b5c533f9 --- /dev/null +++ b/tests/__data__/expected/logs/generators/index_region_m3u.log @@ -0,0 +1 @@ +{"filepath":"index.region.m3u","count":21} \ No newline at end of file diff --git a/tests/__data__/expected/logs/generators/languages.log b/tests/__data__/expected/logs/generators/languages.log index a11820504..2ad6ba59e 100644 --- a/tests/__data__/expected/logs/generators/languages.log +++ b/tests/__data__/expected/logs/generators/languages.log @@ -1,5 +1,4 @@ -{"filepath":"languages/cat.m3u","count":1} {"filepath":"languages/eng.m3u","count":1} {"filepath":"languages/fra.m3u","count":1} {"filepath":"languages/rus.m3u","count":1} -{"filepath":"languages/undefined.m3u","count":2} \ No newline at end of file +{"filepath":"languages/undefined.m3u","count":4} \ No newline at end of file diff --git a/tests/__data__/expected/logs/generators/regions.log b/tests/__data__/expected/logs/generators/regions.log index ddf9139e0..55cc847a0 100644 --- a/tests/__data__/expected/logs/generators/regions.log +++ b/tests/__data__/expected/logs/generators/regions.log @@ -1,13 +1,13 @@ {"filepath":"regions/afr.m3u","count":0} {"filepath":"regions/amer.m3u","count":1} {"filepath":"regions/arab.m3u","count":0} -{"filepath":"regions/asia.m3u","count":1} -{"filepath":"regions/apac.m3u","count":0} +{"filepath":"regions/asia.m3u","count":2} +{"filepath":"regions/apac.m3u","count":1} {"filepath":"regions/carib.m3u","count":0} {"filepath":"regions/cas.m3u","count":0} {"filepath":"regions/cis.m3u","count":1} -{"filepath":"regions/eur.m3u","count":2} -{"filepath":"regions/emea.m3u","count":2} +{"filepath":"regions/eur.m3u","count":3} +{"filepath":"regions/emea.m3u","count":3} {"filepath":"regions/hispam.m3u","count":0} {"filepath":"regions/latam.m3u","count":0} {"filepath":"regions/lac.m3u","count":0} @@ -18,8 +18,8 @@ {"filepath":"regions/noram.m3u","count":1} {"filepath":"regions/nam.m3u","count":1} {"filepath":"regions/oce.m3u","count":0} -{"filepath":"regions/sas.m3u","count":0} +{"filepath":"regions/sas.m3u","count":1} {"filepath":"regions/ssa.m3u","count":0} {"filepath":"regions/wafr.m3u","count":0} -{"filepath":"regions/int.m3u","count":4} -{"filepath":"regions/undefined.m3u","count":2} \ No newline at end of file +{"filepath":"regions/int.m3u","count":6} +{"filepath":"regions/undefined.m3u","count":1} \ No newline at end of file