Initial commit

master
Illia Chub 2021-11-04 15:13:41 +02:00
commit f1118ffe5e
9 changed files with 106 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
__pycache__/

3
constants.py Normal file
View File

@ -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 = ""

13
intro.md Normal file
View File

@ -0,0 +1,13 @@
# 👋 Введение
[SelfPrivacy](https://selfprivacy.org) — мобильное [приложение](https://f-droid.org/en/packages/pro.kherel.selfprivacy/) разворачивает сервер с готовыми к использованию сервисами:
- Электронная почта
- Парольный менеджер
- Мессенджер
- VPN
- Файловое хранилище
- Конференции
- ... и многие другие [сервисы](services.md)
## ⚠️ Beta
Текущий релиз пока не готов к повседневному использованию неквалифицированным пользователем.

13
intro_en.md Normal file
View File

@ -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.

71
main.py Normal file
View File

@ -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()

3
requirements.txt Normal file
View File

@ -0,0 +1,3 @@
requests
requests_toolbelt
argparse

0
setup.py Normal file
View File

1
source.txt Normal file
View File

@ -0,0 +1 @@
Привет, мир!

1
translation.txt Normal file
View File

@ -0,0 +1 @@
Hello, world!