Skip to content

Commit ed97646

Browse files
authored
Merge pull request #26389 from iptv-org/patch-2025.08.4
Patch 2025.08.4
2 parents 1e267a5 + c1f813c commit ed97646

File tree

17 files changed

+72
-252
lines changed

17 files changed

+72
-252
lines changed

.readme/template.md

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Playlists in which channels are grouped by broadcast area.
5050
#### Countries
5151

5252
```
53-
https://iptv-org.github.io/iptv/index.countries.m3u
53+
https://iptv-org.github.io/iptv/index.country.m3u
5454
```
5555

5656
Same thing, but split up into separate files:
@@ -60,12 +60,6 @@ Same thing, but split up into separate files:
6060

6161
#### Regions
6262

63-
```
64-
https://iptv-org.github.io/iptv/index.regions.m3u
65-
```
66-
67-
Same thing, but split up into separate files:
68-
6963
<!-- prettier-ignore -->
7064
#include "./.readme/_regions.md"
7165

scripts/commands/playlist/generate.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import {
1010
IndexLanguageGenerator,
1111
IndexCountryGenerator,
1212
SubdivisionsGenerator,
13-
IndexRegionGenerator,
1413
CategoriesGenerator,
1514
CountriesGenerator,
1615
LanguagesGenerator,
@@ -124,9 +123,6 @@ async function main() {
124123
logger.info('generating index.language.m3u...')
125124
await new IndexLanguageGenerator({ streams, logFile }).generate()
126125

127-
logger.info('generating index.region.m3u...')
128-
await new IndexRegionGenerator({ streams, regions, logFile }).generate()
129-
130126
logger.info('saving generators.log...')
131127
const logStorage = new Storage(LOGS_DIR)
132128
logStorage.saveFile(logFile)

scripts/generators/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ export * from './indexCountryGenerator'
66
export * from './indexGenerator'
77
export * from './indexLanguageGenerator'
88
export * from './indexNsfwGenerator'
9-
export * from './indexRegionGenerator'
109
export * from './languagesGenerator'
1110
export * from './rawGenerator'
1211
export * from './regionsGenerator'

scripts/generators/indexCountryGenerator.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,6 @@ export class IndexCountryGenerator implements Generator {
2626
.orderBy((stream: Stream) => stream.getTitle())
2727
.filter((stream: Stream) => stream.isSFW())
2828
.forEach((stream: Stream) => {
29-
if (stream.isInternational()) {
30-
const streamClone = stream.clone()
31-
streamClone.groupTitle = 'International'
32-
groupedStreams.add(streamClone)
33-
return
34-
}
35-
3629
if (!stream.hasBroadcastArea()) {
3730
const streamClone = stream.clone()
3831
streamClone.groupTitle = 'Undefined'
@@ -45,6 +38,12 @@ export class IndexCountryGenerator implements Generator {
4538
streamClone.groupTitle = country.name
4639
groupedStreams.add(streamClone)
4740
})
41+
42+
if (stream.isInternational()) {
43+
const streamClone = stream.clone()
44+
streamClone.groupTitle = 'International'
45+
groupedStreams.add(streamClone)
46+
}
4847
})
4948

5049
groupedStreams = groupedStreams.orderBy((stream: Stream) => {

scripts/generators/indexRegionGenerator.ts

Lines changed: 0 additions & 51 deletions
This file was deleted.

scripts/generators/regionsGenerator.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ export class RegionsGenerator implements Generator {
2828
.filter((stream: Stream) => stream.isSFW())
2929

3030
this.regions.forEach(async (region: Region) => {
31-
if (region.isWorldwide()) return
32-
3331
const regionStreams = streams.filter((stream: Stream) => stream.isBroadcastInRegion(region))
3432

3533
const playlist = new Playlist(regionStreams, { public: true })

scripts/models/broadcastArea.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,23 +32,27 @@ export class BroadcastArea {
3232
if (!city) return
3333
citiesIncluded.add(city)
3434
regionsIncluded = regionsIncluded.concat(city.getRegions())
35+
break
3536
}
3637
case 's': {
3738
const subdivision: Subdivision = subdivisionsKeyByCode.get(code)
3839
if (!subdivision) return
3940
subdivisionsIncluded.add(subdivision)
4041
regionsIncluded = regionsIncluded.concat(subdivision.getRegions())
42+
break
4143
}
4244
case 'c': {
4345
const country: Country = countriesKeyByCode.get(code)
4446
if (!country) return
4547
countriesIncluded.add(country)
4648
regionsIncluded = regionsIncluded.concat(country.getRegions())
49+
break
4750
}
4851
case 'r': {
4952
const region: Region = regionsKeyByCode.get(code)
5053
if (!region) return
5154
regionsIncluded = regionsIncluded.concat(region.getRegions())
55+
break
5256
}
5357
}
5458
})

tests/__data__/expected/playlist_generate/.gh-pages/countries/int.m3u

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,7 @@
33
http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8
44
#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i)
55
http://146.59.85.40:89/dunaworld/index.m3u8
6+
#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p)
7+
http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8
68
#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7]
79
http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8

tests/__data__/expected/playlist_generate/.gh-pages/index.country.m3u

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8
77
http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8
88
#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="International",Duna World (576i)
99
http://146.59.85.40:89/dunaworld/index.m3u8
10+
#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="International",ЛДПР ТВ (1080p)
11+
http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8
1012
#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="International",ЭлТР (480p) [Not 24/7]
1113
http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8
1214
#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7]

0 commit comments

Comments
 (0)