mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Prevent double saving of translated chats. Exception-safe event emitter
This commit is contained in:
@ -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();
|
||||||
|
|
||||||
|
@ -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');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -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();
|
||||||
|
Reference in New Issue
Block a user