Skip to content

Commit

Permalink
Refactor message handling: improve message clearing logic, adjust mes…
Browse files Browse the repository at this point in the history
…sage retrieval order, and update parameter naming for clarity
  • Loading branch information
qertis committed Feb 28, 2025
1 parent 7a55372 commit 6e89139
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/actions/public/voice.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ module.exports = async (bot, userMessage, dialog) => {
inline_keyboard: inlineKeyboard,
},
});
dialog.push(userMessage);
dialog.push(assistMessage);
await bot.sendMessage(userMessage.chat.id, 'Все верно?', {
reply_to_message_id: assistMessage.message_id,
disable_notification: true,
Expand Down
2 changes: 1 addition & 1 deletion src/actions/system/generate-calendar.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ module.exports = async (bot, message, dialog) => {
if (!event) {
throw new Error('Событие не найдено');
}
dialog.clear();
await bot.setMessageReaction(message.chat.id, message.reply_to_message.message_id, {
reaction: JSON.stringify([
{
Expand Down Expand Up @@ -74,7 +75,6 @@ module.exports = async (bot, message, dialog) => {
ics: icalendar.ics,
user: user,
});
dialog.clear();
let webAppUrl = `${SERVER.APP_URL}/?lang=${message.reply_to_message?.from?.language_code}`;
// eslint-disable-next-line unicorn/consistent-destructuring
if (SERVER.IS_DEV) {
Expand Down
14 changes: 12 additions & 2 deletions src/libs/dialog.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ class Dialog {
}
this.user = user;
}
/**
* Удаление сообщений из базы данных
*/
clear() {
clearMessageById(this.user.id);
}
Expand Down Expand Up @@ -45,7 +48,10 @@ class Dialog {
'items': [],
};
const messages = getMessages(this.user.id);
for (let { message } of messages) {

// отправляем только последнее сообщение от ассистента и следующие за ним сообщения от пользователя
// eslint-disable-next-line prefer-const
for (let { message, role } of messages.reverse()) {
message = JSON.parse(message);
const activity = activitystreams(message);
activity.type = 'Activity';
Expand Down Expand Up @@ -91,7 +97,11 @@ class Dialog {
throw new Error('Unknown type message');
}
activities.totalItems++;
activities.items.push(activity);
activities.items.unshift(activity);

if (role === 'assistant') {
break;
}
}

return activities;
Expand Down
8 changes: 4 additions & 4 deletions src/models/messages.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,12 @@ module.exports.getMessages = (userId) => {
};
/**
* @description Очистка сообщений из базы данных по идентификатору сообщения
* @param {number} messageId - идентификатор сообщения
* @param {number} chatId - идентификатор пользователя
*/
module.exports.clearMessageById = (messageId) => {
module.exports.clearMessageById = (chatId) => {
const clear = messageDB.prepare(`
DELETE FROM messages
WHERE message_id == ?
WHERE chat_id == ?
`);
clear.run(messageId);
clear.run(chatId);
};

0 comments on commit 6e89139

Please sign in to comment.