Merge pull request 'Gamelist in memory' (#9) from preload-nfos into master

Reviewed-on: #9
This commit is contained in:
odecif 2022-10-28 11:10:48 +02:00
commit 3ee2fc0684
3 changed files with 47 additions and 10 deletions

View File

@ -1,6 +1,22 @@
import cv2
import base64
global gamelist
gamelist = []
# Set the gamelist
def set_gamelist(gamelist_dict):
global gamelist
gamelist = gamelist_dict
return True
# Get the gamelist
def get_gamelist():
global gamelist
return gamelist
# Reducing the size of an artwork/image (PNG to JPEG) and base64-encode it.
# imagepath = full file image path

View File

@ -1,25 +1,36 @@
from __main__ import app
from flask import jsonify, request
from flask import jsonify, make_response
import modules.db_connect
from modules.functions import get_gamelist, set_gamelist
import modules.game
import glob
import json
import base64
contentpath = modules.db_connect.contentpath()
# Fetch all _index.nfo-files present in given path and corresponding data
# Collects all _index.nfo-files present and crunches them into a list of
# games.
@app.route('/gamelist', methods=['GET'])
def gamelist():
def show_gamelist():
if get_gamelist():
return jsonify(get_gamelist())
update_gamelist()
return jsonify(get_gamelist())
nfolist = list(dict.fromkeys(glob.glob(str(contentpath)+'/**/**/*_index.nfo',recursive=True)))
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)+'/**/**/*_index.nfo', recursive=True)))
glist = []
for nfo in nfolist:
try:
game = modules.game.game(nfo, True, True)
gamelist.append(game)
glist.append(game)
except Exception as e:
print(e)
return jsonify(gamelist)
set_gamelist(glist)
return make_response("<h1>Success</h1>", 200)

View File

@ -1,7 +1,7 @@
from __main__ import app
import json
import requests
from flask import render_template
from flask import render_template, redirect, url_for
import modules.init
host_endpoint = modules.init.host_endpoint()
@ -26,3 +26,13 @@ def gamelist(lang_code):
return render_template('gamelist.html', gamelist=glist,
**languages[lang_code], lang_code=lang_code)
# Update/Refresh the gamelist by re-scanning the game archive (slow)
@app.route("/<lang_code>/gamelist/update")
def gamelist_update(lang_code):
lang_code = lang(lang_code)
response = requests.get(
host_endpoint + '/gamelist/update')
if response.status_code == 200:
return redirect(url_for('gamelist', lang_code=lang_code))