mirror of
https://github.com/LibreTranslate/LibreTranslate.git
synced 2024-12-24 10:06:43 +02:00
Save suggestions in a database
This commit is contained in:
parent
c02658984e
commit
0561deb1b4
1
.gitignore
vendored
1
.gitignore
vendored
@ -131,3 +131,4 @@ installed_models/
|
|||||||
|
|
||||||
# Misc
|
# Misc
|
||||||
api_keys.db
|
api_keys.db
|
||||||
|
suggestions.db
|
@ -9,6 +9,7 @@ from app import flood
|
|||||||
from app.language import detect_languages, transliterate
|
from app.language import detect_languages, transliterate
|
||||||
|
|
||||||
from .api_keys import Database
|
from .api_keys import Database
|
||||||
|
from .suggestions import Database as SuggestionsDatabase
|
||||||
|
|
||||||
from translatehtml import translate_html
|
from translatehtml import translate_html
|
||||||
|
|
||||||
@ -617,7 +618,12 @@ def create_app(args):
|
|||||||
@app.route("/suggest", methods=["POST"])
|
@app.route("/suggest", methods=["POST"])
|
||||||
@limiter.exempt
|
@limiter.exempt
|
||||||
def suggest():
|
def suggest():
|
||||||
# TODO:
|
q = request.values.get("q")
|
||||||
|
s = request.values.get("s")
|
||||||
|
source_lang = request.values.get("source")
|
||||||
|
target_lang = request.values.get("target")
|
||||||
|
|
||||||
|
SuggestionsDatabase().add(q, s, source_lang, target_lang)
|
||||||
return jsonify({"success": True})
|
return jsonify({"success": True})
|
||||||
|
|
||||||
SWAGGER_URL = "/docs" # URL for exposing Swagger UI (without trailing '/')
|
SWAGGER_URL = "/docs" # URL for exposing Swagger UI (without trailing '/')
|
||||||
|
31
app/suggestions.py
Normal file
31
app/suggestions.py
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
import sqlite3
|
||||||
|
import uuid
|
||||||
|
|
||||||
|
from expiringdict import ExpiringDict
|
||||||
|
|
||||||
|
DEFAULT_DB_PATH = "suggestions.db"
|
||||||
|
|
||||||
|
|
||||||
|
class Database:
|
||||||
|
def __init__(self, db_path=DEFAULT_DB_PATH, max_cache_len=1000, max_cache_age=30):
|
||||||
|
self.db_path = db_path
|
||||||
|
self.cache = ExpiringDict(max_len=max_cache_len, max_age_seconds=max_cache_age)
|
||||||
|
|
||||||
|
# Make sure to do data synchronization on writes!
|
||||||
|
self.c = sqlite3.connect(db_path, check_same_thread=False)
|
||||||
|
self.c.execute(
|
||||||
|
"""CREATE TABLE IF NOT EXISTS suggestions (
|
||||||
|
"q" TEXT NOT NULL,
|
||||||
|
"s" TEXT NOT NULL,
|
||||||
|
"source" TEXT NOT NULL,
|
||||||
|
"target" TEXT NOT NULL
|
||||||
|
);"""
|
||||||
|
)
|
||||||
|
|
||||||
|
def add(self, q, s, source, target):
|
||||||
|
self.c.execute(
|
||||||
|
"INSERT INTO suggestions (q, s, source, target) VALUES (?, ?, ?, ?)",
|
||||||
|
(q, s, source, target),
|
||||||
|
)
|
||||||
|
self.c.commit()
|
||||||
|
return True
|
Loading…
Reference in New Issue
Block a user