Merge pull request #35 from hubHarmony/plugin-management-system

Plugin management system
This commit is contained in:
charleslemaux 2024-09-21 18:57:42 +02:00 committed by GitHub
commit a0c908ad25
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 16 additions and 2 deletions

16
app.py
View File

@ -1,12 +1,13 @@
import argparse
import http
import inspect
import json
import os
from typing import Union
from apscheduler.schedulers.background import BackgroundScheduler
from firebase_admin.auth import UserNotFoundError, UserRecord
from flask import (Blueprint, Flask, Response, jsonify, request)
from flask import (Blueprint, Flask, Response, jsonify, request, send_from_directory)
from flask_cors import CORS
from werkzeug import run_simple
from werkzeug.datastructures import ImmutableMultiDict, FileStorage
@ -178,6 +179,19 @@ def upload():
return generic_response_maker(http.HTTPStatus.OK, "Successfully uploaded files !")
load_modpacks = lambda: json.load(open('servers/modpacks/a-metadata.txt'))
@app.route('/modpacks', methods=['GET'])
def get_modpacks():
modpacks = load_modpacks()
return jsonify(modpacks)
@app.route('/modpacks/image/<path:filename>', methods=['GET'])
def serve_image(filename):
return send_from_directory('servers/modpacks', filename)
def api_cleanup() -> None:
firebase_manager.set_servers_not_running()
return

View File

@ -124,7 +124,7 @@ def fetch_players_status(user: UserRecord, name: str) -> tuple[HTTPStatus, Union
def fetch_dir_content(user: UserRecord, name: str) -> tuple[HTTPStatus, Union[str, list]]:
user_id: str = user.uid
server_path: str = f"users/{user_id}/{name}/"
dirs: dict[str, [str, str]] = {
dirs: dict[str, list[str]] = {
'plugins': ['plugins', '.jar'],
'datapack' : ['world/datapacks', '.zip'],
}