diff --git a/scripts/commands/playlist/generate.ts b/scripts/commands/playlist/generate.ts index 58677a59c7..6e960832a5 100644 --- a/scripts/commands/playlist/generate.ts +++ b/scripts/commands/playlist/generate.ts @@ -10,7 +10,6 @@ import { IndexLanguageGenerator, IndexCountryGenerator, SubdivisionsGenerator, - IndexRegionGenerator, CategoriesGenerator, CountriesGenerator, LanguagesGenerator, @@ -124,9 +123,6 @@ async function main() { logger.info('generating index.language.m3u...') await new IndexLanguageGenerator({ streams, logFile }).generate() - logger.info('generating index.region.m3u...') - await new IndexRegionGenerator({ streams, regions, logFile }).generate() - logger.info('saving generators.log...') const logStorage = new Storage(LOGS_DIR) logStorage.saveFile(logFile) diff --git a/scripts/generators/index.ts b/scripts/generators/index.ts index 7f09a6715b..66cf94eb4e 100644 --- a/scripts/generators/index.ts +++ b/scripts/generators/index.ts @@ -6,7 +6,6 @@ export * from './indexCountryGenerator' export * from './indexGenerator' export * from './indexLanguageGenerator' export * from './indexNsfwGenerator' -export * from './indexRegionGenerator' export * from './languagesGenerator' export * from './rawGenerator' export * from './regionsGenerator' diff --git a/scripts/generators/indexCountryGenerator.ts b/scripts/generators/indexCountryGenerator.ts index b476d828a8..016e86f731 100644 --- a/scripts/generators/indexCountryGenerator.ts +++ b/scripts/generators/indexCountryGenerator.ts @@ -26,13 +26,6 @@ export class IndexCountryGenerator implements Generator { .orderBy((stream: Stream) => stream.getTitle()) .filter((stream: Stream) => stream.isSFW()) .forEach((stream: Stream) => { - if (stream.isInternational()) { - const streamClone = stream.clone() - streamClone.groupTitle = 'International' - groupedStreams.add(streamClone) - return - } - if (!stream.hasBroadcastArea()) { const streamClone = stream.clone() streamClone.groupTitle = 'Undefined' @@ -45,6 +38,12 @@ export class IndexCountryGenerator implements Generator { streamClone.groupTitle = country.name groupedStreams.add(streamClone) }) + + if (stream.isInternational()) { + const streamClone = stream.clone() + streamClone.groupTitle = 'International' + groupedStreams.add(streamClone) + } }) groupedStreams = groupedStreams.orderBy((stream: Stream) => { diff --git a/scripts/generators/indexRegionGenerator.ts b/scripts/generators/indexRegionGenerator.ts deleted file mode 100644 index 27a9ae0fe5..0000000000 --- a/scripts/generators/indexRegionGenerator.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Collection, Storage, File } from '@freearhey/core' -import { Stream, Playlist, Region } from '../models' -import { PUBLIC_DIR, EOL } from '../constants' -import { Generator } from './generator' - -type IndexRegionGeneratorProps = { - streams: Collection - regions: Collection - logFile: File -} - -export class IndexRegionGenerator implements Generator { - streams: Collection - regions: Collection - storage: Storage - logFile: File - - constructor({ streams, regions, logFile }: IndexRegionGeneratorProps) { - this.streams = streams.clone() - this.regions = regions - this.storage = new Storage(PUBLIC_DIR) - this.logFile = logFile - } - - async generate(): Promise { - let groupedStreams = new Collection() - this.streams - .orderBy((stream: Stream) => stream.getTitle()) - .filter((stream: Stream) => stream.isSFW()) - .forEach((stream: Stream) => { - if (!stream.hasBroadcastArea()) return - - stream.getBroadcastRegions().forEach((region: Region) => { - if (region.isWorldwide()) return - - const streamClone = stream.clone() - streamClone.groupTitle = region.name - groupedStreams.push(streamClone) - }) - }) - - groupedStreams = groupedStreams.orderBy((stream: Stream) => stream.groupTitle) - - const playlist = new Playlist(groupedStreams, { public: true }) - const filepath = 'index.region.m3u' - await this.storage.save(filepath, playlist.toString()) - this.logFile.append( - JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() }) + EOL - ) - } -} diff --git a/scripts/generators/regionsGenerator.ts b/scripts/generators/regionsGenerator.ts index 60dab3d614..02112974ed 100644 --- a/scripts/generators/regionsGenerator.ts +++ b/scripts/generators/regionsGenerator.ts @@ -28,8 +28,6 @@ export class RegionsGenerator implements Generator { .filter((stream: Stream) => stream.isSFW()) this.regions.forEach(async (region: Region) => { - if (region.isWorldwide()) return - const regionStreams = streams.filter((stream: Stream) => stream.isBroadcastInRegion(region)) const playlist = new Playlist(regionStreams, { public: true }) diff --git a/scripts/models/broadcastArea.ts b/scripts/models/broadcastArea.ts index fa5b43f0e5..47b8a96c78 100644 --- a/scripts/models/broadcastArea.ts +++ b/scripts/models/broadcastArea.ts @@ -32,23 +32,27 @@ export class BroadcastArea { if (!city) return citiesIncluded.add(city) regionsIncluded = regionsIncluded.concat(city.getRegions()) + break } case 's': { const subdivision: Subdivision = subdivisionsKeyByCode.get(code) if (!subdivision) return subdivisionsIncluded.add(subdivision) regionsIncluded = regionsIncluded.concat(subdivision.getRegions()) + break } case 'c': { const country: Country = countriesKeyByCode.get(code) if (!country) return countriesIncluded.add(country) regionsIncluded = regionsIncluded.concat(country.getRegions()) + break } case 'r': { const region: Region = regionsKeyByCode.get(code) if (!region) return regionsIncluded = regionsIncluded.concat(region.getRegions()) + break } } })