Initial commit
commit
f1118ffe5e
|
@ -0,0 +1 @@
|
||||||
|
__pycache__/
|
|
@ -0,0 +1,3 @@
|
||||||
|
TRANSLATE_API_ENDPOINT_URL = "https://api-free.deepl.com/v2/translate"
|
||||||
|
USAGE_API_ENDPOINT_URL = "https://api-free.deepl.com/v2/usage"
|
||||||
|
API_ACCESS_KEY = ""
|
|
@ -0,0 +1,13 @@
|
||||||
|
# 👋 Введение
|
||||||
|
|
||||||
|
[SelfPrivacy](https://selfprivacy.org) — мобильное [приложение](https://f-droid.org/en/packages/pro.kherel.selfprivacy/) разворачивает сервер с готовыми к использованию сервисами:
|
||||||
|
- Электронная почта
|
||||||
|
- Парольный менеджер
|
||||||
|
- Мессенджер
|
||||||
|
- VPN
|
||||||
|
- Файловое хранилище
|
||||||
|
- Конференции
|
||||||
|
- ... и многие другие [сервисы](services.md)
|
||||||
|
|
||||||
|
## ⚠️ Beta
|
||||||
|
Текущий релиз пока не готов к повседневному использованию неквалифицированным пользователем.
|
|
@ -0,0 +1,13 @@
|
||||||
|
# 👋 Introduction
|
||||||
|
|
||||||
|
[SelfPrivacy](https://selfprivacy.org) - mobile [app](https://f-droid.org/en/packages/pro.kherel.selfprivacy/) deploys a server with ready-to-use services:
|
||||||
|
- Email
|
||||||
|
- Password manager
|
||||||
|
- Messenger
|
||||||
|
- VPN
|
||||||
|
- File storage
|
||||||
|
- Conferences
|
||||||
|
- ... and many other [services](services.md)
|
||||||
|
|
||||||
|
## ⚠️ Beta
|
||||||
|
The current release is not yet ready for everyday use by an unskilled user.
|
|
@ -0,0 +1,71 @@
|
||||||
|
import requests
|
||||||
|
from requests_toolbelt.multipart.encoder import MultipartEncoder
|
||||||
|
import json
|
||||||
|
import argparse
|
||||||
|
import os
|
||||||
|
import constants
|
||||||
|
|
||||||
|
def main():
|
||||||
|
# Impl
|
||||||
|
print("[INFO][PREFLIGHT] Initializing translator...")
|
||||||
|
|
||||||
|
argumentParser = argparse.ArgumentParser(description="Translate text using Deepl service")
|
||||||
|
|
||||||
|
argumentParser.add_argument(
|
||||||
|
"--file",
|
||||||
|
help="File, that contains text to translate",
|
||||||
|
type=str
|
||||||
|
)
|
||||||
|
|
||||||
|
argumentParser.add_argument(
|
||||||
|
"--output",
|
||||||
|
help="File, that translation will be written to(specify /dev/stdout for output into console)",
|
||||||
|
type=str
|
||||||
|
)
|
||||||
|
|
||||||
|
arguments = argumentParser.parse_args()
|
||||||
|
|
||||||
|
if not os.path.exists(arguments.file):
|
||||||
|
print("[ERROR][PREFLIGHT] File {0} not found!".format(arguments.file))
|
||||||
|
exit(1)
|
||||||
|
elif os.path.exists(arguments.file):
|
||||||
|
readOnlyFileDescriptor = open(arguments.file, "r")
|
||||||
|
|
||||||
|
fileContent = readOnlyFileDescriptor.read()
|
||||||
|
|
||||||
|
params = {
|
||||||
|
"auth_key": constants.API_ACCESS_KEY,
|
||||||
|
}
|
||||||
|
|
||||||
|
print("[INFO][PREFLIGHT] Performing subscription check...", end="")
|
||||||
|
|
||||||
|
usageMonitoringRequest = requests.get(constants.USAGE_API_ENDPOINT_URL, data=params)
|
||||||
|
|
||||||
|
responseInJSON = json.loads(str(usageMonitoringRequest.text))
|
||||||
|
availableCharacters = int(responseInJSON["character_limit"])
|
||||||
|
|
||||||
|
if len(fileContent) > availableCharacters:
|
||||||
|
print("[ERROR][PREFLIGHT] Amount of characters in the text file exceeds available!")
|
||||||
|
readOnlyFileDescriptor.close()
|
||||||
|
exit(1)
|
||||||
|
elif len(fileContent) <= availableCharacters:
|
||||||
|
print("done")
|
||||||
|
|
||||||
|
params = {
|
||||||
|
"auth_key": constants.API_ACCESS_KEY,
|
||||||
|
"text": fileContent,
|
||||||
|
"target_lang": "EN"
|
||||||
|
}
|
||||||
|
|
||||||
|
translationRequest = requests.get(constants.TRANSLATE_API_ENDPOINT_URL, data=params)
|
||||||
|
|
||||||
|
responseInJSON = json.loads(str(translationRequest.text))
|
||||||
|
translation = responseInJSON["translations"][0]["text"]
|
||||||
|
|
||||||
|
readWriteFileDescriptor = open(arguments.output, "w")
|
||||||
|
readWriteFileDescriptor.write(translation)
|
||||||
|
|
||||||
|
readOnlyFileDescriptor.close()
|
||||||
|
readWriteFileDescriptor.close()
|
||||||
|
|
||||||
|
main()
|
|
@ -0,0 +1,3 @@
|
||||||
|
requests
|
||||||
|
requests_toolbelt
|
||||||
|
argparse
|
|
@ -0,0 +1 @@
|
||||||
|
Привет, мир!
|
|
@ -0,0 +1 @@
|
||||||
|
Hello, world!
|
Reference in New Issue