Compare commits

..

No commits in common. "8d4d6c5751d734b77e17334406163c52a66fe190" and "1a050be1bd6e71ee8da0dbc46802a3bd38d69848" have entirely different histories.

8 changed files with 89934 additions and 90090 deletions

176153
EPG/TV.xml

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -21,7 +21,7 @@ BASE_URL = "https://roxiestreams.live"
SPORT_ENDPOINTS = { SPORT_ENDPOINTS = {
"fighting": "Fighting", "fighting": "Fighting",
# "mlb": "MLB", "mlb": "MLB",
"motorsports": "Racing", "motorsports": "Racing",
"nba": "NBA", "nba": "NBA",
"nfl": "American Football", "nfl": "American Football",

View file

@ -24,12 +24,12 @@ CATEGORIES = {
"American Football": "sport_68c02a4465113", "American Football": "sport_68c02a4465113",
# "Baseball": "sport_68c02a446582f", # "Baseball": "sport_68c02a446582f",
"Basketball": "sport_68c02a4466011", "Basketball": "sport_68c02a4466011",
"Cricket": "sport_68c02a44669f3", # "Cricket": "sport_68c02a44669f3",
"Hockey": "sport_68c02a4466f56", "Hockey": "sport_68c02a4466f56",
"MMA": "sport_68c02a44674e9", "MMA": "sport_68c02a44674e9",
"Racing": "sport_68c02a4467a48", "Racing": "sport_68c02a4467a48",
# "Rugby": "sport_68c02a4467fc1", # "Rugby": "sport_68c02a4467fc1",
"Tennis": "sport_68c02a4468cf7", # "Tennis": "sport_68c02a4468cf7",
# "Volleyball": "sport_68c02a4469422", # "Volleyball": "sport_68c02a4469422",
} }
@ -135,11 +135,9 @@ async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:
async def scrape() -> None: async def scrape() -> None:
cached_urls = CACHE_FILE.load() 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(cached_urls)
urls.update(valid_urls)
log.info(f"Loaded {cached_count} event(s) from cache") log.info(f"Loaded {cached_count} event(s) from cache")
@ -171,6 +169,7 @@ async def scrape() -> None:
log=log, log=log,
) )
if url:
sport, event, logo, link, ts = ( sport, event, logo, link, ts = (
ev["sport"], ev["sport"],
ev["event"], ev["event"],
@ -192,17 +191,12 @@ async def scrape() -> None:
"link": link, "link": link,
} }
cached_urls[key] = entry urls[key] = cached_urls[key] = entry
if url:
valid_count += 1
urls[key] = entry
finally: finally:
await browser.close() 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)") log.info(f"Collected and cached {new_count} new event(s)")
else: else:

View file

@ -549,7 +549,7 @@
{ {
"LIGUE 1": { "LIGUE 1": {
"logo": "https://ligue1.com/images/Logo_Ligue_1.webp", "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": { "PRIMEIRA LIGA": {
"logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/14.png", "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/14.png",
"names": [ "names": ["LIGA PORTUGAL", "PORTUGUESE PRIMEIRA LIGA"]
"LIGA PORTUGAL",
"PORTUGAL PRIMEIRA LIGA",
"PORTUGUESE PRIMEIRA LIGA"
]
} }
}, },
{ {

View file

@ -32,16 +32,16 @@ VALID_SPORTS = [
# "australian-football", # "australian-football",
# "baseball", # "baseball",
"basketball", "basketball",
"cricket", # "cricket",
"darts", # "darts",
"fighting", "fighting",
"football", "football",
"golf", "golf",
"hockey", "hockey",
"racing", "racing",
# "rugby", # "rugby",
"tennis", # "tennis",
"volleyball", # "volleyball",
] ]

View file

@ -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 | | 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 #### Base Channels URL
``` ```