e
This commit is contained in:
parent
a726aaf89c
commit
00000d9d0d
4 changed files with 157 additions and 120 deletions
|
|
@ -36,21 +36,21 @@ async def scrape(client: httpx.AsyncClient) -> None:
|
|||
for i, line in enumerate(data := await fetch_m3u8(client)):
|
||||
if line.startswith("#EXTINF"):
|
||||
tvg_id_match = re.search(r'tvg-id="([^"]*)"', line)
|
||||
tvg_name_match = re.search(r'tvg-name="([^"]*)"', line)
|
||||
tv_name_match = re.search(r'tvg-name="([^"]*)"', line)
|
||||
group_title_match = re.search(r'group-title="([^"]*)"', line)
|
||||
|
||||
tvg_id = tvg_id_match[1] if tvg_id_match else None
|
||||
tvg_name = tvg_name_match[1] if tvg_name_match else None
|
||||
tv_name = tv_name_match[1] if tv_name_match else None
|
||||
sport = group_title_match[1].upper().strip() if group_title_match else None
|
||||
|
||||
if tvg_id == "":
|
||||
url = data[i + 1]
|
||||
|
||||
if tvg_name:
|
||||
tvg_name = "(".join(tvg_name.split("(")[:-1]).strip()
|
||||
if tv_name:
|
||||
tv_name = "(".join(tv_name.split("(")[:-1]).strip()
|
||||
|
||||
if url.endswith("/hd"):
|
||||
key = f"[{sport}] {tvg_name} (TVP)"
|
||||
key = f"[{sport}] {tv_name} (TVP)"
|
||||
|
||||
channel = url.split("/")[-2]
|
||||
|
||||
|
|
|
|||
|
|
@ -18,13 +18,18 @@ LEAGUES: dict[str, dict[str, str]] = json.loads(
|
|||
|
||||
|
||||
def league_info(name: str) -> tuple[str | None, str]:
|
||||
league_name_map: dict[str, tuple[str, str]] = {
|
||||
league_name: (tvg_id, league_data.get("logo"))
|
||||
for tvg_id, leagues in LEAGUES.items()
|
||||
for league_entry in leagues
|
||||
for league_name, league_data in league_entry.items()
|
||||
}
|
||||
if match := next(
|
||||
(
|
||||
(tvg_id, league_data.get("logo"))
|
||||
for tvg_id, leagues in LEAGUES.items()
|
||||
for league_entry in leagues
|
||||
for league_name, league_data in league_entry.items()
|
||||
if name == league_name or name in league_data.get("names", [])
|
||||
),
|
||||
None,
|
||||
):
|
||||
tvg_id, logo = match
|
||||
|
||||
tvg_id, logo = league_name_map.get(name, (None, None))
|
||||
return (tvg_id, logo or live_img)
|
||||
|
||||
return tvg_id, logo or live_img
|
||||
return (None, live_img)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue