mirror of
https://github.com/KoboldAI/KoboldAI-Client.git
synced 2025-06-05 21:59:24 +02:00
Try to fix wi
This commit is contained in:
53
aiserver.py
53
aiserver.py
@@ -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")
|
||||
elif(msg['cmd'] == 'wifolderupdate'):
|
||||
setgamesaved(False)
|
||||
uid = str(msg['uid'])
|
||||
uid = msg['uid']
|
||||
fields = ("name", "collapsed")
|
||||
for field in fields:
|
||||
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):
|
||||
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}
|
||||
koboldai_vars.worldinfo.append(ob)
|
||||
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):
|
||||
break
|
||||
koboldai_vars.worldinfo_u[uid] = koboldai_vars.worldinfo[-1]
|
||||
koboldai_vars.worldinfo[-1]["uid"] = uid
|
||||
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")
|
||||
|
||||
#==================================================================#
|
||||
@@ -4305,7 +4305,7 @@ def addwiitem(folder_uid=None):
|
||||
#==================================================================#
|
||||
def addwifolder():
|
||||
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):
|
||||
break
|
||||
ob = {"name": "", "collapsed": False}
|
||||
@@ -4321,18 +4321,18 @@ def addwifolder():
|
||||
#==================================================================#
|
||||
def movewiitem(dst, src):
|
||||
setgamesaved(False)
|
||||
if(koboldai_vars.worldinfo_u[str(src)]["folder"] is not None):
|
||||
for i, e in enumerate(koboldai_vars.wifolders_u[str(koboldai_vars.worldinfo_u[str(src)]["folder"])]):
|
||||
if(e["uid"] == koboldai_vars.worldinfo_u[str(src)]["uid"]):
|
||||
koboldai_vars.wifolders_u[str(koboldai_vars.worldinfo_u[str(src)]["folder"])].pop(i)
|
||||
if(koboldai_vars.worldinfo_u[src]["folder"] is not None):
|
||||
for i, e in enumerate(koboldai_vars.wifolders_u[koboldai_vars.worldinfo_u[src]["folder"]]):
|
||||
if(e["uid"] == koboldai_vars.worldinfo_u[src]["uid"]):
|
||||
koboldai_vars.wifolders_u[koboldai_vars.worldinfo_u[src]["folder"]].pop(i)
|
||||
break
|
||||
if(koboldai_vars.worldinfo_u[str(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.worldinfo_u[str(src)]["folder"] = koboldai_vars.worldinfo_u[str(dst)]["folder"]
|
||||
if(koboldai_vars.worldinfo_u[dst]["folder"] is not None):
|
||||
koboldai_vars.wifolders_u[koboldai_vars.worldinfo_u[dst]["folder"]].append(koboldai_vars.worldinfo_u[src])
|
||||
koboldai_vars.worldinfo_u[src]["folder"] = koboldai_vars.worldinfo_u[dst]["folder"]
|
||||
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
|
||||
elif(e["uid"] == koboldai_vars.worldinfo_u[str(dst)]["uid"]):
|
||||
elif(e["uid"] == koboldai_vars.worldinfo_u[dst]["uid"]):
|
||||
_dst = i
|
||||
koboldai_vars.worldinfo[_src]["folder"] = koboldai_vars.worldinfo[_dst]["folder"]
|
||||
koboldai_vars.worldinfo.insert(_dst - (_dst >= _src), koboldai_vars.worldinfo.pop(_src))
|
||||
@@ -4344,12 +4344,12 @@ def movewiitem(dst, src):
|
||||
#==================================================================#
|
||||
def movewifolder(dst, src):
|
||||
setgamesaved(False)
|
||||
koboldai_vars.wifolders_l.remove(str(src))
|
||||
koboldai_vars.wifolders_l.remove(src)
|
||||
if(dst is None):
|
||||
# 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:
|
||||
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()
|
||||
|
||||
#==================================================================#
|
||||
@@ -4375,7 +4375,7 @@ def sendwi():
|
||||
last_folder = ...
|
||||
for wi in koboldai_vars.worldinfo:
|
||||
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"]
|
||||
ob = wi
|
||||
emit('from_server', {'cmd': 'addwiitem', 'data': ob}, broadcast=True, room="UI_1")
|
||||
@@ -4418,7 +4418,6 @@ def stablesortwi():
|
||||
#==================================================================#
|
||||
def commitwi(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"]]["keysecondary"] = ob["keysecondary"]
|
||||
koboldai_vars.worldinfo_u[ob["uid"]]["content"] = ob["content"]
|
||||
@@ -4441,9 +4440,9 @@ def deletewi(uid):
|
||||
koboldai_vars.deletewi = uid
|
||||
if(koboldai_vars.deletewi 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"]):
|
||||
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
|
||||
for i, e in enumerate(koboldai_vars.worldinfo):
|
||||
if(e["uid"] == koboldai_vars.worldinfo_u[koboldai_vars.deletewi]["uid"]):
|
||||
@@ -4459,18 +4458,17 @@ def deletewi(uid):
|
||||
#
|
||||
#==================================================================#
|
||||
def deletewifolder(uid):
|
||||
uid = str(uid)
|
||||
del koboldai_vars.wifolders_u[uid]
|
||||
del koboldai_vars.wifolders_d[uid]
|
||||
del koboldai_vars.wifolders_l[koboldai_vars.wifolders_l.index(uid)]
|
||||
setgamesaved(False)
|
||||
# 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"]]
|
||||
# Move WI entries that are inside of the folder we're going to delete
|
||||
# so that they're outside of all folders
|
||||
for wi in koboldai_vars.worldinfo:
|
||||
if(str(wi["folder"]) == uid):
|
||||
if(wi["folder"] == uid):
|
||||
wi["folder"] = None
|
||||
|
||||
sendwi()
|
||||
@@ -6605,7 +6603,7 @@ def UI_2_import_world_info():
|
||||
for child in children:
|
||||
# Child is index
|
||||
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(
|
||||
title=entry_data["title"],
|
||||
key=entry_data["key"],
|
||||
@@ -9209,7 +9207,7 @@ def get_world_info():
|
||||
if wi["folder"] != last_folder:
|
||||
folder = []
|
||||
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"]
|
||||
(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}
|
||||
@@ -10256,7 +10254,8 @@ def post_world_info_folders_none(body: EmptySchema):
|
||||
stablesortwi()
|
||||
koboldai_vars.worldinfo_i = [wi for wi in koboldai_vars.worldinfo if wi["init"]]
|
||||
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
|
||||
addwiitem(folder_uid=None)
|
||||
return {"uid": koboldai_vars.worldinfo[-2]["uid"]}
|
||||
|
Reference in New Issue
Block a user