merge from github

This commit is contained in:
Lukas Pupka-Lipinski 2025-08-26 21:19:07 +02:00
parent 862de2f9d2
commit 119ef675df

View File

@ -9,6 +9,10 @@ from bs4 import BeautifulSoup
from fake_useragent import UserAgent
from src.Loaders.provider.Provider import Provider
# Compile regex patterns once for better performance
REDIRECT_PATTERN = re.compile(r"https?://[^'\"<>]+")
B64_PATTERN = re.compile(r"var a168c='([^']+)'")
HLS_PATTERN = re.compile(r"'hls': '(?P<hls>[^']+)'")
class VOE(Provider):
def __init__(self):
@ -48,18 +52,26 @@ class VOE(Provider):
response = self.session.get(redirect_url, headers={'User-Agent': self.RANDOM_USER_AGENT})
html = response.content
# Method 1: Extract from script tag
extracted = self.extract_voe_from_script(html)
if extracted:
return extracted, self.Header
b64match = re.search(r"var a168c='([^']+)'", html)
if b64match:
decoded = base64.b64decode(b64match.group(1)).decode()[::-1]
return json.loads(decoded)["source"], self.Header
# Method 2: Extract from base64 encoded variable
htmlText = html.decode('utf-8')
b64_match = B64_PATTERN.search(htmlText)
if b64_match:
decoded = base64.b64decode(b64_match.group(1)).decode()[::-1]
source = json.loads(decoded).get("source")
if source:
return source, self.Header
# Method 3: Extract HLS source
hls_match = HLS_PATTERN.search(htmlText)
if hls_match:
return base64.b64decode(hls_match.group("hls")).decode(), self.Header
hls = re.search(r"'hls': '(?P<hls>[^']+)'", html)
if hls:
return base64.b64decode(hls.group("hls")).decode(), self.Header
def shift_letters(self, input_str):
result = ''
for c in input_str: