From 03b3fc9fc1478280858a6c8d72963f0f971587ce Mon Sep 17 00:00:00 2001 From: RossAscends <124905043+RossAscends@users.noreply.github.com> Date: Fri, 21 Apr 2023 02:14:16 +0900 Subject: [PATCH] - added edit message auto saving - toggle in PowerUser settings - removed consolelog spam from RA-mods and expressions --- public/index.html | 5 ++- public/script.js | 45 ++++++++++++++++--- public/scripts/RossAscends-mods.js | 24 +--------- .../scripts/extensions/expressions/index.js | 26 +++++------ public/scripts/power-user.js | 7 +++ 5 files changed, 65 insertions(+), 42 deletions(-) diff --git a/public/index.html b/public/index.html index 75271911b..0c6bbb938 100644 --- a/public/index.html +++ b/public/index.html @@ -1277,6 +1277,9 @@ + @@ -1892,4 +1895,4 @@ - + \ No newline at end of file diff --git a/public/script.js b/public/script.js index be8782bea..f3414a364 100644 --- a/public/script.js +++ b/public/script.js @@ -202,10 +202,12 @@ let dialogueResolve = null; let chat_metadata = {}; let streamingProcessor = null; + const durationSaveEdit = 200; const saveSettingsDebounced = debounce(() => saveSettings(), durationSaveEdit); const saveCharacterDebounced = debounce(() => $("#create_button").click(), durationSaveEdit); const getStatusDebounced = debounce(() => getStatus(), 90000); +const saveChatDebounced = debounce(() => saveChatConditional(), 1000); const system_message_types = { HELP: "help", @@ -2905,6 +2907,22 @@ function isInt(value) { ); } +function messageEditAuto(div) { + let mesBlock = div.closest(".mes_block"); + var text = mesBlock.find(".edit_textarea").val().trim(); + const bias = extractMessageBias(text); + chat[this_edit_mes_id]["mes"] = text; + + // editing old messages + if (!chat[this_edit_mes_id]["extra"]) { + chat[this_edit_mes_id]["extra"] = {}; + } + chat[this_edit_mes_id]["extra"]["bias"] = bias ?? null; + mesBlock.find(".mes_text").val(''); + mesBlock.find(".mes_text").val(messageFormating(text)); + saveChatDebounced(); +} + function messageEditDone(div) { let mesBlock = div.closest(".mes_block"); var text = mesBlock.find(".edit_textarea").val().trim(); @@ -2921,7 +2939,9 @@ function messageEditDone(div) { mesBlock.find(".mes_text").empty(); mesBlock.find(".mes_edit_buttons").css("display", "none"); mesBlock.find(".mes_edit").css("display", "inline-block"); - mesBlock.find(".mes_text").append(messageFormating(text, this_edit_mes_chname, chat[this_edit_mes_id].is_system, chat[this_edit_mes_id].force_avatar)); + mesBlock.find(".mes_text").append( + messageFormating(text, this_edit_mes_chname, chat[this_edit_mes_id].is_system, chat[this_edit_mes_id].force_avatar) + ); mesBlock.find(".mes_bias").empty(); mesBlock.find(".mes_bias").append(messageFormating(bias)); appendImageToMessage(chat[this_edit_mes_id], div.closest(".mes")); @@ -4248,6 +4268,7 @@ $(document).ready(function () { } }); + $("#talkativeness_slider").on("input", function () { if (menu_type == "create") { create_save_talkativeness = $("#talkativeness_slider").val(); @@ -4664,9 +4685,7 @@ $(document).ready(function () { .closest(".mes_block") .find(".mes_text") .append( - '" + `` ); let edit_textarea = $(this) .closest(".mes_block") @@ -4685,6 +4704,13 @@ $(document).ready(function () { updateEditArrowClasses(); } }); + + $(document).on('input', '#curEditTextarea', function () { + if (power_user.auto_save_msg_edits === true) { + messageEditAuto($(this)); + } + }) + $(document).on("click", ".mes_edit_cancel", function () { let text = chat[this_edit_mes_id]["mes"]; @@ -5072,8 +5098,15 @@ $(document).ready(function () { $(document).keyup(function (e) { if (e.key === "Escape") { - closeMessageEditor(); - $("#send_textarea").focus(); + if (power_user.auto_save_msg_edits === false) { + closeMessageEditor(); + $("#send_textarea").focus(); + } + if (power_user.auto_save_msg_edits === true) { + $(`#chat .mes[mesid="${this_edit_mes_id}"] .mes_edit_done`).click() + $("#send_textarea").focus(); + } + } }); diff --git a/public/scripts/RossAscends-mods.js b/public/scripts/RossAscends-mods.js index 1f6f7870b..58ec5d395 100644 --- a/public/scripts/RossAscends-mods.js +++ b/public/scripts/RossAscends-mods.js @@ -94,7 +94,7 @@ function waitForElement(querySelector, timeout) { } waitForElement("#expression-image", 10000).then(function () { - console.log("expression image loaded, now draggable."); + dragElement(document.getElementById("expression-holder")); }).catch(() => { console.log("expression holder not loaded yet"); @@ -591,13 +591,10 @@ $("document").ready(function () { var chatbarInFocus = false; $('#send_textarea').focus(function () { chatbarInFocus = true; - console.log("chatbatInfocus =" + chatbarInFocus); }); $('#send_textarea').blur(function () { - chatbarInFocus = false; - console.log("chatbatInfocus =" + chatbarInFocus); }); @@ -677,28 +674,11 @@ $("document").ready(function () { if (event.ctrlKey && event.key == "Enter") { // Ctrl+Enter for Regeneration Last Response if (is_send_press == false) { - $('#option_regenerate').click(); $('#options').hide(); - //setTimeout(function () { $('#chat').click(); }, 50) //needed to remove the options menu popping up.. - //Generate("regenerate"); } } - /* if (event.ctrlKey && event.key == "ArrowUp") { - //Ctrl+UpArrow for Connect to last server - console.log(main_api); - if (online_status === "no_connection") { - if (main_api == "kobold") { - document.getElementById("api_button").click(); - } - if (main_api == "novel") { - document.getElementById("api_button_novel").click(); - } - if (main_api == "textgenerationwebui") { - document.getElementById("api_button_textgenerationwebui").click(); - } - } - } */ + if (event.ctrlKey && event.key == "ArrowLeft") { //for debug, show all local stored vars CheckLocal(); } diff --git a/public/scripts/extensions/expressions/index.js b/public/scripts/extensions/expressions/index.js index b3aab063c..cc2f7ed31 100644 --- a/public/scripts/extensions/expressions/index.js +++ b/public/scripts/extensions/expressions/index.js @@ -208,15 +208,15 @@ function getListItem(item, imageSrc, textClass) { } async function getExpressionsList() { - console.log('getting expressions list'); + // get something for offline mode (6 default images) if (!modules.includes('classify')) { - console.log('classify not available, loading default'); + return DEFAULT_EXPRESSIONS; } if (Array.isArray(expressionsList)) { - console.log('got array, loading array'); + return expressionsList; } @@ -224,33 +224,33 @@ async function getExpressionsList() { url.pathname = '/api/classify/labels'; try { - console.log('trying for API'); + const apiResult = await fetch(url, { method: 'GET', headers: { 'Bypass-Tunnel-Reminder': 'bypass' }, }); if (apiResult.ok) { - console.log('API ok, adding labels'); + const data = await apiResult.json(); expressionsList = data.labels; return expressionsList; } } catch (error) { - console.log('got error!'); + console.log(error); return []; } } async function setExpression(character, expression, force) { - console.log('entered setExpressions'); + const filename = `${expression}.png`; const img = $('img.expression'); - console.log('checking for expression images to show..'); + if (force || (existingExpressions.includes(expression))) { - console.log('setting expression from character images folder'); + const imgUrl = `/characters/${character}/${filename}`; img.attr('src', imgUrl); img.removeClass('default'); @@ -263,13 +263,13 @@ async function setExpression(character, expression, force) { }); } else { if (extension_settings.expressions.showDefault) { - console.log('no character images, trying default expressions'); + setDefault(); } } function setDefault() { - console.log('setting default'); + const defImgUrl = `/img/default-expressions/${filename}`; //console.log(defImgUrl); img.attr('src', defImgUrl); @@ -294,7 +294,7 @@ function onClickExpressionImage() { (function () { function addExpressionImage() { - console.log('entered addExpressionImage'); + const html = `