From ca670ad7344267c6f8cafb1876b46864da17ceac Mon Sep 17 00:00:00 2001 From: io42630 Date: Sun, 26 Jun 2022 13:49:39 +0200 Subject: [PATCH] + add detect --- src/bot-hooks.ts | 16 ++++++++++++++-- src/google-translate-adapter.ts | 5 +++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/bot-hooks.ts b/src/bot-hooks.ts index e109c3e..c493805 100644 --- a/src/bot-hooks.ts +++ b/src/bot-hooks.ts @@ -1,7 +1,9 @@ import TelegramBot, { InlineQuery } from 'node-telegram-bot-api'; import { Options } from 'request'; -const translate = require('./translate-adapter').translate; +const translateDeepL = require('./deepl-translate-adapter').translate; +const translateGoogle = require('./google-translate-adapter').translate; +const detectGoogle = require('./google-translate-adapter').detect; const keys = require('../keys.json'); const request_options: Options = {url: ''}; @@ -19,7 +21,10 @@ bot.on('inline_query', async (query: InlineQuery) => { const customQuery = queryText.endsWith(eol + 'de') || queryText.endsWith(eol + 'en') || + queryText.endsWith(eol + 'ua') || + queryText.endsWith(eol + 'uk') || queryText.endsWith(eol + 'ru'); + let lang: string; let transText: string; if (basicQuery) { @@ -32,7 +37,14 @@ bot.on('inline_query', async (query: InlineQuery) => { } else { return; } - const translated = await translate(transText, lang); + let translated = ''; + const srcLang = detectGoogle(transText); + if(srcLang === 'ua' || lang === 'ua') { + translated = await translateGoogle(transText, lang); + } else { + translated = await translateDeepL(transText, lang); + } + const results: Array = [ { type: 'article', diff --git a/src/google-translate-adapter.ts b/src/google-translate-adapter.ts index e71bb7a..6cd9874 100644 --- a/src/google-translate-adapter.ts +++ b/src/google-translate-adapter.ts @@ -8,3 +8,8 @@ export async function translate(text: string, lang: string) { const [translation] = await translator.translate(text, lang); return new Promise(() => translation); } + +export async function detect(text: string) { + const [result] = await translator.detect(text); + return new Promise(() => result.language); +}