Prevent double saving of translated chats. Exception-safe event emitter

This commit is contained in:
SillyLossy
2023-05-28 19:09:10 +03:00
parent 88c92c76ae
commit 29f21f6b6a
3 changed files with 11 additions and 5 deletions

View File

@ -2335,7 +2335,7 @@ async function Generate(type, { automatic_trigger, force_name2, resolve, reject,
}
}
function onSuccess(data) {
async function onSuccess(data) {
hideStopButton();
is_send_press = false;
if (!data.error) {
@ -2401,7 +2401,7 @@ async function Generate(type, { automatic_trigger, force_name2, resolve, reject,
else {
({ type, getMessage } = saveReply('appendFinal', getMessage, this_mes_is_name, title));
}
eventSource.emit(event_types.MESSAGE_RECEIVED, (chat.length - 1));
await eventSource.emit(event_types.MESSAGE_RECEIVED, (chat.length - 1));
}
activateSendButtons();

View File

@ -56,8 +56,14 @@ EventEmitter.prototype.emit = async function (event) {
length = listeners.length;
for (i = 0; i < length; i++) {
try {
await listeners[i].apply(this, args);
}
catch (err) {
console.error(err);
console.trace('Error in event listener');
}
}
}
};

View File

@ -157,8 +157,6 @@ async function translateIncomingMessage(messageId) {
message.extra.display_text = translation;
$(`#chat .mes[mesid="${messageId}"] .mes_text`).html(messageFormatting(translation, message.name, message.is_system, message.is_user));
context.saveChat();
}
async function translateProviderGoogle(text, lang) {
@ -264,8 +262,10 @@ jQuery(() => {
saveSettingsDebounced();
});
$(document).on('click', '.mes_translate', function () {
const context = getContext();
const messageId = $(this).closest('.mes').attr('mesid');
translateIncomingMessage(messageId);
context.saveChat();
});
loadSettings();