This commit is contained in:
doms9 2025-10-01 18:34:18 -04:00
parent 760aeb9174
commit 00000d9799
5 changed files with 19 additions and 14 deletions

View file

@ -131,6 +131,8 @@ async def scrape(client: httpx.AsyncClient) -> None:
log.info(f"Processing {len(events)} new URL(s)")
now = Time.now().timestamp()
for i, ev in enumerate(events, start=1):
match_name, url = await network.safe_process(
lambda: process_event(
@ -155,7 +157,7 @@ async def scrape(client: httpx.AsyncClient) -> None:
"url": url,
"logo": logo,
"base": base_url,
"timestamp": Time.now().timestamp(),
"timestamp": now,
"id": tvg_id or "Live.Event.us",
"href": ev["href"],
}

View file

@ -210,7 +210,6 @@ async def get_events(
events: list[dict[str, str]] = []
now = Time.now()
start_dt = now.delta(minutes=-30)
end_dt = now.delta(minutes=30)

View file

@ -126,14 +126,17 @@ async def get_events(
base_url: str,
cached_keys: set[str],
) -> list[dict[str, str]]:
events: list[dict[str, str]] = []
if not (api_data := API_FILE.load(nearest_hr=True, per_entry=False)):
api_data = await refresh_api_cache(client, urljoin(base_url, "api/streams"))
API_FILE.write(api_data)
events: list[dict[str, str]] = []
now = Time.now()
start_dt = now.delta(minutes=-30)
end_dt = now.delta(minutes=30)
for stream_group in api_data["streams"]:
sport = stream_group["category"]
@ -141,10 +144,9 @@ async def get_events(
continue
for event in stream_group["streams"]:
name, start_ts, end_ts, logo, uri_name = (
name, start_ts, logo, uri_name = (
event["name"],
event["starts_at"],
event["ends_at"],
event["poster"],
event["uri_name"],
)
@ -154,11 +156,9 @@ async def get_events(
if cached_keys & {key}:
continue
start_dt = Time.from_ts(start_ts).delta(minutes=-30)
event_dt = Time.from_ts(start_ts)
end_dt = Time.from_ts(end_ts).delta(minutes=30)
if not start_dt <= Time.now() < end_dt:
if not start_dt <= event_dt < end_dt:
continue
events.append(
@ -167,7 +167,7 @@ async def get_events(
"event": name,
"link": urljoin(base_url, f"live/{uri_name}"),
"logo": logo,
"timestamp": start_dt.timestamp(),
"timestamp": event_dt.timestamp(),
}
)

View file

@ -86,6 +86,8 @@ async def scrape(client: httpx.AsyncClient) -> None:
log.info(f"Processing {len(events)} new URL(s)")
now = Time.now().timestamp()
for i, ev in enumerate(events, start=1):
url = await network.safe_process(
lambda: process_event(client, url=ev["link"], url_num=i),
@ -105,7 +107,7 @@ async def scrape(client: httpx.AsyncClient) -> None:
"url": url,
"logo": logo,
"base": BASE_URL,
"timestamp": Time.now().timestamp(),
"timestamp": now,
"id": tvg_id or "Live.Event.us",
}

View file

@ -33,6 +33,8 @@ async def scrape(client: httpx.AsyncClient) -> None:
log.info(f'Scraping from "{BASE_URL}"')
now = Time.now().timestamp()
if not (data := await fetch_m3u8(client)):
log.warning("No M3U8 data received")
return
@ -62,7 +64,7 @@ async def scrape(client: httpx.AsyncClient) -> None:
"logo": logo,
"id": tvg_id or "Live.Event.us",
"base": "https://tvpass.org",
"timestamp": Time.now().timestamp(),
"timestamp": now,
}
urls[key] = entry