+ add google translate

+ return promise of string / not object
master
io42630 3 years ago
parent 655a17c5ed
commit ea656d6aaa

@ -37,6 +37,7 @@
### How To Run ### How To Run
* enter API-keys into `keys-template.json`, then rename to `keys.json`. * enter API-keys into `keys-template.json`, then rename to `keys.json`.
* see `Dockerfile` * see `Dockerfile`
* also, suggested to use separate bot for testing.
### Special Thanks ### Special Thanks

@ -1,4 +1,6 @@
{ {
"DEEPL": "", "DEEPL": "",
"TRANSLATE_REEBOT": "" "GOOGLE": "",
"TRANSLATE_REEBOT": "",
"TEST_TRANSLATE_REEBOT": ""
} }

@ -8,6 +8,7 @@
"serve": "node dist/bot-adapter.js" "serve": "node dist/bot-adapter.js"
}, },
"dependencies": { "dependencies": {
"@google-cloud/translate": "^6.3.1",
"@types/node": "^18.0.0", "@types/node": "^18.0.0",
"@types/node-telegram-bot-api": "^0.57.0", "@types/node-telegram-bot-api": "^0.57.0",
"deepl-node": "^1.3.1", "deepl-node": "^1.3.1",

@ -32,7 +32,7 @@ bot.on('inline_query', async (query: InlineQuery) => {
} else { } else {
return; return;
} }
const translated = (await translate(transText, lang)).text; const translated = await translate(transText, lang);
const results: Array<TelegramBot.InlineQueryResult> = [ const results: Array<TelegramBot.InlineQueryResult> = [
{ {
type: 'article', type: 'article',

@ -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<string> {
let textResult = await translator.translateText(text, null, lang);
return new Promise<string>(() => textResult.text);
}

@ -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<string>(() => translation);
}

@ -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<TextResult> =
(async (textToTranslate: any, lang: any) => {
return await translator.translateText(textToTranslate, null, lang);
});
Loading…
Cancel
Save