Files
DocumentServer-v-9.2.0/server/dictionaries/update.py
Yajbir Singh f1b860b25c
Some checks failed
check / markdownlint (push) Has been cancelled
check / spellchecker (push) Has been cancelled
updated
2025-12-11 19:03:17 +05:30

87 lines
2.9 KiB
Python

import os
import glob
import json
import subprocess
import platform
curDirectory = os.path.dirname(os.path.realpath(__file__))
dictionatiesDirectory = curDirectory + "/../../dictionaries"
all_dictionaties = {}
for dir in glob.glob(dictionatiesDirectory + "/*"):
if not os.path.isdir(dir):
continue
dictionaryName = os.path.basename(dir)
configFile = dictionatiesDirectory + "/" + dictionaryName + "/" + dictionaryName + ".json"
if not os.path.isfile(configFile):
continue
isHyphen = False
hyphenFile = dictionatiesDirectory + "/" + dictionaryName + "/hyph_" + dictionaryName + ".dic"
if os.path.isfile(hyphenFile):
isHyphen = True
with open(configFile, 'r', encoding='utf-8') as file:
data = json.loads(file.read())
for lang in data["codes"]:
all_dictionaties[str(lang)] = {
"name": dictionaryName,
"hyphen": isHyphen
}
all_dictionaties_content = json.dumps(all_dictionaties, separators=(",", ":"), sort_keys=True)
sdkjsDirectory = dictionatiesDirectory + "/../sdkjs"
filesReplace = [
sdkjsDirectory + "/common/spell/spell.js"
]
sdkjsDirectory = dictionatiesDirectory + "/../sdkjs"
for dir in glob.glob(sdkjsDirectory + "/*"):
if not os.path.isdir(dir):
continue
editorName = os.path.basename(dir)
testFile = sdkjsDirectory + "/" + editorName + "/sdk-all-min.js"
if (os.path.isfile(testFile)):
filesReplace.append(testFile)
testFile = sdkjsDirectory + "/" + editorName + "/sdk-all.js"
if (os.path.isfile(testFile)):
filesReplace.append(testFile)
for file in filesReplace:
if not os.path.isfile(file):
continue
with open(file, 'r', encoding='utf-8') as f:
content = f.read()
startFind = "spellcheckGetLanguages"
startReplace = "function(){"
endFind = "};"
startIndex = content.find(startFind)
if startIndex == -1:
continue
startReplaceIndex = content.find(startReplace, startIndex)
if startReplaceIndex == -1:
continue
endIndex = content.find(endFind, startIndex)
if endIndex == -1:
continue
if content[endIndex + 2:endIndex + 4] == "};":
endIndex += 2
content = content[:startReplaceIndex + len(startReplace)] + "return " + all_dictionaties_content + endFind + content[endIndex + len(endFind):]
with open(file, 'w', encoding='utf-8') as f:
f.write(content)
testDevelopVersion = sdkjsDirectory + "/.git"
if not os.path.isdir(testDevelopVersion):
print("Update x2t cache...")
x2tDir = curDirectory + "/../FileConverter/bin"
cur_dir = os.getcwd()
os.chdir(x2tDir)
if ("windows" == platform.system().lower()):
subprocess.call(["x2t.exe", "-create-js-cache"], stderr=subprocess.STDOUT, shell=True)
else:
subprocess.call("./x2t -create-js-cache", stderr=subprocess.STDOUT, shell=True)
os.chdir(cur_dir)