Added error message popup so console is needed less

This commit is contained in:
ebolam
2022-08-10 08:09:14 -04:00
parent cd382dc1b8
commit 07042d0483
3 changed files with 44 additions and 8 deletions

View File

@@ -2410,6 +2410,7 @@ def lua_startup():
koboldai_vars.lua_koboldbridge.obliterate_multiverse()
print("{0}{1}{2}".format(colors.RED, "***LUA ERROR***: ", colors.END), end="", file=sys.stderr)
print("{0}{1}{2}".format(colors.RED, str(e).replace("\033", ""), colors.END), file=sys.stderr)
socketio.emit("error", str(e), broadcast=True, room="UI_2")
exit(1)
print(colors.GREEN + "OK!" + colors.END)
@@ -2470,6 +2471,7 @@ def load_lua_scripts():
print("{0}{1}{2}".format(colors.RED, "***LUA ERROR***: ", colors.END), end="", file=sys.stderr)
print("{0}{1}{2}".format(colors.RED, str(e).replace("\033", ""), colors.END), file=sys.stderr)
print("{0}{1}{2}".format(colors.YELLOW, "Lua engine stopped; please open 'Userscripts' and press Load to reinitialize scripts.", colors.END), file=sys.stderr)
socketio.emit("error", str(e), broadcast=True, room="UI_2")
if(koboldai_vars.serverstarted):
set_aibusy(0)
@@ -2960,6 +2962,7 @@ def execute_inmod():
print("{0}{1}{2}".format(colors.RED, "***LUA ERROR***: ", colors.END), end="", file=sys.stderr)
print("{0}{1}{2}".format(colors.RED, str(e).replace("\033", ""), colors.END), file=sys.stderr)
print("{0}{1}{2}".format(colors.YELLOW, "Lua engine stopped; please open 'Userscripts' and press Load to reinitialize scripts.", colors.END), file=sys.stderr)
socketio.emit("error", str(e), broadcast=True, room="UI_2")
set_aibusy(0)
def execute_genmod():
@@ -2978,6 +2981,7 @@ def execute_outmod():
print("{0}{1}{2}".format(colors.RED, "***LUA ERROR***: ", colors.END), end="", file=sys.stderr)
print("{0}{1}{2}".format(colors.RED, str(e).replace("\033", ""), colors.END), file=sys.stderr)
print("{0}{1}{2}".format(colors.YELLOW, "Lua engine stopped; please open 'Userscripts' and press Load to reinitialize scripts.", colors.END), file=sys.stderr)
socketio.emit("error", str(e), broadcast=True, room="UI_2")
set_aibusy(0)
if(koboldai_vars.lua_koboldbridge.resend_settings_required):
koboldai_vars.lua_koboldbridge.resend_settings_required = False
@@ -4112,9 +4116,11 @@ def generate(txt, minimum, maximum, found_entries=None):
print("{0}{1}{2}".format(colors.RED, "***LUA ERROR***: ", colors.END), end="", file=sys.stderr)
print("{0}{1}{2}".format(colors.RED, str(e).replace("\033", ""), colors.END), file=sys.stderr)
print("{0}{1}{2}".format(colors.YELLOW, "Lua engine stopped; please open 'Userscripts' and press Load to reinitialize scripts.", colors.END), file=sys.stderr)
socketio.emit("error", str(e), broadcast=True, room="UI_2")
else:
emit('from_server', {'cmd': 'errmsg', 'data': 'Error occurred during generator call; please check console.'}, broadcast=True, room="UI_1")
print("{0}{1}{2}".format(colors.RED, traceback.format_exc().replace("\033", ""), colors.END), file=sys.stderr)
socketio.emit("error", str(e), broadcast=True, room="UI_2")
set_aibusy(0)
return
@@ -4417,9 +4423,11 @@ def tpumtjgenerate(txt, minimum, maximum, found_entries=None):
print("{0}{1}{2}".format(colors.RED, "***LUA ERROR***: ", colors.END), end="", file=sys.stderr)
print("{0}{1}{2}".format(colors.RED, str(e).replace("\033", ""), colors.END), file=sys.stderr)
print("{0}{1}{2}".format(colors.YELLOW, "Lua engine stopped; please open 'Userscripts' and press Load to reinitialize scripts.", colors.END), file=sys.stderr)
socketio.emit("error", str(e), broadcast=True, room="UI_2")
else:
emit('from_server', {'cmd': 'errmsg', 'data': 'Error occurred during generator call; please check console.'}, broadcast=True, room="UI_1")
print("{0}{1}{2}".format(colors.RED, traceback.format_exc().replace("\033", ""), colors.END), file=sys.stderr)
socketio.emit("error", str(e), broadcast=True, room="UI_2")
set_aibusy(0)
return
@@ -6202,7 +6210,7 @@ def file_popup(popup_title, starting_folder, return_event, upload=True, jailed=T
def get_files_folders(starting_folder):
import stat
session['current_folder'] = starting_folder
session['current_folder'] = os.path.abspath(starting_folder).replace("\\", "/")
item_check = session['popup_item_check']
show_breadcrumbs = session['popup_show_breadcrumbs']
show_hidden = session['popup_show_hidden']
@@ -6567,6 +6575,15 @@ def UI_2_phrase_bias_update(biases):
def UI_2_relay(data):
socketio.emit(data[0], data[1], **data[2])
#==================================================================#
# Event triggered when program errors out
#==================================================================#
def my_except_hook(exctype, value, traceback):
print("sending error to clients")
socketio.emit("error", "{}: {}".format(exctype, value), broadcast=True, room="UI_2")
sys.__excepthook__(exctype, value, traceback)
sys.excepthook = my_except_hook
#==================================================================#
# Test

View File

@@ -22,6 +22,7 @@ socket.on("world_info_entry", function(data){world_info_entry(data);});
socket.on("world_info_folder", function(data){world_info_folder(data);});
socket.on("delete_new_world_info_entry", function(data){document.getElementById("world_info_-1").remove();});
socket.on("delete_world_info_entry", function(data){document.getElementById("world_info_"+data).remove();});
socket.on("error", function(data){show_error_message(data);});
//socket.onAny(function(event_name, data) {console.log({"event": event_name, "class": data.classname, "data": data});});
var presets = {};
@@ -1079,7 +1080,7 @@ function world_info_entry(data) {
if (!(document.getElementById("world_info_folder_"+data.folder))) {
folder = document.createElement("div");
console.log("Didn't find folder " + data.folder);
//console.log("Didn't find folder " + data.folder);
} else {
folder = document.getElementById("world_info_folder_"+data.folder);
}
@@ -1248,6 +1249,11 @@ function world_info_folder(data) {
}
}
function show_error_message(data) {
error_message_box = document.getElementById('error_message');
error_message_box.classList.remove("hidden");
error_message_box.querySelector("#popup_list_area").textContent = data;
}
//--------------------------------------------UI to Server Functions----------------------------------
function save_as_story(response) {
if (response == "overwrite?") {
@@ -1335,11 +1341,11 @@ function send_world_info(uid) {
//--------------------------------------------General UI Functions------------------------------------
function do_biases(data) {
console.log(data);
//console.log(data);
//clear out our old bias lines
let bias_list = Object.assign([], document.getElementsByClassName("bias"));
for (item of bias_list) {
console.log(item);
//console.log(item);
item.parentNode.removeChild(item);
}
@@ -1586,7 +1592,7 @@ function unhide_wi_folder(folder) {
function dragStart(e) {
e.dataTransfer.setData('text/plain', e.target.id);
console.log(e.target.id);
//console.log(e.target.id);
e.dataTransfer.dropEffect = "move";
setTimeout(() => {
e.target.classList.add('hidden');
@@ -1635,7 +1641,7 @@ function drop(e) {
// get the draggable element
const id = e.dataTransfer.getData('text/plain');
const draggable = document.getElementById(id);
console.log(id);
//console.log(id);
dragged_id = draggable.id.split("_").slice(-1)[0];
drop_id = element.id.split("_").slice(-1)[0];
@@ -1958,8 +1964,8 @@ function detect_enter_text(e) {
e.cancelBubble = true;
}
//get element
console.log("Doing Text Enter");
console.log(e.currentTarget.activeElement);
//console.log("Doing Text Enter");
//console.log(e.currentTarget.activeElement);
if (e.currentTarget.activeElement != undefined) {
var item = $(e.currentTarget.activeElement);
item.onchange();

View File

@@ -80,4 +80,17 @@
<button type="button" class="btn btn-primary" onclick='socket.emit("save_story", "overwrite"); document.getElementById("save-confirm").classList.add("hidden");'>Overwrite</button>
<button type="button" class="btn btn-primary" onclick="document.getElementById('save-confirm').classList.add('hidden');">Cancel</button>
</div>
</div>
<!---------------- Story overwrite screen ---------------------->
<div class="popup hidden" id="error_message">
<div class="title">
<div class="popuptitletext">Error</div>
</div>
<div id="popup_list_area">
</div>
<div class="popup_load_cancel">
<button type="button" class="btn btn-primary" onclick="document.getElementById('error_message').classList.add('hidden');">ok</button>
</div>
</div>