diff --git a/app.py b/app.py index 86ea078..d1329a1 100644 --- a/app.py +++ b/app.py @@ -1,1058 +1,1066 @@ import babel import collections import copy import decorator import flask import jinja2 import json import mwapi import mwoauth import os import random import re import requests_oauthlib import string import toolforge import yaml from flask_utils import OrderedFlask, TagOrderedMultiDict, TagImmutableOrderedMultiDict, SetJSONEncoder from formatters import I18nFormatter from language import lang_lex2int, lang_int2html, lang_int2babel from language_names import autonym from matching import match_template_to_lexeme_data, match_lexeme_forms_to_template, match_template_entity_to_lexeme_entity from mwapi_utils import T272319RetryingSession from parse_tpsv import parse_lexemes, FirstFieldNotLexemeIdError, FirstFieldLexemeIdError, WrongNumberOfFieldsError from templates import templates, templates_without_redirects from translations import translations app = OrderedFlask(__name__) app.session_interface.serializer.register(TagOrderedMultiDict, index=0) app.session_interface.serializer.register(TagImmutableOrderedMultiDict, index=0) app.json_encoder = SetJSONEncoder app.add_template_filter(lang_lex2int) app.add_template_filter(lang_int2html) app.add_template_filter(lang_int2babel) user_agent = toolforge.set_user_agent('lexeme-forms', email='mail@lucaswerkmeister.de') __dir__ = os.path.dirname(__file__) try: with open(os.path.join(__dir__, 'config.yaml')) as config_file: app.config.update(yaml.safe_load(config_file)) consumer_token = mwoauth.ConsumerToken(app.config['oauth']['consumer_key'], app.config['oauth']['consumer_secret']) except FileNotFoundError: print('config.yaml file not found, assuming local development setup') app.secret_key = 'fake' @decorator.decorator def enableCORS(func, *args, **kwargs): rv = func(*args, **kwargs) response = flask.make_response(rv) response.headers['Access-Control-Allow-Origin'] = '*' return response @app.after_request def denyFrame(response): """Disallow embedding the tool’s pages in other websites. If other websites can embed this tool’s pages, e. g. in