diff --git a/modules/Archive/database.py b/modules/Archive/database.py index 0010e45..03b8a78 100644 --- a/modules/Archive/database.py +++ b/modules/Archive/database.py @@ -4,8 +4,6 @@ from .endpoints.query import Archive_Query class Database: db : DatabaseController = None - processed_friends = {} - item_stages = {} def __init__(self, api) -> None: app = api.app diff --git a/modules/Archive/endpoints/query.py b/modules/Archive/endpoints/query.py index b63ace0..758fa50 100644 --- a/modules/Archive/endpoints/query.py +++ b/modules/Archive/endpoints/query.py @@ -1,12 +1,14 @@ import json from flask_restful import Resource -from flask import current_app as app, jsonify +from flask import current_app as app, jsonify, request class Archive_Query(Resource): - def post(self, query:str): + def post(self): + query = request.data.decode("utf-8") + db = app.databases["Archive"] - result = db.run_query(query) + result = db.db.run_query(query) if result is None: response = app.response_class(status=400) diff --git a/modules/KF3/downloader.py b/modules/KF3/downloader.py index dff781a..1951f65 100644 --- a/modules/KF3/downloader.py +++ b/modules/KF3/downloader.py @@ -82,7 +82,10 @@ async def download_cache(server_name, server : str): file.write(data) with open(file_path_json, "wt", encoding="utf-8") as out_file: data = gzip.decompress(data) - json.dump(json.loads(data), out_file, ensure_ascii=False, indent=1) + data = json.loads(data) + # if key == "GACHA_DATA": + # download_banners(data, server_name) + json.dump(data, out_file, ensure_ascii=False, indent=1) old_mst_ver[key] = new_mst_ver[key] @@ -93,6 +96,36 @@ async def download_cache(server_name, server : str): await session.close() return downloaded_files +async def download_banners(gacha_data, server_name, session): + path = f"/var/www/html/Katworks/KF/assets/KF3/{server_name}/banners/" + os.makedirs(path, exist_ok=True) + + for entry in gacha_data: + banner_name = entry["banner"] + if banner_name == "" or banner_name == None: + continue + banner_name += ".png" + file_path = path + banner_name + if os.path.exists(file_path): + continue + + file_url = "https://parade-mobile-prod-cdn.kemono-friends-3.jp/Texture2D/GachaTop/" + banner_name + file_url_alt = "https://parade-mobile-develop01-app.kemono-friends-3.jp/Texture2D/GachaTop/" + banner_name + + status = 0 + async with session.get(file_url) as resp: + response = await resp.read() + status = resp.status + if status != 200: + async with session.get(file_url_alt) as resp: + response = await resp.read() + status = resp.status + if status != 200: continue + + with open(file_path, "wb") as file: + file.write(response) + + async def download_files(server_name, asset_bundle_url, srv_platform : str): def parse_ab_list(filecontent : str): out = {} @@ -194,6 +227,15 @@ async def convert_files(): print("Conversion failed", f) async def manual(): + + # session = aiohttp.ClientSession() + + # path = f"/var/www/html/Katworks/KF/assets/KF3/{server_name}/cache/" + + # await session.close() + + # return + downloaded_cache = {} downloaded_files = {} diff --git a/run.sh b/run.sh new file mode 100644 index 0000000..7b8f933 --- /dev/null +++ b/run.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +gunicorn --bind 127.0.0.1:8081 --config gunicorn_config.py wsgi:app diff --git a/update.sh b/update.sh new file mode 100644 index 0000000..4b8b86a --- /dev/null +++ b/update.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +python -m modules.KF3.downloader