diff --git a/src/chocolate_app/routes/api/index.py b/src/chocolate_app/routes/api/index.py index a0f10d3..9a631cf 100644 --- a/src/chocolate_app/routes/api/index.py +++ b/src/chocolate_app/routes/api/index.py @@ -1,9 +1,11 @@ from flask import Blueprint + from chocolate_app.routes.api.auth import auth_bp +from chocolate_app.routes.api.watch import watch_bp +from chocolate_app.routes.api.libraries import lib_bp from chocolate_app.routes.api.profil import profil_bp from chocolate_app.routes.api.medias import medias_bp -from chocolate_app.routes.api.watch import watch_bp from chocolate_app.routes.api.settings import settings_bp api_bp = Blueprint('api', __name__, url_prefix='/api') @@ -13,3 +15,4 @@ api_bp.register_blueprint(watch_bp) api_bp.register_blueprint(settings_bp) api_bp.register_blueprint(profil_bp) +api_bp.register_blueprint(lib_bp) diff --git a/src/chocolate_app/routes/api/libraries.py b/src/chocolate_app/routes/api/libraries.py new file mode 100644 index 0000000..6123ce9 --- /dev/null +++ b/src/chocolate_app/routes/api/libraries.py @@ -0,0 +1,45 @@ +from flask import Blueprint, request + +from chocolate_app import DB, scans +from chocolate_app.tables import Libraries, Users +from chocolate_app.routes.api.auth import token_required +from chocolate_app.utils.utils import generate_response, Codes + +lib_bp = Blueprint("profil", __name__, url_prefix="/profil") + + +@lib_bp.route("/refresh/", methods=["GET", "POST"]) +@token_required +def profil(current_user, lib_id): + if not current_user.account_type == "Admin": + return generate_response(Codes.NOT_LOGGED_IN, True) + + lib = Libraries.query.filter_by(id=lib_id).first() + + if not lib: + return generate_response(Codes.LIBRARY_NOT_FOUND, True) + + library = lib.__dict__ + + type_to_call = { + "series": scans.getSeries, + "consoles": scans.getGames, + "others": scans.getOthersVideos, + "books": scans.getBooks, + "musics": scans.getMusics, + } + + scanner = None + if library["type"] == "movies": + scanner = scans.MovieScanner() + scanner.set_library_name(library["name"]) + scanner.scan() + elif library["type"] == "tv": + scanner = scans.LiveTVScanner() + scanner.set_library_name(library["name"]) + scanner.scan() + else: + scanner = type_to_call[library["type"]] + scanner(library["name"]) + + return generate_response(Codes.SUCCESS, False, {"message": "Library refreshed"})