diff --git a/aiserver.py b/aiserver.py index 0704a301..9b6656f5 100644 --- a/aiserver.py +++ b/aiserver.py @@ -7221,7 +7221,9 @@ def load_story_v1(js): folder = "root" koboldai_vars.worldinfo_v2.add_item([x.strip() for x in wi["key"].split(",")][0], wi["key"], wi.get("keysecondary", ""), folder, wi.get("constant", False), - wi["content"], wi.get("comment", ""), recalc=False) + wi["content"], wi.get("comment", ""), recalc=False, sync=False, send_to_ui=False) + koboldai_vars.worldinfo_v2.sync_world_info_to_old_format() + koboldai_vars.worldinfo_v2.send_to_ui() # Save path for save button koboldai_vars.savedir = loadpath diff --git a/koboldai_settings.py b/koboldai_settings.py index 97e3e15f..baf1ae80 100644 --- a/koboldai_settings.py +++ b/koboldai_settings.py @@ -1694,7 +1694,7 @@ class KoboldWorldInfo(object): def add_item(self, title, key, keysecondary, folder, constant, manual_text, comment, use_wpp=False, wpp={'name': "", 'type': "", 'format': "W++", 'attributes': {}}, - v1_uid=None, recalc=True, sync=True): + v1_uid=None, recalc=True, sync=True, send_to_ui=True): if len(self.world_info) == 0: uid = 0 else: @@ -1759,7 +1759,7 @@ class KoboldWorldInfo(object): self.story_settings.assign_world_info_to_actions(wuid=uid) - if self.socketio is not None: + if self.socketio is not None and send_to_ui: self.socketio.emit("world_info_folder", {x: self.world_info_folder[x] for x in self.world_info_folder}, broadcast=True, room="UI_2") self.socketio.emit("world_info_entry", self.world_info[uid], broadcast=True, room="UI_2") if recalc: @@ -1870,8 +1870,7 @@ class KoboldWorldInfo(object): if self.socketio is not None: self.socketio.emit("world_info_folder", {x: self.world_info_folder[x] for x in self.world_info_folder}, broadcast=True, room="UI_2") logger.debug("Sending all world info from send_to_ui") - for uid in self.world_info: - self.socketio.emit("world_info_entry", self.world_info[uid], broadcast=True, room="UI_2") + self.socketio.emit("world_info_entry", [self.world_info[uid] for uid in self.world_info], broadcast=True, room="UI_2") def to_json(self, folder=None): if folder is None: diff --git a/static/koboldai.js b/static/koboldai.js index 8d2634dc..e4c56284 100644 --- a/static/koboldai.js +++ b/static/koboldai.js @@ -19,7 +19,7 @@ socket.on('selected_model_info', function(data){selected_model_info(data);}); socket.on('oai_engines', function(data){oai_engines(data);}); socket.on('buildload', function(data){buildload(data);}); socket.on('error_popup', function(data){error_popup(data);}); -socket.on("world_info_entry", function(data){world_info_entry(data);}); +socket.on("world_info_entry", function(data){process_world_info_entry(data);}); socket.on("world_info_entry_used_in_game", function(data){world_info_entry_used_in_game(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();}); @@ -1670,6 +1670,19 @@ function world_info_entry_used_in_game(data) { } } +function process_world_info_entry(data) { + console.log(data); + let temp = [] + if (Array.isArray(data)) { + temp = data; + } else { + temp = [data]; + } + for (wi of temp) { + world_info_entry(wi); + } +} + function world_info_entry(data) { world_info_data[data.uid] = data;