from flask import Blueprint, jsonify from ktvmanager.lib.database import get_user_accounts, get_stream_names, single_check, add_account, delete_account, get_user_id_from_username from ktvmanager.lib.get_urls import get_latest_urls_from_dns from ktvmanager.lib.auth import requires_basic_auth, check_login api_blueprint = Blueprint("api", __name__) @api_blueprint.route("/getUserAccounts") @requires_basic_auth def get_user_accounts_route(username, password): user_id = get_user_id_from_username(username) if user_id: return get_user_accounts(user_id) return jsonify({"message": "User not found"}), 404 @api_blueprint.route("/getStreamNames") @requires_basic_auth def get_stream_names_route(username, password): return get_stream_names() @api_blueprint.route("/getUserAccounts/streams") @requires_basic_auth def get_user_accounts_streams_route(username, password): return jsonify(get_latest_urls_from_dns()) @api_blueprint.route("/singleCheck", methods=["POST"]) @requires_basic_auth def single_check_route(username, password): return single_check() @api_blueprint.route("/addAccount", methods=["POST"]) @requires_basic_auth def add_account_route(username, password): user_id = get_user_id_from_username(username) return add_account(user_id) @api_blueprint.route("/deleteAccount", methods=["POST"]) @requires_basic_auth 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): return check_login(username, password)