Clean-up try/catch blocks in translate.js

09dd9762f78d4758ed89a5dfa525d2f4471d8fc3

Cohee <18619528+Cohee1207@users.noreply.github.com>

1 files changed, +98 -108Ignore whitespace
src/endpoints/translate.js+98 -108
@@ -41,36 +41,36 @@ function decodeBuffer(buffer) {
4141}
4242
4343router.post('/libre', jsonParser, async (request, response) => {
44- const key = readSecret(request.user.directories, SECRET_KEYS.LIBRE);
44+ try {
4545 const urlkey = readSecret(request.user.directories, SECRET_KEYS.LIBRE_URLLIBRE);
46+ const url = readSecret(request.user.directories, SECRET_KEYS.LIBRE_URL);
4647
4748 if (!url) {
4849 console.log('LibreTranslate URL is not configured.');
4950 return response.sendStatus(400);
5051 }
5152
5253 if (request.body.lang === 'zh-CN') {
5354 request.body.lang = 'zh';
5455 }
5556
5657 if (request.body.lang === 'zh-TW') {
5758 request.body.lang = 'zt';
5859 }
5960
6061 if (request.body.lang === 'pt-BR' || request.body.lang === 'pt-PT') {
6162 request.body.lang = 'pt';
6263 }
6364
6465 const text = request.body.text;
6566 const lang = request.body.lang;
6667
6768 if (!text || !lang) {
6869 return response.sendStatus(400);
6970 }
7071
7172 console.log('Input text: ' + text);
7273
73- try {
7474 const result = await fetch(url, {
7575 method: 'POST',
7676 body: JSON.stringify({
@@ -198,11 +198,6 @@ router.post('/lingva', jsonParser, async (request, response) => {
198198 console.log('Lingva URL is using default value.', LINGVA_DEFAULT);
199199 }
200200
201- if (!baseUrl) {
202- console.log('Lingva URL is not configured.');
203- return response.sendStatus(400);
204- }
205-
206201 if (request.body.lang === 'zh-CN' || request.body.lang === 'zh-TW') {
207202 request.body.lang = 'zh';
208203 }
@@ -220,23 +215,18 @@ router.post('/lingva', jsonParser, async (request, response) => {
220215
221216 console.log('Input text: ' + text);
222217
223- try {
218+ const url = urlJoin(baseUrl, 'auto', lang, encodeURIComponent(text));
224- const url = urlJoin(baseUrl, 'auto', lang, encodeURIComponent(text));
219+ const result = await fetch(url);
225- const result = await fetch(url);
220+
226-
221+ if (!result.ok) {
227- if (!result.ok) {
222+ const error = await result.text();
228- const error = await result.text();
223+ console.log('Lingva error: ', result.statusText, error);
229- console.log('Lingva error: ', result.statusText, error);
230- }
231-
232- /** @type {any} */
233- const data = await result.json();
234- console.log('Translated text: ' + data.translation);
235- return response.send(data.translation);
236- } catch (error) {
237- console.log('Translation error:', error);
238- return response.sendStatus(500);
239224 }
225+
226+ /** @type {any} */
227+ const data = await result.json();
228+ console.log('Translated text: ' + data.translation);
229+ return response.send(data.translation);
240230 } catch (error) {
241231 console.log('Translation error', error);
242232 return response.sendStatus(500);
@@ -244,36 +234,36 @@ router.post('/lingva', jsonParser, async (request, response) => {
244234});
245235
246236router.post('/deepl', jsonParser, async (request, response) => {
247- const key = readSecret(request.user.directories, SECRET_KEYS.DEEPL);
237+ try {
238+ const key = readSecret(request.user.directories, SECRET_KEYS.DEEPL);
248239
249240 if (!key) {
250241 console.log('DeepL key is not configured.');
251242 return response.sendStatus(400);
252243 }
253244
254245 if (request.body.lang === 'zh-CN' || request.body.lang === 'zh-TW') {
255246 request.body.lang = 'ZH';
256247 }
257248
258249 const text = request.body.text;
259250 const lang = request.body.lang;
260251 const formality = getConfigValue('deepl.formality', 'default');
261252
262253 if (!text || !lang) {
263254 return response.sendStatus(400);
264255 }
265256
266257 console.log('Input text: ' + text);
267258
268259 const params = new URLSearchParams();
269260 params.append('text', text);
270261 params.append('target_lang', lang);
271262
272263 if (['de', 'fr', 'it', 'es', 'nl', 'ja', 'ru', 'pt-BR', 'pt-PT'].includes(lang)) {
273264 params.append('formality', formality);
274265 }
275266
276- try {
277267 const result = await fetch('https://api-free.deepl.com/v2/translate', {
278268 method: 'POST',
279269 body: params,
@@ -302,38 +292,38 @@ router.post('/deepl', jsonParser, async (request, response) => {
302292});
303293
304294router.post('/onering', jsonParser, async (request, response) => {
305- const secretUrl = readSecret(request.user.directories, SECRET_KEYS.ONERING_URL);
295+ try {
306- const url = secretUrl || ONERING_URL_DEFAULT;
296+ const secretUrl = readSecret(request.user.directories, SECRET_KEYS.ONERING_URL);
297+ const url = secretUrl || ONERING_URL_DEFAULT;
307298
308299 if (!url) {
309300 console.log('OneRing URL is not configured.');
310301 return response.sendStatus(400);
311302 }
312303
313304 if (!secretUrl && url === ONERING_URL_DEFAULT) {
314305 console.log('OneRing URL is using default value.', ONERING_URL_DEFAULT);
315306 }
316307
317308 if (request.body.lang === 'pt-BR' || request.body.lang === 'pt-PT') {
318309 request.body.lang = 'pt';
319310 }
320311
321312 const text = request.body.text;
322313 const from_lang = request.body.from_lang;
323314 const to_lang = request.body.to_lang;
324315
325316 if (!text || !from_lang || !to_lang) {
326317 return response.sendStatus(400);
327318 }
328319
329320 const params = new URLSearchParams();
330321 params.append('text', text);
331322 params.append('from_lang', from_lang);
332323 params.append('to_lang', to_lang);
333324
334325 console.log('Input text: ' + text);
335326
336- try {
337327 const fetchUrl = new URL(url);
338328 fetchUrl.search = params.toString();
339329
@@ -359,31 +349,31 @@ router.post('/onering', jsonParser, async (request, response) => {
359349});
360350
361351router.post('/deeplx', jsonParser, async (request, response) => {
362- const secretUrl = readSecret(request.user.directories, SECRET_KEYS.DEEPLX_URL);
352+ try {
363- const url = secretUrl || DEEPLX_URL_DEFAULT;
353+ const secretUrl = readSecret(request.user.directories, SECRET_KEYS.DEEPLX_URL);
354+ const url = secretUrl || DEEPLX_URL_DEFAULT;
364355
365356 if (!url) {
366357 console.log('DeepLX URL is not configured.');
367358 return response.sendStatus(400);
368359 }
369360
370361 if (!secretUrl && url === DEEPLX_URL_DEFAULT) {
371362 console.log('DeepLX URL is using default value.', DEEPLX_URL_DEFAULT);
372363 }
373364
374365 const text = request.body.text;
375366 let lang = request.body.lang;
376367 if (request.body.lang === 'zh-CN' || request.body.lang === 'zh-TW') {
377368 lang = 'ZH';
378369 }
379370
380371 if (!text || !lang) {
381372 return response.sendStatus(400);
382373 }
383374
384375 console.log('Input text: ' + text);
385376
386- try {
387377 const result = await fetch(url, {
388378 method: 'POST',
389379 body: JSON.stringify({