mirror of
https://gitea.tendokyu.moe/AttackVector/AVNetwork.git
synced 2026-09-27 17:47:57 +03:00
52 lines
15 KiB
Python
52 lines
15 KiB
Python
from flask import Blueprint, request # Import necessary functions
|
|
from kbinxml import KBinXML
|
|
from lz77 import lz77_compress
|
|
from urllib.parse import parse_qs
|
|
from variables.protocols import Respond
|
|
import re
|
|
|
|
|
|
bp = Blueprint(
|
|
"getResources", __name__, url_prefix="/"
|
|
) # Create a Blueprint for this route section
|
|
|
|
getServices = '<p2d>\n <status __type="s32">0</status>\n <error __type="s32">0</error>\n <result>\n <service_num __type="s32">63</service_num>\n <service>\n <service_name __type="str">addPoint</service_name>\n <url __type="str">url/iidx/needAuth/AddPoint</url>\n </service>\n <service>\n <service_name __type="str">addPointDirect</service_name>\n <url __type="str">url/iidx/needAuth/AddPointDirect</url>\n </service>\n <service>\n <service_name __type="str">cancelReserveChangePoint</service_name>\n <url __type="str">url/iidx/needAuth/CancelReserveChangePoint</url>\n </service>\n <service>\n <service_name __type="str">cancelReserveConsumeItem</service_name>\n <url __type="str">url/iidx/needAuth/CancelReserveConsumeItem</url>\n </service>\n <service>\n <service_name __type="str">checkChampionshipInfo</service_name>\n <url __type="str">url/needlessAuth/CheckChampionshipInfo</url>\n </service>\n <service>\n <service_name __type="str">checkGameStart</service_name>\n <url __type="str">url/common/needAuth/CheckGameStart</url>\n </service>\n <service>\n <service_name __type="str">checkGameVersion</service_name>\n <url __type="str">url/needlessAuth/CheckGameVersion</url>\n </service>\n <service>\n <service_name __type="str">checkPlayData</service_name>\n <url __type="str">url/iidx/needAuth/CheckPlayData</url>\n </service>\n <service>\n <service_name __type="str">checkPlayableMusicList</service_name>\n <url __type="str">url/iidx/needAuth/CheckPlayableMusicList</url>\n </service>\n <service>\n <service_name __type="str">checkSendLogAvailable</service_name>\n <url __type="str">url/needlessAuth/CheckSendLogAvailable</url>\n </service>\n <service>\n <service_name __type="str">checkTakeover</service_name>\n <url __type="str">url/iidx/needAuth/CheckTakeover</url>\n </service>\n <service>\n <service_name __type="str">checkUpdate</service_name>\n <url __type="str">url/needlessAuth/CheckUpdate</url>\n </service>\n <service>\n <service_name __type="str">checkVersion</service_name>\n <url __type="str">url/needlessAuth/CheckLauncherVersion</url>\n </service>\n <service>\n <service_name __type="str">consumeItem</service_name>\n <url __type="str">url/iidx/needAuth/ConsumeItem</url>\n </service>\n <service>\n <service_name __type="str">gameEnd</service_name>\n <url __type="str">url/iidx/needAuth/GameEnd</url>\n </service>\n <service>\n <service_name __type="str">getAdvertise</service_name>\n <url __type="str">url/needlessAuth/GetAdvertise</url>\n </service>\n <service>\n <service_name __type="str">getChampionshipInfo</service_name>\n <url __type="str">url/needlessAuth/GetChampionshipInfo</url>\n </service>\n <service>\n <service_name __type="str">getChampionshipRank</service_name>\n <url __type="str">url/iidx/needAuth/GetChampionshipRank</url>\n </service>\n <service>\n <service_name __type="str">getChampionshipRecord</service_name>\n <url __type="str">url/iidx/needAuth/GetChampionshipRecord</url>\n </service>\n <service>\n <service_name __type="str">getClearRate</service_name>\n <url __type="str">url/needlessAuth/GetClearRate</url>\n </service>\n <service>\n <service_name __type="str">getCompeScoreData</service_name>\n <url __type="str">url/iidx/needAuth/GetCompeScoreData</url>\n </service>\n <service>\n <service_name __type="str">getCustomizeSetting</service_name>\n <url __type="str">url/iidx/needAuth/GetCustomizeSetting</url>\n </service>\n <service>\n <service_name __type="str">getDownloadResource</service_name>\n <url __type="str">https://d1rc4pwxnc0pe0.cloudfront.net/v3/resource/distribution/ondemand</url>\n </service>\n <service>\n <service_name __type="str">getGoodsList</service_name>\n <url __type="str">url/needlessAuth/GetGoodsList</url>\n </service>\n <service>\n <service_name __type="str">getHash</service_name>\n <url __type="str">url/needlessAuth/GetHash</url>\n </service>\n <service>\n <service_name __type="str">getInformation</service_name>\n <url __type="str">url/needlessAuth/GetInformation</url>\n </service>\n <service>\n <service_name __type="str">getItemList</service_name>\n <url __type="str">url/iidx/needAuth/GetItemList</url>\n </service>\n <service>\n <service_name __type="str">getItemNum</service_name>\n <url __type="str">url/iidx/needAuth/GetItemNum</url>\n </service>\n <service>\n <service_name __type="str">getMusicData</service_name>\n <url __type="str">url/iidx/needAuth/GetMusicData</url>\n </service>\n <service>\n <service_name __type="str">getMusicGhost</service_name>\n <url __type="str">url/iidx/needAuth/GetMusicGhost</url>\n </service>\n <service>\n <service_name __type="str">getMusicList</service_name>\n <url __type="str">url/iidx/needAuth/GetMusicList</url>\n </service>\n <service>\n <service_name __type="str">getPackageList</service_name>\n <url __type="str">url/needlessAuth/GetPackageList</url>\n </service>\n <service>\n <service_name __type="str">getPlayData</service_name>\n <url __type="str">url/iidx/needAuth/GetPlayData</url>\n </service>\n <service>\n <service_name __type="str">getPlayableMusicList</service_name>\n <url __type="str">url/iidx/needAuth/GetPlayableMusicList</url>\n </service>\n <service>\n <service_name __type="str">getPointList</service_name>\n <url __type="str">url/iidx/needAuth/GetPointList</url>\n </service>\n <service>\n <service_name __type="str">getPrivilegeClient</service_name>\n <url __type="str">url/iidx/needAuth/GetPrivilegeClient</url>\n </service>\n <service>\n <service_name __type="str">getPrivilegeServer</service_name>\n <url __type="str">url/iidx/needAuth/GetPrivilegeServer</url>\n </service>\n <service>\n <service_name __type="str">getResourceInfo</service_name>\n <url __type="str">url/needlessAuth/GetFile</url>\n </service>\n <service>\n <service_name __type="str">getRival</service_name>\n <url __type="str">url/iidx/needAuth/GetRival</url>\n </service>\n <service>\n <service_name __type="str">getRivalChallenge</service_name>\n <url __type="str">url/iidx/needAuth/GetRivalChallenge</url>\n </service>\n <service>\n <service_name __type="str">getRivalInfo</service_name>\n <url __type="str">url/iidx/needAuth/GetRivalInfo</url>\n </service>\n <service>\n <service_name __type="str">getServerClock</service_name>\n <url __type="str">url/preProcess/GetServerClock</url>\n </service>\n <service>\n <service_name __type="str">getServerState</service_name>\n <url __type="str">url/preProcess/GetServerState</url>\n </service>\n <service>\n <service_name __type="str">getServerValues</service_name>\n <url __type="str">url/common/needAuth/GetServerValues</url>\n </service>\n <service>\n <service_name __type="str">getServices</service_name>\n <url __type="str">url/iidx/preProcess/GetServices</url>\n </service>\n <service>\n <service_name __type="str">getTemporaryFiles</service_name>\n <url __type="str">url/needlessAuth/GetTemporaryFiles</url>\n </service>\n <service>\n <service_name __type="str">heartbeat</service_name>\n <url __type="str">url/common/needAuth/Heartbeat</url>\n </service>\n <service>\n <service_name __type="str">loginEX</service_name>\n <url __type="str">https://p.eagate.573.jp/game/eac2dx/infinitas/API/page/loginEX.html</url>\n </service>\n <service>\n <service_name __type="str">registPlayer</service_name>\n <url __type="str">url/iidx/needAuth/RegistPlayer</url>\n </service>\n <service>\n <service_name __type="str">reportMusicResult</service_name>\n <url __type="str">url/iidx/needAuth/ReportMusicResult</url>\n </service>\n <service>\n <service_name __type="str">reserveChangePoint</service_name>\n <url __type="str">url/iidx/needAuth/ReserveChangePoint</url>\n </service>\n <service>\n <service_name __type="str">reserveConsumeItem</service_name>\n <url __type="str">url/iidx/needAuth/ReserveConsumeItem</url>\n </service>\n <service>\n <service_name __type="str">saveChampionshipRecord</service_name>\n <url __type="str">url/iidx/needAuth/SaveChampionshipRecord</url>\n </service>\n <service>\n <service_name __type="str">savePlayData</service_name>\n <url __type="str">url/iidx/needAuth/SavePlayData</url>\n </service>\n <service>\n <service_name __type="str">sendGradeCertificationLog</service_name>\n <url __type="str">url/iidx/needAuth/SendGradeCertificationLog</url>\n </service>\n <service>\n <service_name __type="str">sendLog</service_name>\n <url __type="str">url/needlessAuth/SendLog</url>\n </service>\n <service>\n <service_name __type="str">unlockMusic</service_name>\n <url __type="str">url/iidx/needAuth/UnlockMusic</url>\n </service>\n <service>\n <service_name __type="str">uploadFile</service_name>\n <url __type="str">url/needlessAuth/UploadFileMultipart</url>\n </service>\n <service>\n <service_name __type="str">urlAgreement</service_name>\n <url __type="str">https://p.eagate.573.jp/game/infinitas/2/jump/agreement.html</url>\n </service>\n <service>\n <service_name __type="str">urlEaShop</service_name>\n <url __type="str">https://p.eagate.573.jp/game/eac2dx/jump/eashop.html</url>\n </service>\n <service>\n <service_name __type="str">urlKAC5th</service_name>\n <url __type="str">http://p.eagate.573.jp/game/kac5th/detail.html?id=infinitas&group=outline&lang=ja</url>\n </service>\n <service>\n <service_name __type="str">usePoint</service_name>\n <url __type="str">url/iidx/needAuth/UsePoint</url>\n </service>\n <service>\n <service_name __type="str">usePointDirect</service_name>\n <url __type="str">url/iidx/needAuth/UsePointDirect</url>\n </service>\n </result>\n</p2d>'
|
|
getServicesEACNET = '<eacnet>\n <status __type="s32">0</status>\n <error_code __type="s32">0</error_code>\n <response>\n <service_num __type="s32">18</service_num>\n <service>\n <service_name __type="str">acRelay</service_name>\n <url __type="str">url/eacnet/needAuth/AcRelay</url>\n </service>\n <service>\n <service_name __type="str">cancelReserveConsumeItem</service_name>\n <url __type="str">url/eacnet/needAuth/CancelReserveConsumeItem</url>\n </service>\n <service>\n <service_name __type="str">checkGameStart</service_name>\n <url __type="str">url/common/needAuth/CheckGameStart</url>\n </service>\n <service>\n <service_name __type="str">checkVersion</service_name>\n <url __type="str">url/needlessAuth/CheckVersion</url>\n </service>\n <service>\n <service_name __type="str">consumeItem</service_name>\n <url __type="str">url/eacnet/needAuth/ConsumeItem</url>\n </service>\n <service>\n <service_name __type="str">getGoodsList</service_name>\n <url __type="str">url/needlessAuth/GetGoodsList</url>\n </service>\n <service>\n <service_name __type="str">getHash</service_name>\n <url __type="str">url/needlessAuth/GetHash</url>\n </service>\n <service>\n <service_name __type="str">getItemList</service_name>\n <url __type="str">url/eacnet/needAuth/GetItemList</url>\n </service>\n <service>\n <service_name __type="str">getLauncherData</service_name>\n <url __type="str">url/needlessAuth/GetLauncherData</url>\n </service>\n <service>\n <service_name __type="str">getResourceInfo</service_name>\n <url __type="str">url/needlessAuth/GetResourceInfo</url>\n </service>\n <service>\n <service_name __type="str">getServerClock</service_name>\n <url __type="str">url/preProcess/GetServerClock</url>\n </service>\n <service>\n <service_name __type="str">getServerState</service_name>\n <url __type="str">url/preProcess/GetServerStatus</url>\n </service>\n <service>\n <service_name __type="str">getServices</service_name>\n <url __type="str">url/eacnet/preProcess/GetServices</url>\n </service>\n <service>\n <service_name __type="str">getSubscriptionStatus</service_name>\n <url __type="str">url/eacnet/needAuth/GetSubscriptionStatus</url>\n </service>\n <service>\n <service_name __type="str">getUserIDs</service_name>\n <url __type="str">url/eacnet/needAuth/GetUserId</url>\n </service>\n <service>\n <service_name __type="str">heartbeat</service_name>\n <url __type="str">url/common/needAuth/Heartbeat</url>\n </service>\n <service>\n <service_name __type="str">reserveConsumeItem</service_name>\n <url __type="str">url/eacnet/needAuth/ReserveConsumeItem</url>\n </service>\n <service>\n <service_name __type="str">uploadFile</service_name>\n <url __type="str">url/needlessAuth/UploadFile</url>\n </service>\n </response>\n</eacnet>'
|
|
|
|
|
|
@bp.route("/", methods=["GET", "POST"])
|
|
@bp.route(
|
|
"/game/konasteapp/APIEX/servletex/pre_process/GetServices", methods=["GET", "POST"]
|
|
)
|
|
def handle_request():
|
|
if request.method == "POST":
|
|
# Access post data
|
|
post_data = request.get_data().decode("UTF-8")
|
|
print(request.url_root)
|
|
variables = parse_qs(post_data)
|
|
headers = request.headers
|
|
host = request.host
|
|
|
|
if variables["protocol_version"][0] == "P2D:2015091800":
|
|
response = KBinXML(
|
|
re.sub(r"url/", "http://" + host + "/", getServices).encode()
|
|
) # re.sub() with host
|
|
else:
|
|
response = KBinXML(
|
|
re.sub(r"url/", "http://" + host + "/", getServicesEACNET).encode()
|
|
) # re.sub() with host
|
|
binary_data = response.to_binary()
|
|
if isinstance(binary_data, str):
|
|
binary_data = binary_data.encode("utf-8")
|
|
|
|
return Respond(binary_data,variables["protocol_version"][0])
|
|
elif request.method == "GET":
|
|
# GET logic
|
|
# Example: Return a simple response
|
|
return "Server Online & Accepting Requests."
|
|
|
|
return "Invalid request method"
|
|
|
|
|
|
# Optional: You can define more routes within this file
|