Timothy Jaeryang Baek há 4 meses atrás
pai
commit
b4d7268bed

+ 21 - 0
backend/open_webui/socket/main.py

@@ -193,6 +193,27 @@ async def user_join(sid, data):
     await sio.emit("user-count", {"count": len(USER_POOL.items())})
     await sio.emit("user-count", {"count": len(USER_POOL.items())})
 
 
 
 
+@sio.on("join-channels")
+async def join_channel(sid, data):
+    auth = data["auth"] if "auth" in data else None
+    if not auth or "token" not in auth:
+        return
+
+    data = decode_token(auth["token"])
+    if data is None or "id" not in data:
+        return
+
+    user = Users.get_user_by_id(data["id"])
+    if not user:
+        return
+
+    # Join all the channels
+    channels = Channels.get_channels_by_user_id(user.id)
+    log.debug(f"{channels=}")
+    for channel in channels:
+        await sio.enter_room(sid, f"channel:{channel.id}")
+
+
 @sio.on("user-count")
 @sio.on("user-count")
 async def user_count(sid):
 async def user_count(sid):
     await sio.emit("user-count", {"count": len(USER_POOL.items())})
     await sio.emit("user-count", {"count": len(USER_POOL.items())})

+ 1 - 0
src/lib/components/layout/Sidebar.svelte

@@ -415,6 +415,7 @@
 		});
 		});
 
 
 		if (res) {
 		if (res) {
+			$socket.emit('join-channels', { auth: { token: $user.token } });
 			await initChannels();
 			await initChannels();
 			showCreateChannel = false;
 			showCreateChannel = false;
 		}
 		}