49 lines
1.7 KiB
Python
Raw Normal View History

import requests
from flask import request, jsonify
from ktvmanager.lib.get_urls import get_latest_urls_from_dns
def build_url(stream_url, username, password):
return f"{stream_url}/player_api.php?username={username}&password={password}"
def check_url(url):
try:
2025-07-14 19:18:47 +01:00
tr = requests
response = tr.get(url, timeout=5)
response.raise_for_status()
if response.json().get("user_info", {}).get("auth"):
return response.json()
except requests.exceptions.RequestException as e:
if e.response and e.response.status_code == 403:
try:
response = requests.get(url, timeout=5)
response.raise_for_status()
if response.json().get("user_info", {}).get("auth"):
return response.json()
except requests.exceptions.RequestException:
return None
return None
def single_account_check(account_data, stream_urls):
for stream_url in stream_urls:
url = build_url(stream_url, account_data['username'], account_data['password'])
result = check_url(url)
if result:
return {"url": stream_url, "data": result}
return None
def validate_account():
data = request.get_json()
username = data.get("username")
password = data.get("password")
if not all([username, password]):
return jsonify({"message": "Missing required fields"}), 400
stream_urls = get_latest_urls_from_dns()
account_data = {"username": username, "password": password}
result = single_account_check(account_data, stream_urls)
if result:
return jsonify({"message": "Account is valid"})
else:
return jsonify({"message": "Account is invalid"}), 401