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: 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