Try to fix wi

This commit is contained in:
somebody
2023-08-14 01:36:27 -05:00
parent b9da974eb7
commit 4bd04d02ab

View File

@@ -2839,7 +2839,7 @@ def get_message(msg):
emit('from_server', {'cmd': 'wiupdate', 'num': msg['num'], 'data': {field: koboldai_vars.worldinfo[num][field] for field in fields}}, broadcast=True, room="UI_1") emit('from_server', {'cmd': 'wiupdate', 'num': msg['num'], 'data': {field: koboldai_vars.worldinfo[num][field] for field in fields}}, broadcast=True, room="UI_1")
elif(msg['cmd'] == 'wifolderupdate'): elif(msg['cmd'] == 'wifolderupdate'):
setgamesaved(False) setgamesaved(False)
uid = str(msg['uid']) uid = msg['uid']
fields = ("name", "collapsed") fields = ("name", "collapsed")
for field in fields: for field in fields:
if(field in msg['data'] and type(msg['data'][field]) is (str if field != "collapsed" else bool)): if(field in msg['data'] and type(msg['data'][field]) is (str if field != "collapsed" else bool)):
@@ -4287,17 +4287,17 @@ def togglewimode():
# #
#==================================================================# #==================================================================#
def addwiitem(folder_uid=None): def addwiitem(folder_uid=None):
assert folder_uid is None or str(folder_uid) in koboldai_vars.wifolders_d assert folder_uid is None or folder_uid in koboldai_vars.wifolders_d
ob = {"key": "", "keysecondary": "", "content": "", "comment": "", "folder": folder_uid, "num": len(koboldai_vars.worldinfo), "init": False, "selective": False, "constant": False} ob = {"key": "", "keysecondary": "", "content": "", "comment": "", "folder": folder_uid, "num": len(koboldai_vars.worldinfo), "init": False, "selective": False, "constant": False}
koboldai_vars.worldinfo.append(ob) koboldai_vars.worldinfo.append(ob)
while(True): while(True):
uid = str(int.from_bytes(os.urandom(4), "little", signed=True)) uid = int.from_bytes(os.urandom(4), "little", signed=True)
if(uid not in koboldai_vars.worldinfo_u): if(uid not in koboldai_vars.worldinfo_u):
break break
koboldai_vars.worldinfo_u[uid] = koboldai_vars.worldinfo[-1] koboldai_vars.worldinfo_u[uid] = koboldai_vars.worldinfo[-1]
koboldai_vars.worldinfo[-1]["uid"] = uid koboldai_vars.worldinfo[-1]["uid"] = uid
if(folder_uid is not None): if(folder_uid is not None):
koboldai_vars.wifolders_u[str(folder_uid)].append(koboldai_vars.worldinfo[-1]) koboldai_vars.wifolders_u[folder_uid].append(koboldai_vars.worldinfo[-1])
emit('from_server', {'cmd': 'addwiitem', 'data': ob}, broadcast=True, room="UI_1") emit('from_server', {'cmd': 'addwiitem', 'data': ob}, broadcast=True, room="UI_1")
#==================================================================# #==================================================================#
@@ -4305,7 +4305,7 @@ def addwiitem(folder_uid=None):
#==================================================================# #==================================================================#
def addwifolder(): def addwifolder():
while(True): while(True):
uid = str(int.from_bytes(os.urandom(4), "little", signed=True)) uid = int.from_bytes(os.urandom(4), "little", signed=True)
if(uid not in koboldai_vars.wifolders_d): if(uid not in koboldai_vars.wifolders_d):
break break
ob = {"name": "", "collapsed": False} ob = {"name": "", "collapsed": False}
@@ -4321,18 +4321,18 @@ def addwifolder():
#==================================================================# #==================================================================#
def movewiitem(dst, src): def movewiitem(dst, src):
setgamesaved(False) setgamesaved(False)
if(koboldai_vars.worldinfo_u[str(src)]["folder"] is not None): if(koboldai_vars.worldinfo_u[src]["folder"] is not None):
for i, e in enumerate(koboldai_vars.wifolders_u[str(koboldai_vars.worldinfo_u[str(src)]["folder"])]): for i, e in enumerate(koboldai_vars.wifolders_u[koboldai_vars.worldinfo_u[src]["folder"]]):
if(e["uid"] == koboldai_vars.worldinfo_u[str(src)]["uid"]): if(e["uid"] == koboldai_vars.worldinfo_u[src]["uid"]):
koboldai_vars.wifolders_u[str(koboldai_vars.worldinfo_u[str(src)]["folder"])].pop(i) koboldai_vars.wifolders_u[koboldai_vars.worldinfo_u[src]["folder"]].pop(i)
break break
if(koboldai_vars.worldinfo_u[str(dst)]["folder"] is not None): if(koboldai_vars.worldinfo_u[dst]["folder"] is not None):
koboldai_vars.wifolders_u[str(koboldai_vars.worldinfo_u[str(dst)]["folder"])].append(koboldai_vars.worldinfo_u[str(src)]) koboldai_vars.wifolders_u[koboldai_vars.worldinfo_u[dst]["folder"]].append(koboldai_vars.worldinfo_u[src])
koboldai_vars.worldinfo_u[str(src)]["folder"] = koboldai_vars.worldinfo_u[str(dst)]["folder"] koboldai_vars.worldinfo_u[src]["folder"] = koboldai_vars.worldinfo_u[dst]["folder"]
for i, e in enumerate(koboldai_vars.worldinfo): for i, e in enumerate(koboldai_vars.worldinfo):
if(e["uid"] == koboldai_vars.worldinfo_u[str(src)]["uid"]): if(e["uid"] == koboldai_vars.worldinfo_u[src]["uid"]):
_src = i _src = i
elif(e["uid"] == koboldai_vars.worldinfo_u[str(dst)]["uid"]): elif(e["uid"] == koboldai_vars.worldinfo_u[dst]["uid"]):
_dst = i _dst = i
koboldai_vars.worldinfo[_src]["folder"] = koboldai_vars.worldinfo[_dst]["folder"] koboldai_vars.worldinfo[_src]["folder"] = koboldai_vars.worldinfo[_dst]["folder"]
koboldai_vars.worldinfo.insert(_dst - (_dst >= _src), koboldai_vars.worldinfo.pop(_src)) koboldai_vars.worldinfo.insert(_dst - (_dst >= _src), koboldai_vars.worldinfo.pop(_src))
@@ -4344,12 +4344,12 @@ def movewiitem(dst, src):
#==================================================================# #==================================================================#
def movewifolder(dst, src): def movewifolder(dst, src):
setgamesaved(False) setgamesaved(False)
koboldai_vars.wifolders_l.remove(str(src)) koboldai_vars.wifolders_l.remove(src)
if(dst is None): if(dst is None):
# If dst is None, that means we should move src to be the last folder # If dst is None, that means we should move src to be the last folder
koboldai_vars.wifolders_l.append(str(src)) koboldai_vars.wifolders_l.append(src)
else: else:
koboldai_vars.wifolders_l.insert(koboldai_vars.wifolders_l.index(str(dst)), str(src)) koboldai_vars.wifolders_l.insert(koboldai_vars.wifolders_l.index(dst), src)
sendwi() sendwi()
#==================================================================# #==================================================================#
@@ -4375,7 +4375,7 @@ def sendwi():
last_folder = ... last_folder = ...
for wi in koboldai_vars.worldinfo: for wi in koboldai_vars.worldinfo:
if(wi["folder"] != last_folder): if(wi["folder"] != last_folder):
emit('from_server', {'cmd': 'addwifolder', 'uid': wi["folder"], 'data': koboldai_vars.wifolders_d[str(wi["folder"])] if wi["folder"] is not None else None}, broadcast=True, room="UI_1") emit('from_server', {'cmd': 'addwifolder', 'uid': wi["folder"], 'data': koboldai_vars.wifolders_d[wi["folder"]] if wi["folder"] is not None else None}, broadcast=True, room="UI_1")
last_folder = wi["folder"] last_folder = wi["folder"]
ob = wi ob = wi
emit('from_server', {'cmd': 'addwiitem', 'data': ob}, broadcast=True, room="UI_1") emit('from_server', {'cmd': 'addwiitem', 'data': ob}, broadcast=True, room="UI_1")
@@ -4418,7 +4418,6 @@ def stablesortwi():
#==================================================================# #==================================================================#
def commitwi(ar): def commitwi(ar):
for ob in ar: for ob in ar:
ob["uid"] = str(ob["uid"])
koboldai_vars.worldinfo_u[ob["uid"]]["key"] = ob["key"] koboldai_vars.worldinfo_u[ob["uid"]]["key"] = ob["key"]
koboldai_vars.worldinfo_u[ob["uid"]]["keysecondary"] = ob["keysecondary"] koboldai_vars.worldinfo_u[ob["uid"]]["keysecondary"] = ob["keysecondary"]
koboldai_vars.worldinfo_u[ob["uid"]]["content"] = ob["content"] koboldai_vars.worldinfo_u[ob["uid"]]["content"] = ob["content"]
@@ -4441,9 +4440,9 @@ def deletewi(uid):
koboldai_vars.deletewi = uid koboldai_vars.deletewi = uid
if(koboldai_vars.deletewi is not None): if(koboldai_vars.deletewi is not None):
if(koboldai_vars.worldinfo_u[koboldai_vars.deletewi]["folder"] is not None): if(koboldai_vars.worldinfo_u[koboldai_vars.deletewi]["folder"] is not None):
for i, e in enumerate(koboldai_vars.wifolders_u[str(koboldai_vars.worldinfo_u[koboldai_vars.deletewi]["folder"])]): for i, e in enumerate(koboldai_vars.wifolders_u[koboldai_vars.worldinfo_u[koboldai_vars.deletewi]["folder"]]):
if(e["uid"] == koboldai_vars.worldinfo_u[koboldai_vars.deletewi]["uid"]): if(e["uid"] == koboldai_vars.worldinfo_u[koboldai_vars.deletewi]["uid"]):
koboldai_vars.wifolders_u[str(koboldai_vars.worldinfo_u[koboldai_vars.deletewi]["folder"])].pop(i) koboldai_vars.wifolders_u[koboldai_vars.worldinfo_u[koboldai_vars.deletewi]["folder"]].pop(i)
break break
for i, e in enumerate(koboldai_vars.worldinfo): for i, e in enumerate(koboldai_vars.worldinfo):
if(e["uid"] == koboldai_vars.worldinfo_u[koboldai_vars.deletewi]["uid"]): if(e["uid"] == koboldai_vars.worldinfo_u[koboldai_vars.deletewi]["uid"]):
@@ -4459,18 +4458,17 @@ def deletewi(uid):
# #
#==================================================================# #==================================================================#
def deletewifolder(uid): def deletewifolder(uid):
uid = str(uid)
del koboldai_vars.wifolders_u[uid] del koboldai_vars.wifolders_u[uid]
del koboldai_vars.wifolders_d[uid] del koboldai_vars.wifolders_d[uid]
del koboldai_vars.wifolders_l[koboldai_vars.wifolders_l.index(uid)] del koboldai_vars.wifolders_l[koboldai_vars.wifolders_l.index(uid)]
setgamesaved(False) setgamesaved(False)
# Delete uninitialized entries in the folder we're going to delete # Delete uninitialized entries in the folder we're going to delete
koboldai_vars.worldinfo = [wi for wi in koboldai_vars.worldinfo if str(wi["folder"]) != uid or wi["init"]] koboldai_vars.worldinfo = [wi for wi in koboldai_vars.worldinfo if wi["folder"] != uid or wi["init"]]
koboldai_vars.worldinfo_i = [wi for wi in koboldai_vars.worldinfo if wi["init"]] koboldai_vars.worldinfo_i = [wi for wi in koboldai_vars.worldinfo if wi["init"]]
# Move WI entries that are inside of the folder we're going to delete # Move WI entries that are inside of the folder we're going to delete
# so that they're outside of all folders # so that they're outside of all folders
for wi in koboldai_vars.worldinfo: for wi in koboldai_vars.worldinfo:
if(str(wi["folder"]) == uid): if(wi["folder"] == uid):
wi["folder"] = None wi["folder"] = None
sendwi() sendwi()
@@ -6605,7 +6603,7 @@ def UI_2_import_world_info():
for child in children: for child in children:
# Child is index # Child is index
if child not in uids: if child not in uids:
entry_data = wi_data["entries"][str(child)] entry_data = wi_data["entries"][child]
uids[child] = koboldai_vars.worldinfo_v2.add_item( uids[child] = koboldai_vars.worldinfo_v2.add_item(
title=entry_data["title"], title=entry_data["title"],
key=entry_data["key"], key=entry_data["key"],
@@ -9209,7 +9207,7 @@ def get_world_info():
if wi["folder"] != last_folder: if wi["folder"] != last_folder:
folder = [] folder = []
if wi["folder"] is not None: if wi["folder"] is not None:
folders.append({"uid": wi["folder"], "name": koboldai_vars.wifolders_d[str(wi["folder"])]["name"], "entries": folder}) folders.append({"uid": wi["folder"], "name": koboldai_vars.wifolders_d[wi["folder"]]["name"], "entries": folder})
last_folder = wi["folder"] last_folder = wi["folder"]
(folder if wi["folder"] is not None else entries).append({k: v for k, v in wi.items() if k not in ("init", "folder", "num") and (wi["selective"] or k != "keysecondary")}) (folder if wi["folder"] is not None else entries).append({k: v for k, v in wi.items() if k not in ("init", "folder", "num") and (wi["selective"] or k != "keysecondary")})
return {"folders": folders, "entries": entries} return {"folders": folders, "entries": entries}
@@ -10256,7 +10254,8 @@ def post_world_info_folders_none(body: EmptySchema):
stablesortwi() stablesortwi()
koboldai_vars.worldinfo_i = [wi for wi in koboldai_vars.worldinfo if wi["init"]] koboldai_vars.worldinfo_i = [wi for wi in koboldai_vars.worldinfo if wi["init"]]
setgamesaved(False) setgamesaved(False)
emit('from_server', {'cmd': 'wiexpand', 'data': koboldai_vars.worldinfo[-1]["num"]}, broadcast=True) if koboldai_vars.worldinfo:
emit('from_server', {'cmd': 'wiexpand', 'data': koboldai_vars.worldinfo[-1]["num"]}, broadcast=True)
koboldai_vars.worldinfo[-1]["init"] = True koboldai_vars.worldinfo[-1]["init"] = True
addwiitem(folder_uid=None) addwiitem(folder_uid=None)
return {"uid": koboldai_vars.worldinfo[-2]["uid"]} return {"uid": koboldai_vars.worldinfo[-2]["uid"]}