Compare commits
24 Commits
testBranch
...
master
Author | SHA1 | Date |
---|---|---|
|
a51c8117d0 | |
|
b5d63d1d00 | |
|
11edbf3abf | |
|
3f8f9f708f | |
|
18aa1843cd | |
|
8733294f13 | |
|
fee0ecfe75 | |
|
fb4ad30d03 | |
|
2623106212 | |
|
16c7792b7f | |
|
2a852388bf | |
|
50559223ed | |
|
6b0de05a80 | |
|
155394ab75 | |
|
794bf9d30b | |
|
6157eb1e40 | |
|
db728f21ba | |
|
cbe0074c70 | |
|
3a247d6ce1 | |
|
e7d21a90bb | |
|
8b12ca9dae | |
|
76b6c6cb79 | |
|
2b121be258 | |
|
eefb47476a |
6
app.py
6
app.py
|
@ -3,7 +3,7 @@ from flask_restful import Api
|
||||||
|
|
||||||
from modules.KF3.database import Database as KF3DB
|
from modules.KF3.database import Database as KF3DB
|
||||||
from modules.Kingdom.database import Database as KFKDB
|
from modules.Kingdom.database import Database as KFKDB
|
||||||
from modules.JapariSling.database import Database as KFSL
|
from modules.proxy import AgreementProxy, LaunchProxy, UpdateProxy
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
app.config['JSON_AS_ASCII'] = False
|
app.config['JSON_AS_ASCII'] = False
|
||||||
|
@ -11,9 +11,11 @@ app.databases = {}
|
||||||
|
|
||||||
api = Api(app)
|
api = Api(app)
|
||||||
|
|
||||||
|
api.add_resource(LaunchProxy, "/DMM/launch")
|
||||||
|
api.add_resource(UpdateProxy, "/DMM/filelist", "/DMM/update")
|
||||||
|
api.add_resource(AgreementProxy, "/DMM/agreement")
|
||||||
KF3DB(api)
|
KF3DB(api)
|
||||||
KFKDB(api)
|
KFKDB(api)
|
||||||
KFSL(api)
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app.run(host='127.0.0.1', port=8080, debug=True)
|
app.run(host='127.0.0.1', port=8080, debug=True)
|
|
@ -1,7 +0,0 @@
|
||||||
from typing import List
|
|
||||||
from .construct_serialized import ConstructSerialized
|
|
||||||
|
|
||||||
class ConstructLevel:
|
|
||||||
Name : str
|
|
||||||
Description : str
|
|
||||||
Objects : List[ConstructSerialized]
|
|
|
@ -1,13 +0,0 @@
|
||||||
class SVector3:
|
|
||||||
x : float
|
|
||||||
y : float
|
|
||||||
z : float
|
|
||||||
|
|
||||||
class ConstructSerialized:
|
|
||||||
Id : int
|
|
||||||
Variant : int
|
|
||||||
Position : SVector3
|
|
||||||
Rotation : SVector3
|
|
||||||
Width : float
|
|
||||||
Height : float
|
|
||||||
Properties : int
|
|
|
@ -1,15 +0,0 @@
|
||||||
|
|
||||||
from .endpoints.get import Get
|
|
||||||
from .endpoints.upload import Upload
|
|
||||||
|
|
||||||
class Database:
|
|
||||||
|
|
||||||
def __init__(self, api) -> None:
|
|
||||||
app = api.app
|
|
||||||
if "JapariSling" in app.databases:
|
|
||||||
del app.databases["JapariSling"]
|
|
||||||
|
|
||||||
app.databases["JapariSling"] = self
|
|
||||||
|
|
||||||
api.add_resource(Upload, "/JapariSling/Upload")
|
|
||||||
api.add_resource(Get, "/JapariSling/Get")
|
|
|
@ -1,23 +0,0 @@
|
||||||
import os
|
|
||||||
import json
|
|
||||||
from flask_restful import Resource
|
|
||||||
from flask import abort, request, current_app as app
|
|
||||||
|
|
||||||
class Get(Resource):
|
|
||||||
def get(self):
|
|
||||||
dir_name = os.path.join(app.root_path, 'data', 'JapariSling')
|
|
||||||
files = [json.loads(read_file(os.path.join(dir_name, f))) for f in os.listdir(dir_name) if os.path.isfile(os.path.join(dir_name, f))]
|
|
||||||
files = files[:10]
|
|
||||||
files = {"levels": files}
|
|
||||||
|
|
||||||
response = app.response_class(
|
|
||||||
response = json.dumps(files),
|
|
||||||
status=200,
|
|
||||||
mimetype='application/json'
|
|
||||||
)
|
|
||||||
response.headers.add("Access-Control-Allow-Origin", "*")
|
|
||||||
return response
|
|
||||||
|
|
||||||
def read_file(path):
|
|
||||||
with open(path, 'r') as f:
|
|
||||||
return f.read()
|
|
|
@ -1,29 +0,0 @@
|
||||||
import os
|
|
||||||
import json
|
|
||||||
from flask_restful import Resource
|
|
||||||
from ..classes.construct_level import ConstructLevel
|
|
||||||
from flask import abort, request, current_app as app
|
|
||||||
|
|
||||||
class Upload(Resource):
|
|
||||||
def post(self):
|
|
||||||
cl = request.content_length
|
|
||||||
if cl is not None and cl > 1024:
|
|
||||||
abort(413)
|
|
||||||
|
|
||||||
content = request.json
|
|
||||||
|
|
||||||
if "Name" not in content:
|
|
||||||
abort(400)
|
|
||||||
|
|
||||||
filename = os.path.join(app.root_path, 'data', 'JapariSling', content["Name"] + '.json')
|
|
||||||
|
|
||||||
with open(filename, "wt") as text_file:
|
|
||||||
text_file.write(json.dumps(content, ensure_ascii=False, indent=1))
|
|
||||||
|
|
||||||
response = app.response_class(
|
|
||||||
response="level uploaded",
|
|
||||||
status=200,
|
|
||||||
mimetype='text/plain'
|
|
||||||
)
|
|
||||||
response.headers.add("Access-Control-Allow-Origin", "*")
|
|
||||||
return response
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
from flask_restful import Resource
|
||||||
|
from flask import current_app as app, request, Request
|
||||||
|
|
||||||
|
import requests
|
||||||
|
|
||||||
|
def relayRequest(user_request : Request, url, headers):
|
||||||
|
with requests.Session() as session:
|
||||||
|
requests.utils.add_dict_to_cookiejar(session.cookies, user_request.cookies)
|
||||||
|
response = session.post(url, headers=headers, data=request.data)
|
||||||
|
|
||||||
|
result = app.response_class(
|
||||||
|
response=response.text,
|
||||||
|
status=200,
|
||||||
|
mimetype='application/json'
|
||||||
|
)
|
||||||
|
result.headers.add("Access-Control-Allow-Origin", "*")
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
class LaunchProxy(Resource):
|
||||||
|
def post(self):
|
||||||
|
url = "https://apidgp-gameplayer.games.dmm.com/v5/launch/cl"
|
||||||
|
headers = {"User-Agent": "DMMGamePlayer5-Win/5.3.12 Electron/32.1.0",
|
||||||
|
"Client-App": "DMMGamePlayer5",
|
||||||
|
"Client-version": "5.3.12",
|
||||||
|
"Content-Type": "application/json"}
|
||||||
|
|
||||||
|
return relayRequest(request, url, headers)
|
||||||
|
|
||||||
|
class UpdateProxy(Resource):
|
||||||
|
def post(self):
|
||||||
|
url = "https://apidgp-gameplayer.games.dmm.com/v5/r2/launch/cl"
|
||||||
|
headers = {"User-Agent": "DMMGamePlayer5-Win/5.3.12 Electron/32.1.0",
|
||||||
|
"Client-App": "DMMGamePlayer5",
|
||||||
|
"Client-version": "5.3.12",
|
||||||
|
"Content-Type": "application/json"}
|
||||||
|
|
||||||
|
return relayRequest(request, url, headers)
|
||||||
|
|
||||||
|
class AgreementProxy(Resource):
|
||||||
|
def post(self):
|
||||||
|
url = "https://apidgp-gameplayer.games.dmm.com/v5/agreement/confirm/client"
|
||||||
|
headers = {"User-Agent": "DMMGamePlayer5-Win/5.3.12 Electron/32.1.0",
|
||||||
|
"Client-App": "DMMGamePlayer5",
|
||||||
|
"Client-version": "5.3.12",
|
||||||
|
"Content-Type": "application/json"}
|
||||||
|
|
||||||
|
return relayRequest(request, url, headers)
|
Loading…
Reference in New Issue