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 api_blueprint = Blueprint("api", __name__) @api_blueprint.route("/getUserAccounts") @requires_basic_auth def get_user_accounts_route(username): 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): return get_stream_names() @api_blueprint.route("/getUserAccounts/streams") @requires_basic_auth def get_user_accounts_streams_route(username): return jsonify(get_latest_urls_from_dns()) @api_blueprint.route("/singleCheck", methods=["POST"]) @requires_basic_auth def single_check_route(username): return single_check() @api_blueprint.route("/addAccount", methods=["POST"]) @requires_basic_auth def add_account_route(username): return add_account() @api_blueprint.route("/deleteAccount", methods=["POST"]) @requires_basic_auth def delete_account_route(username): return delete_account()