diff --git a/M3U8/scrapers/resportz.py b/M3U8/scrapers/resportz.py index 21149223..64ba8e25 100644 --- a/M3U8/scrapers/resportz.py +++ b/M3U8/scrapers/resportz.py @@ -1,6 +1,7 @@ import base64 import re from functools import partial +from urllib.parse import urlsplit from .utils import Cache, Time, get_logger, leagues, network @@ -41,9 +42,14 @@ async def process_event(channel_id: str, url_num: int) -> tuple[str | None, str log.warning(f"URL {url_num}) No M3U8 found") return nones + m3u8 = base64.b64decode(match[2]).decode("utf-8") + log.info(f"URL {url_num}) Captured M3U8") - return base64.b64decode(match[2]).decode("utf-8"), ref_url + return ( + m3u8.replace(urlsplit(m3u8).netloc, "kolis.phantemlis.top"), + ref_url, + ) async def get_events() -> list[dict[str, str]]: @@ -95,11 +101,7 @@ async def get_events() -> list[dict[str, str]]: events.append( { - "sport": ( - "Soccer" - if category.lower() == "all soccer events" - else category - ), + "sport": category, "event": name, "channel-id": channel_id, "timestamp": now.timestamp(), diff --git a/M3U8/scrapers/utils/webwork.py b/M3U8/scrapers/utils/webwork.py index 7d3047ac..bdfa51b6 100644 --- a/M3U8/scrapers/utils/webwork.py +++ b/M3U8/scrapers/utils/webwork.py @@ -7,7 +7,7 @@ from contextlib import asynccontextmanager from functools import cache, partial from pathlib import Path from typing import TypeVar -from urllib.parse import urlparse +from urllib.parse import urlsplit import httpx from playwright.async_api import ( @@ -134,7 +134,7 @@ class Network: @staticmethod def to_block(request: Request) -> bool: - hostname = (urlparse(request.url).hostname or "").lower() + hostname = (urlsplit(request.url).hostname or "").lower() return any( hostname == domain or hostname.endswith(f".{domain}")