2025-07-15 15:45:17 +01:00

60 lines
1.7 KiB
Python

import os
from dotenv import load_dotenv
import requests
import json
from typing import List
load_dotenv()
def get_latest_urls_from_dns() -> List[str]:
"""Retrieves the latest stream URLs from DNS and extra URL files.
Returns:
A list of unique stream URLs.
"""
with open("./ktvmanager/lib/DNS_list.txt") as f:
lines = [line.rstrip("\n") for line in f]
with open("./ktvmanager/lib/extra_urls.txt") as urls:
extra_urls = [line.rstrip("\n") for line in urls]
# print(lines)
complete_list_of_urls = []
for url in lines:
data = requests.get(url)
try:
content = json.loads(data.text)
except Exception:
pass
try:
list_of_urls = content["su"].split(",")
except KeyError:
list_of_urls = content["fu"].split(",")
for url in list_of_urls:
complete_list_of_urls.append(url)
complete_list_of_urls = list(set(complete_list_of_urls))
for url in extra_urls:
complete_list_of_urls.append(url)
return list(dict.fromkeys(complete_list_of_urls))
def generate_urls_for_user(username: str, password: str) -> List[str]:
"""Generates a list of full stream URLs for a specific user.
Args:
username: The username of the user.
password: The password of the user.
Returns:
A list of fully constructed stream URLs for the user.
"""
new_urls = []
for url in get_latest_urls_from_dns():
hard_url = (
f"/player_api.php?password={password}&username={username}&action=user&sub=info"
)
new_url = url + hard_url
new_urls.append(new_url)
return new_urls