Send messages via mkdir

This commit is contained in:
Joscha 2024-02-23 01:12:11 +01:00
parent 6c387338d3
commit b9b58ffae0
2 changed files with 55 additions and 0 deletions

View file

@ -48,6 +48,9 @@ class Room:
self.alive = False
self.ws.close()
def send(self, content, parent=None):
self._send("send", content=content, parent=parent)
def find_msg_by_texts(self, texts):
msg = None
children = {mid: msg for mid, msg in self.msgs.items() if msg.parent == None}
@ -103,6 +106,10 @@ class Room:
self._on_hello_event(data)
case "snapshot-event":
self._on_snapshot_event(data)
case "send-event":
self._on_send_event(data)
case "send-reply":
self._on_send_event(data)
print(packet["type"])
@ -128,3 +135,12 @@ class Room:
parent.children[msg.id] = msg
self._send("nick", name="garmtest")
def _on_send_event(self, data):
msg = Message(data)
self.msgs[msg.id] = msg
if msg.parent is not None:
parent = self.msgs.get(msg.parent)
if parent is not None:
parent.children[msg.id] = msg

View file

@ -123,6 +123,45 @@ class EuFs(fuse.Fuse):
print(child.text)
yield fuse.Direntry(child.text)
def mkdir(self, path, mode):
print(f"mkdir: {path!r} {mode!r}")
parts = Path(path).parts
if parts == ("/",):
print(f" is root")
return -errno.EEXIST
print(f" is not root")
roomname = parts[1]
texts = parts[2:]
room = self.rooms.get(roomname)
if not room:
print(f" is invalid room")
return -errno.ENOENT
print(f" is valid room")
if texts == ():
print(f" is no content")
return -errno.EEXIST
content = texts[-1]
texts = texts[:-1]
if texts == ():
print(" is root message")
room.send(content)
return
msg = room.find_msg_by_texts(texts)
if not msg:
print(f" is invalid msg")
return -errno.ENOENT
print(f" is valid msg")
print(" is child message")
room.send(content, parent=msg.id)
def main():
server = EuFs(version="%prog " + fuse.__version__, dash_s_do="setsingle")