Compare commits
1 Commits
backup-202
...
backup-202
| Author | SHA1 | Date | |
|---|---|---|---|
| bc87681085 |
11
bot/bot.ts
11
bot/bot.ts
@@ -1460,10 +1460,19 @@ bot.on("message:text", async (ctx) => {
|
||||
// Stream the reply word-by-word so the message animates into the chat like
|
||||
// an LLM typing. @grammyjs/stream uses sendMessageDraft (Bot API 9.5) to push
|
||||
// each delta as a native, animated draft and finalizes with sendMessage.
|
||||
// sendMessageDraft is only supported in private chats — group / supergroup
|
||||
// / channel peers return TEXTDRAFT_PEER_INVALID. Use plain reply there.
|
||||
let finalMessage: { message_id: number } | undefined;
|
||||
if (chatType === "private") {
|
||||
const messages = await ctx.replyWithStream(streamWords(out), {}, {
|
||||
reply_parameters: { message_id: ctx.message.message_id },
|
||||
});
|
||||
const finalMessage = messages[messages.length - 1];
|
||||
finalMessage = messages[messages.length - 1];
|
||||
} else {
|
||||
finalMessage = await ctx.reply(out, {
|
||||
reply_parameters: { message_id: ctx.message.message_id },
|
||||
});
|
||||
}
|
||||
if (finalMessage) {
|
||||
Q.insMsg.run(chatId, finalMessage.message_id, null, "out", "text", out, ctx.message.message_id);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user