This commit is contained in:
GamerNoTitle 2024-09-22 18:17:24 +08:00
parent 71fcf6183d
commit 0a37911ea1

View File

@ -22,6 +22,7 @@ BUILD_NUMBER = "2024.1.4+Build+CL-241.18034.45"
# Configure static files # Configure static files
app.mount("/static", StaticFiles(directory="app/static"), name="static") app.mount("/static", StaticFiles(directory="app/static"), name="static")
# Parse xml response # Parse xml response
def get_xml_data(server: str, ticket_path: str): def get_xml_data(server: str, ticket_path: str):
client = httpx.Client(verify=False) client = httpx.Client(verify=False)
@ -40,17 +41,21 @@ def get_xml_data(server: str, ticket_path: str):
"server_uid": root.find("serverUid").text, "server_uid": root.find("serverUid").text,
"validation_deadline_period": root.find("validationDeadlinePeriod").text, "validation_deadline_period": root.find("validationDeadlinePeriod").text,
"validation_period": root.find("validationPeriod").text, "validation_period": root.find("validationPeriod").text,
"message": root.find("message").text "message": root.find("message").text,
} }
except httpx.ReadTimeout: except httpx.ReadTimeout:
return {"error": "Timeout: Please try again later."} return {"error": "Timeout: Please try again later."}
except Exception as e: except Exception as e:
return {"error": f"An unexpected error occurred: {str(e)}. It seems that this server is not avaliable or you can try again later."} return {
"error": f"An unexpected error occurred: {str(e)}. It seems that this server is not avaliable or you can try again later."
}
@app.get("/", response_class=HTMLResponse) @app.get("/", response_class=HTMLResponse)
async def index(request: Request): async def index(request: Request):
return templates.TemplateResponse("index.html", {"request": request}) return templates.TemplateResponse("index.html", {"request": request})
@app.post("/fetch", response_class=HTMLResponse) @app.post("/fetch", response_class=HTMLResponse)
async def fetch_data(request: Request, server: str = Form(...)): async def fetch_data(request: Request, server: str = Form(...)):
RELEASE_TICKET_PATH = f"/rpc/releaseTicket.action?buildNumber={BUILD_NUMBER}&clientVersion=16&hostName={DESKTOP_NAME}&machineId={MACHINE_ID}&productCode=cfc7082d-ae43-4978-a2a2-46feb1679405&productFamilyId=cfc7082d-ae43-4978-a2a2-46feb1679405&salt=1726973268812&secure=false&ticketId=rsoaehfbbg&userName={USERNAME}" RELEASE_TICKET_PATH = f"/rpc/releaseTicket.action?buildNumber={BUILD_NUMBER}&clientVersion=16&hostName={DESKTOP_NAME}&machineId={MACHINE_ID}&productCode=cfc7082d-ae43-4978-a2a2-46feb1679405&productFamilyId=cfc7082d-ae43-4978-a2a2-46feb1679405&salt=1726973268812&secure=false&ticketId=rsoaehfbbg&userName={USERNAME}"
@ -59,18 +64,23 @@ async def fetch_data(request: Request, server: str = Form(...)):
release_ticket_data = get_xml_data(server, RELEASE_TICKET_PATH) release_ticket_data = get_xml_data(server, RELEASE_TICKET_PATH)
obtain_ticket_data = get_xml_data(server, OBTAIN_TICKET_PATH) obtain_ticket_data = get_xml_data(server, OBTAIN_TICKET_PATH)
return templates.TemplateResponse("index.html", { return templates.TemplateResponse(
"index.html",
{
"request": request, "request": request,
"release_data": release_ticket_data, "release_data": release_ticket_data,
"obtain_data": obtain_ticket_data, "obtain_data": obtain_ticket_data,
"server": server "server": server,
}) },
)
@app.get("/api/fetch") @app.get("/api/fetch")
@app.post("/api/fetch") @app.post("/api/fetch")
async def api_fetch(server: str = Form(...)): async def api_fetch(server: str = Form(...)):
return await handle_fetch(server) return await handle_fetch(server)
async def handle_fetch(server: str): async def handle_fetch(server: str):
RELEASE_TICKET_PATH = f"/rpc/releaseTicket.action?buildNumber={BUILD_NUMBER}&clientVersion=16&hostName={DESKTOP_NAME}&machineId={MACHINE_ID}&productCode=cfc7082d-ae43-4978-a2a2-46feb1679405&productFamilyId=cfc7082d-ae43-4978-a2a2-46feb1679405&salt=1726973268812&secure=false&ticketId=rsoaehfbbg&userName={USERNAME}" RELEASE_TICKET_PATH = f"/rpc/releaseTicket.action?buildNumber={BUILD_NUMBER}&clientVersion=16&hostName={DESKTOP_NAME}&machineId={MACHINE_ID}&productCode=cfc7082d-ae43-4978-a2a2-46feb1679405&productFamilyId=cfc7082d-ae43-4978-a2a2-46feb1679405&salt=1726973268812&secure=false&ticketId=rsoaehfbbg&userName={USERNAME}"
OBTAIN_TICKET_PATH = f"/rpc/obtainTicket.action?buildDate=20240409&{BUILD_NUMBER}&clientVersion=16&hostName={DESKTOP_NAME}&machineId={MACHINE_ID}&productCode=cfc7082d-ae43-4978-a2a2-46feb1679405&productFamilyId=cfc7082d-ae43-4978-a2a2-46feb1679405&salt=1726973269845&secure=false&userName={USERNAME}&version={VERSION}&versionNumber={VERSION}" OBTAIN_TICKET_PATH = f"/rpc/obtainTicket.action?buildDate=20240409&{BUILD_NUMBER}&clientVersion=16&hostName={DESKTOP_NAME}&machineId={MACHINE_ID}&productCode=cfc7082d-ae43-4978-a2a2-46feb1679405&productFamilyId=cfc7082d-ae43-4978-a2a2-46feb1679405&salt=1726973269845&secure=false&userName={USERNAME}&version={VERSION}&versionNumber={VERSION}"
@ -84,11 +94,13 @@ async def handle_fetch(server: str):
elif obtain_ticket_data.get("response_code") == "Error": elif obtain_ticket_data.get("response_code") == "Error":
available = False available = False
return JSONResponse(content={ return JSONResponse(
content={
"available": available, "available": available,
"message": obtain_ticket_data.get("message", ""), "message": obtain_ticket_data.get("message", ""),
"data": { "data": {
"release_ticket_data": release_ticket_data, "release_ticket_data": release_ticket_data,
"obtain_ticket_data": obtain_ticket_data, "obtain_ticket_data": obtain_ticket_data,
},
} }
}) )