From 26e26951da1cc8b7a7d3f3e70895a058d89eb355 Mon Sep 17 00:00:00 2001 From: Karl Date: Tue, 15 Jul 2025 15:12:44 +0100 Subject: [PATCH] allow user to validate an account using checker --- ktvmanager/lib/checker.py | 21 ++++++++++++++++++++- routes/api.py | 6 ++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/ktvmanager/lib/checker.py b/ktvmanager/lib/checker.py index dfc3617..43af803 100644 --- a/ktvmanager/lib/checker.py +++ b/ktvmanager/lib/checker.py @@ -1,4 +1,6 @@ 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}" @@ -27,4 +29,21 @@ def single_account_check(account_data, stream_urls): result = check_url(url) if result: return {"url": stream_url, "data": result} - return None \ No newline at end of file + 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 \ No newline at end of file diff --git a/routes/api.py b/routes/api.py index 6d63bfa..a9e1220 100644 --- a/routes/api.py +++ b/routes/api.py @@ -40,6 +40,12 @@ def delete_account_route(username, password): user_id = get_user_id_from_username(username) return delete_account(user_id) +@api_blueprint.route("/validateAccount", methods=["POST"]) +@requires_basic_auth +def validate_account_route(username, password): + from ktvmanager.lib.checker import validate_account + return validate_account() + @api_blueprint.route("/Login") @requires_basic_auth def login_route(username, password):