forked from mirrors/LibreTranslate
46 lines
No EOL
1.3 KiB
Python
Executable file
46 lines
No EOL
1.3 KiB
Python
Executable file
#!/usr/bin/env python
|
|
import argparse
|
|
import time
|
|
import sqlite3
|
|
import json
|
|
|
|
if __name__ == "__main__":
|
|
parser = argparse.ArgumentParser(description="Program to generate JSONL files from a LibreTranslate's suggestions.db")
|
|
parser.add_argument(
|
|
"--db",
|
|
type=str,
|
|
nargs=1,
|
|
help="Path to suggestions.db file",
|
|
default='suggestions.db'
|
|
)
|
|
parser.add_argument(
|
|
"--clear",
|
|
action='store_true',
|
|
help="Clear suggestions.db after generation",
|
|
default=False
|
|
)
|
|
args = parser.parse_args()
|
|
|
|
output_file = str(int(time.time())) + ".jsonl"
|
|
|
|
con = sqlite3.connect(args.db, check_same_thread=False)
|
|
cur = con.cursor()
|
|
|
|
with open(output_file, 'w', encoding="utf-8") as f:
|
|
for row in cur.execute('SELECT q, s, source, target FROM suggestions WHERE source != "auto" ORDER BY source'):
|
|
q, s, source, target = row
|
|
obj = {
|
|
'q': q,
|
|
's': s,
|
|
'source': source,
|
|
'target': target
|
|
}
|
|
json.dump(obj, f, ensure_ascii=False)
|
|
f.write('\n')
|
|
|
|
print("Wrote %s" % output_file)
|
|
|
|
if args.clear:
|
|
cur.execute("DELETE FROM suggestions")
|
|
con.commit()
|
|
print("Cleared " + args.db) |