from datetime import date from flask import render_template, Flask, request from flask.json import JSONEncoder import modules.init import os import inspect import json import glob class MyJSONEncoder(JSONEncoder): def default(self, o): if isinstance(o, date): return o.isoformat() return super().default(o) class MyFlask(Flask): json_encoder = MyJSONEncoder app = MyFlask(__name__) modules.init.init() import modules.gamelist # noqa: E402 import modules.game # noqa: E402 # Init stuff config = modules.init.config host_endpoint = modules.init.host_endpoint() languages = modules.init.get_languages() # App-server-stuff app.config["DEBUG"] = True # Check if valid language code is set. If not, return app default def lang(lang_code): if lang_code not in languages: return app_language return lang_code @app.route("/", methods=["GET", "POST"]) @app.route("//", methods=["GET", "POST"]) def home(lang_code=False): lang_code = lang(lang_code) if request.form: lang_code = request.form["language_select"] return render_template('home.html', **languages[lang_code], lang_code=lang_code, languages=languages.keys()) # Initiation if __name__ == '__main__': app.config['JSON_AS_ASCII'] = False # Language stuff app_language = 'en_US' date_format = "%Y-%m-%d %H:%M:%S" languages_path = os.path.dirname( os.path.abspath(inspect.getfile( inspect.currentframe()))) language_list = glob.glob(languages_path + "/language/*.json") print("### Loaded languages") for language in language_list: filename = os.path.basename(language) lang_code = filename.split('.')[0] with open(language, 'r', encoding='utf-8') as file: print("# ", lang_code) languages[lang_code] = json.loads(file.read()) app.run( host=config.get('Main', 'host'), port=config.get('Main', 'port'))