Skip to content

Commit 4d632fc

Browse files
committed
fix: i18n of error message
1 parent 9ac0464 commit 4d632fc

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

source/index.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ async function startFetchProcess(restartTime: number): Promise<void> {
280280
const { feed, err } = message;
281281
send(
282282
bot,
283-
`${feed.feed_title}: <a href="${feed.url}">${feed.url}</a> ${i18n[lang]['ERROR_MANY_TIME']} ${err.message}`,
283+
`${feed.feed_title}: <a href="${feed.url}">${feed.url}</a> <%=i18n['ERROR_MANY_TIME']%> ${err.message}`,
284284
feed
285285
);
286286
}
@@ -290,11 +290,11 @@ async function startFetchProcess(restartTime: number): Promise<void> {
290290
builder.push(
291291
`${feed.feed_title}: <a href="${encodeUrl(
292292
feed.url
293-
)}"></a> ${i18n[lang]['ERROR_MANY_TIME']}`
293+
)}"></a> <%=i18n['ERROR_MANY_TIME']%>`
294294
); // feed is from database which not urlencoded
295-
builder.push(`<b>${i18n[lang]['FOUND_FEEDS']}</b>:`);
295+
builder.push(`<b><%=i18n['FOUND_FEEDS']%></b>:`);
296296
builder.push(...new_feed);
297-
builder.push(`${i18n[lang]['FEED_CHANGE_TO']} ${new_feed[0]}`);
297+
builder.push(`<%=i18n['FEED_CHANGE_TO']%> ${new_feed[0]}`);
298298
send(bot, builder.join('\n'), feed);
299299
}
300300
}
@@ -316,3 +316,4 @@ logger.info(`Database is located in ${db_path}`);
316316
logger.info(`Using Default language is ${lang}`);
317317
logger.info(`send the latest ${item_num} items for each feed`);
318318
logger.info('NodeRSSBot is ready');
319+
process.on('uncaughtException', logger.error);

source/utils/send.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ import { config } from '../config';
88
import Telegraf, { Context } from 'telegraf';
99
import { Feed, FeedItem } from '../types/feed';
1010
import { getUserById, migrateUser } from '../proxies/users';
11-
import { isNone } from '../types/option';
11+
import { isNone, isSome } from '../types/option';
12+
import * as ejs from 'ejs';
13+
import i18n from '../i18n';
1214

1315
/**
1416
* handle send error log or delete user or migrate user
@@ -47,9 +49,16 @@ const send = async (
4749
): Promise<void> => {
4850
const subscribers = await getSubscribersByFeedId(feed.feed_id);
4951
if (typeof toSend === 'string') {
52+
const tpl = toSend;
5053
subscribers.map(async (subscribe) => {
5154
const userId = subscribe.user_id;
5255
try {
56+
const user = await getUserById(userId);
57+
let lang = config.lang;
58+
if (isSome(user)) {
59+
lang = user.value.lang;
60+
}
61+
toSend = ejs.render(tpl, { i18n: i18n[lang] });
5362
await bot.telegram.sendMessage(userId, toSend, {
5463
parse_mode: 'HTML',
5564
disable_web_page_preview: true
@@ -59,10 +68,11 @@ const send = async (
5968
}
6069
});
6170
} else {
71+
const feedItems = toSend;
6272
subscribers.map(async (subscribe) => {
6373
const userId = subscribe.user_id;
6474
let text = `<b>${sanitize(feed.feed_title)}</b>`;
65-
toSend.forEach(function (item) {
75+
feedItems.forEach(function (item) {
6676
text += `\n<a href="${item.link.trim()}">${sanitize(
6777
item.title
6878
)}</a>`;

0 commit comments

Comments
 (0)