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(); hideStopButton();
is_send_press = false; is_send_press = false;
if (!data.error) { if (!data.error) {
@ -2401,7 +2401,7 @@ async function Generate(type, { automatic_trigger, force_name2, resolve, reject,
else { else {
({ type, getMessage } = saveReply('appendFinal', getMessage, this_mes_is_name, title)); ({ 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(); activateSendButtons();

View File

@ -56,7 +56,13 @@ EventEmitter.prototype.emit = async function (event) {
length = listeners.length; length = listeners.length;
for (i = 0; i < length; i++) { for (i = 0; i < length; i++) {
await listeners[i].apply(this, args); 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; message.extra.display_text = translation;
$(`#chat .mes[mesid="${messageId}"] .mes_text`).html(messageFormatting(translation, message.name, message.is_system, message.is_user)); $(`#chat .mes[mesid="${messageId}"] .mes_text`).html(messageFormatting(translation, message.name, message.is_system, message.is_user));
context.saveChat();
} }
async function translateProviderGoogle(text, lang) { async function translateProviderGoogle(text, lang) {
@ -264,8 +262,10 @@ jQuery(() => {
saveSettingsDebounced(); saveSettingsDebounced();
}); });
$(document).on('click', '.mes_translate', function () { $(document).on('click', '.mes_translate', function () {
const context = getContext();
const messageId = $(this).closest('.mes').attr('mesid'); const messageId = $(this).closest('.mes').attr('mesid');
translateIncomingMessage(messageId); translateIncomingMessage(messageId);
context.saveChat();
}); });
loadSettings(); loadSettings();