From 649d1b7490e703c88a52f6e53b6ee50cde478da3 Mon Sep 17 00:00:00 2001 From: io42630 Date: Mon, 27 Jun 2022 08:06:14 +0200 Subject: [PATCH] add global try --- src/bot-hooks.ts | 65 +++++++++++++++++++++++++++++------------------- src/results.ts | 10 ++++++++ 2 files changed, 49 insertions(+), 26 deletions(-) diff --git a/src/bot-hooks.ts b/src/bot-hooks.ts index 97460e4..8e2ca1b 100644 --- a/src/bot-hooks.ts +++ b/src/bot-hooks.ts @@ -5,6 +5,7 @@ const translateDeepL = require('./deepl-translate-adapter').translate; const translateGoogle = require('./google-translate-adapter').translate; const detectGoogle = require('./google-translate-adapter').detect; const makeResult = require('./results').makeResult; +const makeError = require('./results').makeError; const keys = require('../keys.json'); const request_options: Options = {url: ''}; @@ -56,33 +57,45 @@ function makeResults(translated: string): Array { return results; } +function makeErrors(): Array { + const results: Array = []; + results.push(makeError()); + return results; +} + bot.on('inline_query', async (query: InlineQuery) => { - const queryText = query.query; - const length = queryText.length; - if (length < 3) { return; } - const basicQuery = queryText.endsWith(eol); - const customQuery = !basicQuery && ( - queryText.endsWith(eol + 'de') || - queryText.endsWith(eol + 'en') || - queryText.endsWith(eol + 'ua') || - queryText.endsWith(eol + 'uk') || - queryText.endsWith(eol + 'es') || - queryText.endsWith(eol + 'fr') || - queryText.endsWith(eol + 'it') || - queryText.endsWith(eol + 'ru') - ); - let dstLang: string; - let text: string; - if (basicQuery) { - dstLang = 'de'; - text = queryText.slice(0, length - 2); - } else if (customQuery) { - dstLang = queryText.slice(length - 2, length); - text = queryText.slice(0, length - 4); - } else { - return; + let results: Array; + try { + const queryText = query.query; + const length = queryText.length; + if (length < 3) { return; } + const basicQuery = queryText.endsWith(eol); + const customQuery = !basicQuery && ( + queryText.endsWith(eol + 'de') || + queryText.endsWith(eol + 'en') || + queryText.endsWith(eol + 'ua') || + queryText.endsWith(eol + 'uk') || + queryText.endsWith(eol + 'es') || + queryText.endsWith(eol + 'fr') || + queryText.endsWith(eol + 'it') || + queryText.endsWith(eol + 'ru') + ); + let dstLang: string; + let text: string; + if (basicQuery) { + dstLang = 'de'; + text = queryText.slice(0, length - 2); + } else if (customQuery) { + dstLang = queryText.slice(length - 2, length); + text = queryText.slice(0, length - 4); + } else { + return; + } + const translated = await translate(text, dstLang); + results = makeResults(translated); + } catch (e) { + console.log(e); + results = makeErrors(); } - const translated = await translate(text, dstLang); - const results = makeResults(translated); await bot.answerInlineQuery(query.id, results, {cache_time: 0, is_personal: true}); }); diff --git a/src/results.ts b/src/results.ts index 23413de..293c60e 100644 --- a/src/results.ts +++ b/src/results.ts @@ -11,3 +11,13 @@ export function makeResult(title: string, message: string): InlineQueryResultArt input_message_content: {message_text: message} }; } + +export function makeError(): InlineQueryResultArticle { + if (id + 1 == Number.MAX_SAFE_INTEGER) { id = 0; } + return { + type: 'article', + id: '' + ++id, + title: 'Error.', + input_message_content: {message_text: ''} + }; +}