mirror of
				https://github.com/MarioSpore/Grinch-AP.git
				synced 2025-10-21 20:21:32 -06:00 
			
		
		
		
	 89d584e474
			
		
	
	89d584e474
	
	
	
		
			
			* 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
 |