From ea656d6aaa8579d3e2aa8ba9aa748ca56055a338 Mon Sep 17 00:00:00 2001 From: io42630 Date: Sun, 26 Jun 2022 13:42:02 +0200 Subject: [PATCH] + add google translate + return promise of string / not object --- README.md | 1 + keys-template.json | 4 +++- package.json | 1 + src/{bot-adapter.ts => bot-hooks.ts} | 2 +- src/deepl-translate-adapter.ts | 8 ++++++++ src/google-translate-adapter.ts | 10 ++++++++++ src/translate-adapter.ts | 9 --------- 7 files changed, 24 insertions(+), 11 deletions(-) rename src/{bot-adapter.ts => bot-hooks.ts} (95%) create mode 100644 src/deepl-translate-adapter.ts create mode 100644 src/google-translate-adapter.ts delete mode 100644 src/translate-adapter.ts diff --git a/README.md b/README.md index 057f4c7..86d7bdc 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ ### How To Run * enter API-keys into `keys-template.json`, then rename to `keys.json`. * see `Dockerfile` +* also, suggested to use separate bot for testing. ### Special Thanks diff --git a/keys-template.json b/keys-template.json index e265b72..83aec2a 100644 --- a/keys-template.json +++ b/keys-template.json @@ -1,4 +1,6 @@ { "DEEPL": "", - "TRANSLATE_REEBOT": "" + "GOOGLE": "", + "TRANSLATE_REEBOT": "", + "TEST_TRANSLATE_REEBOT": "" } diff --git a/package.json b/package.json index cf7d26c..667f103 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "serve": "node dist/bot-adapter.js" }, "dependencies": { + "@google-cloud/translate": "^6.3.1", "@types/node": "^18.0.0", "@types/node-telegram-bot-api": "^0.57.0", "deepl-node": "^1.3.1", diff --git a/src/bot-adapter.ts b/src/bot-hooks.ts similarity index 95% rename from src/bot-adapter.ts rename to src/bot-hooks.ts index 05bb7c2..e109c3e 100644 --- a/src/bot-adapter.ts +++ b/src/bot-hooks.ts @@ -32,7 +32,7 @@ bot.on('inline_query', async (query: InlineQuery) => { } else { return; } - const translated = (await translate(transText, lang)).text; + const translated = await translate(transText, lang); const results: Array = [ { type: 'article', diff --git a/src/deepl-translate-adapter.ts b/src/deepl-translate-adapter.ts new file mode 100644 index 0000000..2f5f8ea --- /dev/null +++ b/src/deepl-translate-adapter.ts @@ -0,0 +1,8 @@ +import { Translator, TargetLanguageCode } from 'deepl-node'; + +const translator = new Translator(require('../keys.json').DEEPL); + +export async function translate(text: string, lang: TargetLanguageCode): Promise { + let textResult = await translator.translateText(text, null, lang); + return new Promise(() => textResult.text); +} diff --git a/src/google-translate-adapter.ts b/src/google-translate-adapter.ts new file mode 100644 index 0000000..e71bb7a --- /dev/null +++ b/src/google-translate-adapter.ts @@ -0,0 +1,10 @@ +const {Translate} = require('@google-cloud/translate').v2; + +const projectId = 'translate-reebot'; +const translator = new Translate({projectId}); +translator.key = require('../keys.json').GOOGLE; + +export async function translate(text: string, lang: string) { + const [translation] = await translator.translate(text, lang); + return new Promise(() => translation); +} diff --git a/src/translate-adapter.ts b/src/translate-adapter.ts deleted file mode 100644 index 020c16d..0000000 --- a/src/translate-adapter.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { TextResult, Translator } from 'deepl-node'; - -const keys = require('../keys.json'); -const translator = new Translator(keys.DEEPL); - -export const translate: (a: String, b: String) => Promise = - (async (textToTranslate: any, lang: any) => { - return await translator.translateText(textToTranslate, null, lang); - });