+ 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
* enter API-keys into `keys-template.json`, then rename to `keys.json`.
* see `Dockerfile`
* also, suggested to use separate bot for testing.
### Special Thanks

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

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

@ -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<TelegramBot.InlineQueryResult> = [
{
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