dtranslatebot-container/dtranslatebot-ltd.py

58 lines
1.8 KiB
Python
Executable File

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import json
import os
import requests
import subprocess
import sys
import time
def main():
if len(sys.argv) != 2:
print("Usage: dtranslatebot-ltd [token]")
return
dtb_config = {
'token': sys.argv[1],
'translator': {
'url': 'http://127.0.0.1:5000/'
}
}
dtb_json = json.dumps(dtb_config)
with open("/usr/local/etc/dtranslatebot.json", "w") as dtb_json_file:
dtb_json_file.write(dtb_json)
os.makedirs("/root/libretranslate", mode=755, exist_ok=True)
lt_env = os.environ.copy()
lt_env["LT_HOST"] = "127.0.0.1"
lt_env["LT_PORT"] = "5000"
lt_env["LT_DISABLE_FILES_TRANSLATION"] = "1"
lt_env["LT_DISABLE_WEB_UI"] = "1"
print("[Service] Launching LibreTranslate...")
lt = subprocess.Popen(["/opt/libretranslate/bin/libretranslate"], cwd="/root/libretranslate", env=lt_env)
while True:
try:
if lt.poll():
print("[Error] LibreTranslate is not running")
return lt.returncode
r = requests.get("http://127.0.0.1:5000/languages", timeout=5)
if r.status_code == 200:
break;
return r.status_code
except requests.exceptions.ConnectionError:
time.sleep(1)
except requests.exceptions.Timeout:
pass
os.makedirs("/root/dtranslatebot", mode=755, exist_ok=True)
os.makedirs("/root/dtranslatebot/db", mode=755, exist_ok=True)
dtb_env = os.environ.copy()
dtb_env["DTRANSLATEBOT_STORAGE"] = "/root/dtranslatebot/db"
print("[Service] Launching dtranslatebot...")
dtb = subprocess.run(["/usr/local/bin/dtranslatebot", "/usr/local/etc/dtranslatebot.json"], cwd="/root/dtranslatebot", env=dtb_env)
return dtb.returncode
if __name__ == "__main__":
sys.exit(main())