e
This commit is contained in:
parent
acb19b7886
commit
00000d9990
10 changed files with 718 additions and 747 deletions
|
|
@ -1,4 +1,5 @@
|
|||
import json
|
||||
import re
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
|
||||
|
|
@ -12,26 +13,40 @@ live_img = "https://i.gyazo.com/978f2eb4a199ca5b56b447aded0cb9e3.png"
|
|||
|
||||
leagues_file = Path(__file__).parent / "leagues.json"
|
||||
|
||||
LEAGUES: dict[str, dict[str, str]] = json.loads(
|
||||
leagues_file.read_text(encoding="utf-8")
|
||||
)
|
||||
|
||||
class Leagues:
|
||||
def __init__(self) -> None:
|
||||
self.data = json.loads(leagues_file.read_text(encoding="utf-8"))
|
||||
|
||||
def teams(self, league: str) -> list[str]:
|
||||
return self.data["teams"].get(league, [])
|
||||
|
||||
def info(self, name: str) -> tuple[str | None, str]:
|
||||
name = name.upper()
|
||||
|
||||
if match := next(
|
||||
(
|
||||
(tvg_id, league_data.get("logo"))
|
||||
for tvg_id, leagues in self.data["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
|
||||
|
||||
return (tvg_id, logo or live_img)
|
||||
|
||||
return (None, live_img)
|
||||
|
||||
def is_valid(self, event: str, league: str) -> bool:
|
||||
if match := re.search(r"(\-|vs.?)", event):
|
||||
t1, t2 = event.split(match[1])
|
||||
|
||||
return any(t in self.teams(league) for t in (t1.strip(), t2.strip()))
|
||||
|
||||
return event.lower() == "nfl redzone" if league == "NFL" else False
|
||||
|
||||
|
||||
def league_info(name: str) -> tuple[str | None, str]:
|
||||
name = name.upper()
|
||||
|
||||
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
|
||||
|
||||
return (tvg_id, logo or live_img)
|
||||
|
||||
return (None, live_img)
|
||||
leagues = Leagues()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue