bcns-gameDistributionSystem/api/modules/gamelist.py
odecif ad3fd6a195 JSONEncoder and manual
Focus on remving deprecated flas.JSONEncoder and replacing it with
json.JSONEncoder.

* Exception handling when API is not accessible [fix #25]
* flask.JSONEncoder deprecated [fix #24]
* Show manual (if present) [fix #23]
* Small touch-ups
2023-09-19 00:47:31 +02:00

38 lines
1.0 KiB
Python

from __main__ import app
from flask import jsonify, make_response
import modules.db_connect
from modules.functions import get_gamelist, set_gamelist
import modules.game
import glob
contentpath = modules.db_connect.contentpath()
nfosuffix = modules.db_connect.nfosuffix()
# Collects all _index.nfo-files present and crunches them into a list of
# games.
@app.route('/gamelist', methods=['GET'])
def show_gamelist():
if get_gamelist():
return jsonify(get_gamelist())
update_gamelist()
return jsonify(get_gamelist())
# Updates the gamelist by searching for new nfo's
@app.route('/gamelist/update', methods=['GET'])
def update_gamelist():
nfolist = list(dict.fromkeys(glob.glob(
str(contentpath)+'/**/**/*'+nfosuffix, recursive=True)))
glist = []
for nfo in nfolist:
try:
game = modules.game.game(nfo, True, True)
glist.append(game)
except Exception as e:
print(nfo, e)
set_gamelist(glist)
return make_response("<h1>Success</h1>", 200)