52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
import json
|
|
import re
|
|
from datetime import datetime
|
|
from pathlib import Path
|
|
|
|
import pytz
|
|
|
|
TZ = pytz.timezone("America/New_York")
|
|
|
|
now = datetime.now(TZ)
|
|
|
|
live_img = "https://i.gyazo.com/978f2eb4a199ca5b56b447aded0cb9e3.png"
|
|
|
|
leagues_file = Path(__file__).parent / "leagues.json"
|
|
|
|
|
|
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 | 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 ("Live.Event.us", 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
|
|
|
|
|
|
leagues = Leagues()
|