add web
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import requests
|
||||
from app.routes.asset import migrateAsset
|
||||
from app.extensions import limiter, db, redis_controller
|
||||
from flask import Blueprint, render_template, request, redirect, url_for, jsonify, make_response, abort
|
||||
|
||||
SetsRoute = Blueprint("sets", __name__, template_folder="pages")
|
||||
|
||||
def FetchSetData( setId : int, avoidCache : bool = False ) -> str:
|
||||
"""
|
||||
Fetches the set data from sets.pizzaboxer.xyz and then caches it in redis.
|
||||
"""
|
||||
if not avoidCache:
|
||||
CachedSetData = redis_controller.get(f"set:{str(setId)}:data")
|
||||
if CachedSetData is not None:
|
||||
return CachedSetData
|
||||
SetData = requests.get(f"https://sets.pizzaboxer.xyz/Game/Tools/InsertAsset.ashx?sid={str(setId)}").text
|
||||
redis_controller.set(f"set:{str(setId)}:data", SetData, ex=(60 * 60 * 24 * 31))
|
||||
return SetData
|
||||
|
||||
def FetchUserSetsData( nsets : int = 20, type : str = "user", userid : int = 1, avoidCache : bool = False ) -> str:
|
||||
"""
|
||||
Fetches the user's sets data from sets.pizzaboxer.xyz and then caches it in redis.
|
||||
"""
|
||||
if not avoidCache:
|
||||
CachedSetData = redis_controller.get(f"sets:{str(userid)}:data")
|
||||
if CachedSetData is not None:
|
||||
return CachedSetData
|
||||
SetData = requests.get(f"https://sets.pizzaboxer.xyz/Game/Tools/InsertAsset.ashx?nsets={str(nsets)}&type={type}&userid={str(userid)}").text
|
||||
redis_controller.set(f"sets:{str(userid)}:data", SetData, ex=(60 * 60 * 24 * 31))
|
||||
return SetData
|
||||
|
||||
@SetsRoute.route("/Game/Tools/InsertAsset.ashx", methods=["GET"])
|
||||
def insert_asset():
|
||||
SetId = request.args.get( key = "sid", default = None, type = int )
|
||||
if SetId is None:
|
||||
NSets = request.args.get( key = "nsets", default = None, type = int )
|
||||
OwnerType = request.args.get( key = "type", default = None, type = str )
|
||||
UserId = request.args.get( key = "userid", default = None, type = int )
|
||||
|
||||
if NSets is None or OwnerType is None or UserId is None:
|
||||
return abort(400)
|
||||
|
||||
SetData : str = FetchUserSetsData(nsets=NSets, type=OwnerType, userid=UserId)
|
||||
DataResponse = make_response(SetData)
|
||||
DataResponse.headers["Content-Type"] = "text/xml"
|
||||
return DataResponse
|
||||
|
||||
SetData : str = FetchSetData(SetId)
|
||||
DataResponse = make_response(SetData)
|
||||
DataResponse.headers["Content-Type"] = "text/xml"
|
||||
return DataResponse
|
||||
Reference in New Issue
Block a user