e
This commit is contained in:
parent
7cabebb529
commit
00000d940b
4 changed files with 13 additions and 13 deletions
|
|
@ -217,8 +217,6 @@ async def get_events(
|
||||||
if not (buffer := await fetch_xml_stream(url, ssl_ctx)):
|
if not (buffer := await fetch_xml_stream(url, ssl_ctx)):
|
||||||
return events
|
return events
|
||||||
|
|
||||||
pub_date_format = "%a, %d %b %Y %H:%M:%S %z"
|
|
||||||
|
|
||||||
for _, elem in ET.iterparse(buffer, events=("end",)):
|
for _, elem in ET.iterparse(buffer, events=("end",)):
|
||||||
if elem.tag == "item":
|
if elem.tag == "item":
|
||||||
title = elem.findtext("title") or ""
|
title = elem.findtext("title") or ""
|
||||||
|
|
@ -231,7 +229,7 @@ async def get_events(
|
||||||
continue
|
continue
|
||||||
|
|
||||||
try:
|
try:
|
||||||
event_dt = Time.from_str(pub_date, pub_date_format)
|
event_dt = Time.from_str(pub_date)
|
||||||
except Exception:
|
except Exception:
|
||||||
elem.clear()
|
elem.clear()
|
||||||
continue
|
continue
|
||||||
|
|
|
||||||
|
|
@ -134,13 +134,13 @@ async def get_events(
|
||||||
|
|
||||||
API_FILE.write(api_data)
|
API_FILE.write(api_data)
|
||||||
|
|
||||||
for stream_group in api_data.get("streams", []):
|
for stream_group in api_data["streams"]:
|
||||||
sport = stream_group("category", [])
|
sport = stream_group["category"]
|
||||||
|
|
||||||
if sport == "24/7 Streams":
|
if sport == "24/7 Streams":
|
||||||
continue
|
continue
|
||||||
|
|
||||||
for event in stream_group.get("streams", []):
|
for event in stream_group["streams"]:
|
||||||
name, start_ts, end_ts, logo, uri_name = (
|
name, start_ts, end_ts, logo, uri_name = (
|
||||||
event["name"],
|
event["name"],
|
||||||
event["starts_at"],
|
event["starts_at"],
|
||||||
|
|
|
||||||
|
|
@ -83,13 +83,13 @@ async def refresh_html_cache(client: httpx.AsyncClient, url: str) -> dict[str, s
|
||||||
|
|
||||||
soup = HTMLParser(r.text)
|
soup = HTMLParser(r.text)
|
||||||
events = {}
|
events = {}
|
||||||
now = Time.now().to_tz("EST")
|
now = Time.now()
|
||||||
|
|
||||||
for row in soup.css("div.wrap div.row"):
|
for row in soup.css("div.wrap div.row"):
|
||||||
if not (date := row.css_first("div.date")):
|
if not (date := row.css_first("div.date")):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
event_dt = Time.from_str(date.text(strip=True)).to_tz("EST")
|
event_dt = Time.from_str(date.text(strip=True))
|
||||||
|
|
||||||
if event_dt.date() != now.date():
|
if event_dt.date() != now.date():
|
||||||
continue
|
continue
|
||||||
|
|
@ -134,10 +134,10 @@ async def get_events(
|
||||||
HTML_CACHE.write(events)
|
HTML_CACHE.write(events)
|
||||||
|
|
||||||
live = []
|
live = []
|
||||||
now = Time.now().to_tz("EST")
|
now = Time.now()
|
||||||
|
|
||||||
start_ts = now.delta(minutes=-30).to_tz("EST").timestamp()
|
start_ts = now.delta(minutes=-30).timestamp()
|
||||||
end_ts = now.delta(minutes=30).to_tz("EST").timestamp()
|
end_ts = now.delta(minutes=30).timestamp()
|
||||||
|
|
||||||
for k, v in events.items():
|
for k, v in events.items():
|
||||||
if cached_keys & {k}:
|
if cached_keys & {k}:
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ ZONES["EDT"] = ZONES["EST"] = ZONES["ET"]
|
||||||
|
|
||||||
|
|
||||||
class Time(datetime):
|
class Time(datetime):
|
||||||
TZ = timezone.utc
|
TZ = ZONES["ET"]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def now(cls) -> "Time":
|
def now(cls) -> "Time":
|
||||||
|
|
@ -42,6 +42,7 @@ class Time(datetime):
|
||||||
formats = [
|
formats = [
|
||||||
"%Y-%m-%d %H:%M",
|
"%Y-%m-%d %H:%M",
|
||||||
"%Y-%m-%d %H:%M:%S",
|
"%Y-%m-%d %H:%M:%S",
|
||||||
|
"%a, %d %b %Y %H:%M:%S %z",
|
||||||
]
|
]
|
||||||
|
|
||||||
for frmt in formats:
|
for frmt in formats:
|
||||||
|
|
@ -53,7 +54,8 @@ class Time(datetime):
|
||||||
else:
|
else:
|
||||||
return cls.from_ts(31496400)
|
return cls.from_ts(31496400)
|
||||||
|
|
||||||
dt = tz.localize(dt) if hasattr(tz, "localize") else dt.replace(tzinfo=tz)
|
if not dt.tzinfo:
|
||||||
|
dt = tz.localize(dt) if hasattr(tz, "localize") else dt.replace(tzinfo=tz)
|
||||||
|
|
||||||
return cls.fromtimestamp(dt.astimezone(cls.TZ).timestamp(), tz=cls.TZ)
|
return cls.fromtimestamp(dt.astimezone(cls.TZ).timestamp(), tz=cls.TZ)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue