easyoref 2.0.3 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"inline.d.ts","sourceRoot":"","sources":["../../src/handlers/inline.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAGlC,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAmFpD"}
1
+ {"version":3,"file":"inline.d.ts","sourceRoot":"","sources":["../../src/handlers/inline.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAGlC,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA4FpD"}
@@ -12,13 +12,18 @@ export function registerInlineHandler(bot) {
12
12
  if (session) {
13
13
  const phase = session.phase;
14
14
  const areas = session.alertAreas.slice(0, 3).join(", ");
15
+ const time = new Date(session.latestAlertTs).toLocaleTimeString("he-IL", {
16
+ hour: "2-digit",
17
+ minute: "2-digit",
18
+ timeZone: "Asia/Jerusalem",
19
+ });
15
20
  results.push({
16
21
  type: "article",
17
22
  id: "current_status",
18
- title: `\u{1F6A8} Active Alert (${phase})`,
23
+ title: `\u{1F6A8} Active Alert (${phase}) — ${time}`,
19
24
  description: areas,
20
25
  input_message_content: {
21
- message_text: `<b>\u{1F6A8} Active Alert</b>\nPhase: ${phase}\nAreas: ${areas}`,
26
+ message_text: `<b>\u{1F6A8} Active Alert</b>\nPhase: ${phase}\nTime: ${time}\nAreas: ${areas}`,
22
27
  parse_mode: "HTML",
23
28
  },
24
29
  });
@@ -37,7 +42,7 @@ export function registerInlineHandler(bot) {
37
42
  }
38
43
  }
39
44
  else {
40
- // Q&A — run the QA graph
45
+ // Q&A — run the same QA graph (no status callback for inline)
41
46
  const chatId = String(ctx.from.id);
42
47
  const user = await getUser(chatId);
43
48
  if (user) {
@@ -51,6 +56,7 @@ export function registerInlineHandler(bot) {
51
56
  input_message_content: {
52
57
  message_text: answer,
53
58
  parse_mode: "HTML",
59
+ link_preview_options: { is_disabled: true },
54
60
  },
55
61
  });
56
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inline.js","sourceRoot":"","sources":["../../src/handlers/inline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inline.js","sourceRoot":"","sources":["../../src/handlers/inline.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"qa.d.ts","sourceRoot":"","sources":["../../src/handlers/qa.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAElC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA6ChD"}
1
+ {"version":3,"file":"qa.d.ts","sourceRoot":"","sources":["../../src/handlers/qa.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAElC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAoGhD"}
@@ -3,9 +3,25 @@ import { config, getBotStrings, getRedis, getUser, } from "@easyoref/shared";
3
3
  import * as logger from "@easyoref/shared/logger";
4
4
  export function registerQaHandler(bot) {
5
5
  bot.on("message:text", async (ctx) => {
6
- if (ctx.chat.type !== "private")
6
+ // Q&A works in private chats AND group chats (when mentioned or replied to)
7
+ const isPrivate = ctx.chat.type === "private";
8
+ const isGroup = ctx.chat.type === "group" || ctx.chat.type === "supergroup";
9
+ // In groups: only respond to direct replies to the bot or mentions
10
+ if (isGroup) {
11
+ const botInfo = ctx.me;
12
+ const text = ctx.message.text ?? "";
13
+ const isReplyToBot = ctx.message.reply_to_message?.from?.id === botInfo.id;
14
+ const isMentioned = text.includes(`@${botInfo.username}`) ||
15
+ (ctx.message.entities ?? []).some((e) => e.type === "mention" &&
16
+ text.slice(e.offset, e.offset + e.length).toLowerCase() ===
17
+ `@${botInfo.username?.toLowerCase()}`);
18
+ if (!isReplyToBot && !isMentioned)
19
+ return;
20
+ }
21
+ if (!isPrivate && !isGroup)
7
22
  return;
8
23
  const chatId = String(ctx.chat.id);
24
+ const userId = String(ctx.from?.id ?? ctx.chat.id);
9
25
  // Skip /commands — let grammY command handlers handle them
10
26
  if (ctx.message.text.startsWith("/"))
11
27
  return;
@@ -16,7 +32,7 @@ export function registerQaHandler(bot) {
16
32
  });
17
33
  if (btnTexts.includes(ctx.message.text))
18
34
  return;
19
- const user = await getUser(chatId);
35
+ const user = await getUser(isPrivate ? chatId : userId);
20
36
  const lang = (user?.language ?? "ru");
21
37
  const bs = getBotStrings(lang);
22
38
  if (!user) {
@@ -25,7 +41,7 @@ export function registerQaHandler(bot) {
25
41
  }
26
42
  // Rate limit: qaRateLimitPerMin per user (Redis INCR + EXPIRE)
27
43
  const redis = getRedis();
28
- const rateLimitKey = `qa:rate:${chatId}`;
44
+ const rateLimitKey = `qa:rate:${userId}`;
29
45
  const count = await redis.incr(rateLimitKey);
30
46
  if (count === 1)
31
47
  await redis.expire(rateLimitKey, 60);
@@ -33,12 +49,41 @@ export function registerQaHandler(bot) {
33
49
  await ctx.reply(bs.qaRateLimit);
34
50
  return;
35
51
  }
36
- await ctx.replyWithChatAction("typing");
52
+ // Start periodic typing indicator (every 4s, Telegram typing expires after 5s)
53
+ let typingActive = true;
54
+ const sendTyping = async () => {
55
+ while (typingActive) {
56
+ try {
57
+ await ctx.replyWithChatAction("typing");
58
+ }
59
+ catch {
60
+ // ignore typing errors
61
+ }
62
+ await new Promise((r) => setTimeout(r, 4000));
63
+ }
64
+ };
65
+ const typingPromise = sendTyping();
37
66
  try {
38
- const answer = await runQa(ctx.message.text, chatId);
39
- await ctx.reply(answer, { parse_mode: "HTML" });
67
+ // Status callback: sends intermediate "searching..." messages
68
+ const statusCallback = async (message) => {
69
+ try {
70
+ await ctx.reply(message, { parse_mode: "HTML" });
71
+ }
72
+ catch {
73
+ // ignore status message errors
74
+ }
75
+ };
76
+ const answer = await runQa(ctx.message.text, isPrivate ? chatId : userId, statusCallback);
77
+ typingActive = false;
78
+ await typingPromise;
79
+ await ctx.reply(answer, {
80
+ parse_mode: "HTML",
81
+ link_preview_options: { is_disabled: true },
82
+ });
40
83
  }
41
84
  catch (err) {
85
+ typingActive = false;
86
+ await typingPromise;
42
87
  logger.error("Q&A failed", { error: String(err), chatId });
43
88
  await ctx.reply(bs.qaError);
44
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"qa.js","sourceRoot":"","sources":["../../src/handlers/qa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EACL,MAAM,EACN,aAAa,EACb,QAAQ,EACR,OAAO,GAER,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAC;AAGlD,MAAM,UAAU,iBAAiB,CAAC,GAAQ;IACxC,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACnC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO;QAExC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEnC,2DAA2D;QAC3D,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QAE7C,gEAAgE;QAChE,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACtD,MAAM,CAAC,GAAG,aAAa,CAAC,CAAa,CAAC,CAAC;YACvC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO;QAEhD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAa,CAAC;QAClD,MAAM,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAE/B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QAED,+DAA+D;QAC/D,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,WAAW,MAAM,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,KAAK,KAAK,CAAC;YAAE,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC3C,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QAED,MAAM,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACrD,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3D,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"qa.js","sourceRoot":"","sources":["../../src/handlers/qa.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easyoref",
3
- "version": "2.0.3",
3
+ "version": "2.0.4",
4
4
  "description": "Real-time Israeli civil defense alerts → Telegram, filtered by your location",
5
5
  "type": "module",
6
6
  "bin": {