+ fix async

master
io42630 3 years ago
parent ca670ad734
commit aa765d45f0

@ -4,8 +4,7 @@
"description": "", "description": "",
"scripts": { "scripts": {
"build": "tsc", "build": "tsc",
"start": "npm run serve", "start": "node dist/bot-hooks.js"
"serve": "node dist/bot-adapter.js"
}, },
"dependencies": { "dependencies": {
"@google-cloud/translate": "^6.3.1", "@google-cloud/translate": "^6.3.1",

@ -11,7 +11,7 @@ const options: TelegramBot.ConstructorOptions = {
polling: true, polling: true,
request: request_options request: request_options
}; };
const bot = new TelegramBot(keys.TRANSLATE_REEBOT, options); const bot = new TelegramBot(keys.TEST_TRANSLATE_REEBOT, options);
const eol = ',,'; const eol = ',,';
bot.on('inline_query', async (query: InlineQuery) => { bot.on('inline_query', async (query: InlineQuery) => {
@ -24,31 +24,33 @@ bot.on('inline_query', async (query: InlineQuery) => {
queryText.endsWith(eol + 'ua') || queryText.endsWith(eol + 'ua') ||
queryText.endsWith(eol + 'uk') || queryText.endsWith(eol + 'uk') ||
queryText.endsWith(eol + 'ru'); queryText.endsWith(eol + 'ru');
let lang: string; let lang: string;
let transText: string; let text: string;
if (basicQuery) { if (basicQuery) {
lang = 'de'; lang = 'de';
transText = queryText.slice(0, length - 2); text = queryText.slice(0, length - 2);
} else if (customQuery) { } else if (customQuery) {
lang = queryText.slice(length - 2, length); lang = queryText.slice(length - 2, length);
lang = lang === 'en' ? 'en-US' : lang; lang = lang === 'en' ? 'en-US' : lang;
transText = queryText.slice(0, length - 4); lang = lang === 'ua' || lang === 'ru' ? 'uk' : lang;
text = queryText.slice(0, length - 4);
} else { } else {
return; return;
} }
let translated = ''; let translated: string;
const srcLang = detectGoogle(transText); detectGoogle(text).then((reslt: string) => console.log(reslt));
if(srcLang === 'ua' || lang === 'ua') { const srcLang: string = 'en';
translated = await translateGoogle(transText, lang);
if (srcLang === 'uk' || lang === 'uk') {
translated = await translateGoogle(text, lang);
} else { } else {
translated = await translateDeepL(transText, lang); translated = await translateDeepL(text, lang);
} }
const results: Array<TelegramBot.InlineQueryResult> = [ const results: Array<TelegramBot.InlineQueryResult> = [
{ {
type: 'article', type: 'article',
id: 'hello', id: 'helloxx',
title: translated, title: translated,
input_message_content: { input_message_content: {
message_text: translated message_text: translated

@ -3,6 +3,6 @@ import { Translator, TargetLanguageCode } from 'deepl-node';
const translator = new Translator(require('../keys.json').DEEPL); const translator = new Translator(require('../keys.json').DEEPL);
export async function translate(text: string, lang: TargetLanguageCode): Promise<string> { export async function translate(text: string, lang: TargetLanguageCode): Promise<string> {
let textResult = await translator.translateText(text, null, lang); return translator.translateText(text, null, lang)
return new Promise<string>(() => textResult.text); .then((textResult => textResult.text));
} }

@ -4,12 +4,12 @@ const projectId = 'translate-reebot';
const translator = new Translate({projectId}); const translator = new Translate({projectId});
translator.key = require('../keys.json').GOOGLE; translator.key = require('../keys.json').GOOGLE;
export async function translate(text: string, lang: string) { export async function translate(text: string, lang: string): Promise<string> {
const [translation] = await translator.translate(text, lang); return translator.translate(text, lang)
return new Promise<string>(() => translation); .then(([result] : any) => result);
} }
export async function detect(text: string) { export async function detect(text: string): Promise<string> {
const [result] = await translator.detect(text); return translator.detect(text)
return new Promise<string>(() => result.language); .then(([result] : any) => result.language);
} }

Loading…
Cancel
Save