mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 04:01:32 -06:00

* WebHost: allow getting checksum-specific datapackage via /api/datapackage/<checksum> * match import style of /api/generate
33 lines
883 B
Python
33 lines
883 B
Python
from flask import abort
|
|
|
|
from Utils import restricted_loads
|
|
from WebHostLib import cache
|
|
from WebHostLib.models import GameDataPackage
|
|
from . import api_endpoints
|
|
|
|
|
|
@api_endpoints.route('/datapackage')
|
|
@cache.cached()
|
|
def get_datapackage():
|
|
from worlds import network_data_package
|
|
return network_data_package
|
|
|
|
|
|
@api_endpoints.route('/datapackage/<string:checksum>')
|
|
@cache.memoize(timeout=3600)
|
|
def get_datapackage_by_checksum(checksum: str):
|
|
package = GameDataPackage.get(checksum=checksum)
|
|
if package:
|
|
return restricted_loads(package.data)
|
|
return abort(404)
|
|
|
|
|
|
@api_endpoints.route('/datapackage_checksum')
|
|
@cache.cached()
|
|
def get_datapackage_checksums():
|
|
from worlds import network_data_package
|
|
version_package = {
|
|
game: game_data["checksum"] for game, game_data in network_data_package["games"].items()
|
|
}
|
|
return version_package
|