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:
51
aiserver.py
51
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")
|
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,6 +10254,7 @@ 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)
|
||||||
|
if koboldai_vars.worldinfo:
|
||||||
emit('from_server', {'cmd': 'wiexpand', 'data': koboldai_vars.worldinfo[-1]["num"]}, broadcast=True)
|
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)
|
||||||
|
Reference in New Issue
Block a user