diff --git a/src/middlewares/bot-membership-handler.ts b/src/middlewares/bot-membership-handler.ts index 59ad4cf..a72b49d 100644 --- a/src/middlewares/bot-membership-handler.ts +++ b/src/middlewares/bot-membership-handler.ts @@ -42,6 +42,7 @@ export class BotMembershipHandler> ext redis, prefix: "TEMP_groups", logger, + ttl: 60 * 60 * 24, // 1 day, just in case }) constructor() { @@ -52,9 +53,12 @@ export class BotMembershipHandler> ext if (ctx.chat.type === "private") return next() const redisCheck = await this.TEMP_redis.has(ctx.chat.id.toString()) - if (redisCheck) { - const backendGroup = await api.tg.groups.getById.query({ telegramId: ctx.chat.id }).catch(() => null) - if (backendGroup !== null) return next() + if (redisCheck) return next() + + const backendGroup = await api.tg.groups.getById.query({ telegramId: ctx.chat.id }).catch(() => null) + if (backendGroup !== null) { + await this.TEMP_redis.write(ctx.chat.id.toString(), ctx.chat.id) + return next() } const me = await ctx.getChatMember(ctx.me.id).catch(() => ({ status: "undefined" })) diff --git a/src/middlewares/message-link.ts b/src/middlewares/message-link.ts index 1dd9421..487008d 100644 --- a/src/middlewares/message-link.ts +++ b/src/middlewares/message-link.ts @@ -23,7 +23,7 @@ export async function parseTelegramMessageLink(link: string): Promise<{ const chatId = chatHandle ? await api.tg.groups.getByTag .query({ tag: chatHandle }) - .then((r) => stripChatId(r?.telegramId) ?? null) + .then((r) => (r?.telegramId ? stripChatId(r.telegramId) : null)) .catch(() => null) : parseInt(match[1], 10) const messageId = match[4] ? parseInt(match[4], 10) : parseInt(match[3], 10)