Browse Source

Initial commit

master
Illia Chub 3 months ago
commit
f1118ffe5e
  1. 1
      .gitignore
  2. 3
      constants.py
  3. 13
      intro.md
  4. 13
      intro_en.md
  5. 71
      main.py
  6. 3
      requirements.txt
  7. 0
      setup.py
  8. 1
      source.txt
  9. 1
      translation.txt

1
.gitignore

@ -0,0 +1 @@
__pycache__/

3
constants.py

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

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

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

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

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

0
setup.py

1
source.txt

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

1
translation.txt

@ -0,0 +1 @@
Hello, world!
Loading…
Cancel
Save