KF3: Api additions and improvements.

This commit is contained in:
2023-09-04 14:20:35 +02:00
parent 12df873ead
commit 37225532c8
17 changed files with 353 additions and 169 deletions

28
endpoints/KF3/friend.py Normal file
View File

@@ -0,0 +1,28 @@
from flask_restful import Resource
from flask import current_app as app
from flask import request
import json
class KF3_Friend(Resource):
def get(self, id:int):
db = app.databases["KF3"]
if "wiki" in request.args:
result = db.get_chara_wiki(id)
response = app.response_class(
response=result,
status=200,
mimetype='text/plain'
)
else:
result = db.get_chara(id)
result = json.dumps(result, ensure_ascii=False, indent=1)
response = app.response_class(
response=result,
status=200,
mimetype='application/json'
)
response.headers.add("Access-Control-Allow-Origin", "*")
return response

26
endpoints/KF3/friends.py Normal file
View File

@@ -0,0 +1,26 @@
import json
from flask_restful import Resource
from flask import current_app as app
from flask import request
class KF3_Friends(Resource):
def get(self):
db = app.databases["KF3"]
result = []
for value in db.processed_friends.values():
result.append({"id": value["id"], "name": value["nameEn"], "startTime" : value["startTime"], "startTimeRaw" : value["startTimeRaw"]})
sort_arg = request.args["sort"] if "sort" in request.args and request.args["sort"] in result[0] else "id"
if sort_arg == "startTime":
sort_arg = "startTimeRaw"
result = sorted(result, key=lambda f: f[sort_arg])
response = app.response_class(
response=json.dumps(result, ensure_ascii=False, indent=1),
status=200,
mimetype='application/json'
)
response.headers.add("Access-Control-Allow-Origin", "*")
return response

27
endpoints/KF3/update.py Normal file
View File

@@ -0,0 +1,27 @@
from flask_restful import Resource
from flask import current_app as app
from flask import request
import json
class KF3_Update(Resource):
def post(self):
db = app.databases["KF3"]
try:
db.reload_data()
response = app.response_class(
response="update successful",
status=200,
mimetype='text/plain'
)
except:
response = app.response_class(
response="update failed",
status=500,
mimetype='text/plain'
)
response.headers.add("Access-Control-Allow-Origin", "*")
return response
def get(self):
return self.post()