From b8a0d2092fc14c505b8e5e68606f3078edd4815f Mon Sep 17 00:00:00 2001 From: Enzo Simonnet <enzosim@laposte.net> Date: Tue, 7 May 2024 15:03:29 +0200 Subject: [PATCH] =?UTF-8?q?gestion=20de=20l'encodage=20des=20caract=C3=A8r?= =?UTF-8?q?es=20utf-8=20dans=20l'url=20des=20requ=C3=AAtes=20curl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/app.py b/src/app.py index b2d9c8b..72fae32 100755 --- a/src/app.py +++ b/src/app.py @@ -1,5 +1,11 @@ from flask import Flask, Response, json, jsonify, request from flask_cors import CORS +from urllib.parse import unquote +import requests + +# import sys +# import codecs +# sys.stdout = codecs.getwriter('utf-8')(sys.stdout.buffer, 'strict') import config from wiktextract_wrapper import Wiktextract @@ -28,6 +34,9 @@ def index(): @app.route("/simplesearch/<lang>/<word>", methods=["GET"]) def search(lang, word): + word = requests.utils.unquote(word) + word = word.encode('latin-1').decode('utf-8') # Decode the word from Latin-1 to UTF-8 + # print(word) if lang not in config.supported_wiktlangs: return jsonify({"error": f"Language {lang} not supported"}), 400 @@ -55,8 +64,11 @@ def search(lang, word): if wiktextractor.wxr.thesaurus_db_conn: wiktextractor.wxr.thesaurus_db_conn.close() -@app.route("/search/<wiktlang>/<wordlang>/<word>/<format>", methods=["GET"]) +@app.route("/search/<wiktlang>/<wordlang>/<path:word>/<format>", methods=["GET"]) def search_and_format(wiktlang, wordlang, word, format): + word = requests.utils.unquote(word) + word = word.encode('latin-1').decode('utf-8') # Decode the word from Latin-1 to UTF-8 + # print(word) # app.logger.info('Received a request from /search/<wiktlang>/<wordlang>/<word>/<format>') if wiktlang not in config.supported_wiktlangs: return jsonify({"error": f"Language {wiktlang} not supported"}), 400 @@ -64,7 +76,7 @@ def search_and_format(wiktlang, wordlang, word, format): if len(format)>2 and format[0:2] in ("a_", "A_"): ascii = True format = format[2:] - print(ascii, format) + # print(ascii, format) else: ascii = False try: -- GitLab