CDRM-Project/routes/user_info.py

48 lines
1.4 KiB
Python

from flask import Blueprint, request, jsonify, session
import os
import glob
import logging
from custom_functions.database.user_db import (
fetch_api_key,
fetch_styled_username,
fetch_username_by_api_key,
)
user_info_bp = Blueprint("user_info_bp", __name__)
@user_info_bp.route("/userinfo", methods=["POST"])
def user_info():
username = session.get("username")
if not username:
try:
headers = request.headers
api_key = headers["Api-Key"]
username = fetch_username_by_api_key(api_key)
except:
return jsonify({"message": "False"}), 400
try:
base_path = os.path.join(os.getcwd(), "configs", "CDMs", username.lower())
pr_files = [
os.path.basename(f)
for f in glob.glob(os.path.join(base_path, "PR", "*.prd"))
]
wv_files = [
os.path.basename(f)
for f in glob.glob(os.path.join(base_path, "WV", "*.wvd"))
]
return jsonify(
{
"Username": username,
"Widevine_Devices": wv_files,
"Playready_Devices": pr_files,
"API_Key": fetch_api_key(username),
"Styled_Username": fetch_styled_username(username),
}
)
except Exception as e:
logging.exception("Error retrieving device files")
return jsonify({"message": "False"}), 500