mirror of
https://github.com/doms9/iptv.git
synced 2026-01-21 03:59:03 +01:00
Compare commits
No commits in common. "8d4d6c5751d734b77e17334406163c52a66fe190" and "1a050be1bd6e71ee8da0dbc46802a3bd38d69848" have entirely different histories.
8d4d6c5751
...
1a050be1bd
8 changed files with 89934 additions and 90090 deletions
176153
EPG/TV.xml
176153
EPG/TV.xml
File diff suppressed because one or more lines are too long
1892
M3U8/TV.m3u8
1892
M3U8/TV.m3u8
File diff suppressed because it is too large
Load diff
1892
M3U8/events.m3u8
1892
M3U8/events.m3u8
File diff suppressed because it is too large
Load diff
|
|
@ -21,7 +21,7 @@ BASE_URL = "https://roxiestreams.live"
|
|||
|
||||
SPORT_ENDPOINTS = {
|
||||
"fighting": "Fighting",
|
||||
# "mlb": "MLB",
|
||||
"mlb": "MLB",
|
||||
"motorsports": "Racing",
|
||||
"nba": "NBA",
|
||||
"nfl": "American Football",
|
||||
|
|
|
|||
|
|
@ -24,12 +24,12 @@ CATEGORIES = {
|
|||
"American Football": "sport_68c02a4465113",
|
||||
# "Baseball": "sport_68c02a446582f",
|
||||
"Basketball": "sport_68c02a4466011",
|
||||
"Cricket": "sport_68c02a44669f3",
|
||||
# "Cricket": "sport_68c02a44669f3",
|
||||
"Hockey": "sport_68c02a4466f56",
|
||||
"MMA": "sport_68c02a44674e9",
|
||||
"Racing": "sport_68c02a4467a48",
|
||||
# "Rugby": "sport_68c02a4467fc1",
|
||||
"Tennis": "sport_68c02a4468cf7",
|
||||
# "Tennis": "sport_68c02a4468cf7",
|
||||
# "Volleyball": "sport_68c02a4469422",
|
||||
}
|
||||
|
||||
|
|
@ -135,11 +135,9 @@ async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:
|
|||
async def scrape() -> None:
|
||||
cached_urls = CACHE_FILE.load()
|
||||
|
||||
valid_urls = {k: v for k, v in cached_urls.items() if v["url"]}
|
||||
cached_count = len(cached_urls)
|
||||
|
||||
valid_count = cached_count = len(valid_urls)
|
||||
|
||||
urls.update(valid_urls)
|
||||
urls.update(cached_urls)
|
||||
|
||||
log.info(f"Loaded {cached_count} event(s) from cache")
|
||||
|
||||
|
|
@ -171,38 +169,34 @@ async def scrape() -> None:
|
|||
log=log,
|
||||
)
|
||||
|
||||
sport, event, logo, link, ts = (
|
||||
ev["sport"],
|
||||
ev["event"],
|
||||
ev["logo"],
|
||||
ev["link"],
|
||||
ev["event_ts"],
|
||||
)
|
||||
|
||||
key = f"[{sport}] {event} ({TAG})"
|
||||
|
||||
tvg_id, pic = leagues.get_tvg_info(sport, event)
|
||||
|
||||
entry = {
|
||||
"url": url,
|
||||
"logo": logo or pic,
|
||||
"base": "https://storytrench.net/",
|
||||
"timestamp": ts,
|
||||
"id": tvg_id or "Live.Event.us",
|
||||
"link": link,
|
||||
}
|
||||
|
||||
cached_urls[key] = entry
|
||||
|
||||
if url:
|
||||
valid_count += 1
|
||||
sport, event, logo, link, ts = (
|
||||
ev["sport"],
|
||||
ev["event"],
|
||||
ev["logo"],
|
||||
ev["link"],
|
||||
ev["event_ts"],
|
||||
)
|
||||
|
||||
urls[key] = entry
|
||||
key = f"[{sport}] {event} ({TAG})"
|
||||
|
||||
tvg_id, pic = leagues.get_tvg_info(sport, event)
|
||||
|
||||
entry = {
|
||||
"url": url,
|
||||
"logo": logo or pic,
|
||||
"base": "https://storytrench.net/",
|
||||
"timestamp": ts,
|
||||
"id": tvg_id or "Live.Event.us",
|
||||
"link": link,
|
||||
}
|
||||
|
||||
urls[key] = cached_urls[key] = entry
|
||||
|
||||
finally:
|
||||
await browser.close()
|
||||
|
||||
if new_count := valid_count - cached_count:
|
||||
if new_count := len(cached_urls) - cached_count:
|
||||
log.info(f"Collected and cached {new_count} new event(s)")
|
||||
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -549,7 +549,7 @@
|
|||
{
|
||||
"LIGUE 1": {
|
||||
"logo": "https://ligue1.com/images/Logo_Ligue_1.webp",
|
||||
"names": ["FRANCE LIGUE 1", "FRENCH LIGUE 1", "LIGUE 1 FRANCE"]
|
||||
"names": ["FRANCE LIGUE 1", "FRENCH LIGUE 1"]
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -591,11 +591,7 @@
|
|||
{
|
||||
"PRIMEIRA LIGA": {
|
||||
"logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/14.png",
|
||||
"names": [
|
||||
"LIGA PORTUGAL",
|
||||
"PORTUGAL PRIMEIRA LIGA",
|
||||
"PORTUGUESE PRIMEIRA LIGA"
|
||||
]
|
||||
"names": ["LIGA PORTUGAL", "PORTUGUESE PRIMEIRA LIGA"]
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -32,16 +32,16 @@ VALID_SPORTS = [
|
|||
# "australian-football",
|
||||
# "baseball",
|
||||
"basketball",
|
||||
"cricket",
|
||||
"darts",
|
||||
# "cricket",
|
||||
# "darts",
|
||||
"fighting",
|
||||
"football",
|
||||
"golf",
|
||||
"hockey",
|
||||
"racing",
|
||||
# "rugby",
|
||||
"tennis",
|
||||
"volleyball",
|
||||
# "tennis",
|
||||
# "volleyball",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
11
readme.md
11
readme.md
|
|
@ -1,10 +1,15 @@
|
|||
## Base Log @ 2026-01-02 17:36 UTC
|
||||
## Base Log @ 2026-01-01 20:43 UTC
|
||||
|
||||
### ✅ Working Streams: 145<br>❌ Dead Streams: 1
|
||||
### ✅ Working Streams: 140<br>❌ Dead Streams: 6
|
||||
|
||||
| Channel | Error (Code) | Link |
|
||||
| ------- | ------------ | ---- |
|
||||
| BET | HTTP Error (404) | `http://fl1.moveonjoy.com/BET_EAST/index.m3u8` |
|
||||
| Bounce TV | HTTP Error (404) | `http://fl1.moveonjoy.com/BOUNCE_TV/index.m3u8` |
|
||||
| FX Movie Channel | HTTP Error (404) | `http://fl1.moveonjoy.com/FX_MOVIE/index.m3u8` |
|
||||
| HBO Family | HTTP Error (404) | `https://fl1.moveonjoy.com/HBO_FAMILY/index.m3u8` |
|
||||
| HBO | HTTP Error (404) | `http://fl1.moveonjoy.com/HBO/index.m3u8` |
|
||||
| Hallmark Channel | HTTP Error (404) | `http://fl1.moveonjoy.com/HALLMARK_CHANNEL/index.m3u8` |
|
||||
| Root Sports | HTTP Error (403) | `http://cord-cutter.net:8080/k4Svp2/645504/85232` |
|
||||
---
|
||||
#### Base Channels URL
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue