Timothy Jaeryang Baek 4 місяців тому
батько
коміт
76c8602324

+ 3 - 4
backend/open_webui/routers/channels.py

@@ -136,7 +136,9 @@ class MessageUserModel(MessageModel):
 
 
 
 
 @router.get("/{id}/messages", response_model=list[MessageUserModel])
 @router.get("/{id}/messages", response_model=list[MessageUserModel])
-async def get_channel_messages(id: str, page: int = 1, user=Depends(get_verified_user)):
+async def get_channel_messages(
+    id: str, skip: int = 0, limit: int = 50, user=Depends(get_verified_user)
+):
     channel = Channels.get_channel_by_id(id)
     channel = Channels.get_channel_by_id(id)
     if not channel:
     if not channel:
         raise HTTPException(
         raise HTTPException(
@@ -148,9 +150,6 @@ async def get_channel_messages(id: str, page: int = 1, user=Depends(get_verified
             status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.DEFAULT()
             status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.DEFAULT()
         )
         )
 
 
-    limit = 50
-    skip = (page - 1) * limit
-
     message_list = Messages.get_messages_by_channel_id(id, skip, limit)
     message_list = Messages.get_messages_by_channel_id(id, skip, limit)
     users = {}
     users = {}
 
 

+ 2 - 2
src/lib/apis/channels/index.ts

@@ -166,10 +166,10 @@ export const deleteChannelById = async (token: string = '', channel_id: string)
 }
 }
 
 
 
 
-export const getChannelMessages = async (token: string = '', channel_id: string, page: number = 1) => {
+export const getChannelMessages = async (token: string = '', channel_id: string, skip: number = 0, limit: number = 50) => {
 	let error = null;
 	let error = null;
 
 
-	const res = await fetch(`${WEBUI_API_BASE_URL}/channels/${channel_id}/messages?page=${page}`, {
+	const res = await fetch(`${WEBUI_API_BASE_URL}/channels/${channel_id}/messages?skip=${skip}&limit=${limit}`, {
 		method: 'GET',
 		method: 'GET',
 		headers: {
 		headers: {
 			Accept: 'application/json',
 			Accept: 'application/json',

+ 4 - 8
src/lib/components/channel/Channel.svelte

@@ -16,7 +16,6 @@
 	let messagesContainerElement = null;
 	let messagesContainerElement = null;
 
 
 	let top = false;
 	let top = false;
-	let page = 1;
 
 
 	let channel = null;
 	let channel = null;
 	let messages = null;
 	let messages = null;
@@ -31,7 +30,6 @@
 
 
 	const initHandler = async () => {
 	const initHandler = async () => {
 		top = false;
 		top = false;
-		page = 1;
 		messages = null;
 		messages = null;
 		channel = null;
 		channel = null;
 
 
@@ -40,7 +38,7 @@
 		});
 		});
 
 
 		if (channel) {
 		if (channel) {
-			messages = await getChannelMessages(localStorage.token, id, page);
+			messages = await getChannelMessages(localStorage.token, id, 0);
 
 
 			if (messages) {
 			if (messages) {
 				messagesContainerElement.scrollTop = messagesContainerElement.scrollHeight;
 				messagesContainerElement.scrollTop = messagesContainerElement.scrollHeight;
@@ -117,16 +115,14 @@
 					{messages}
 					{messages}
 					{top}
 					{top}
 					onLoad={async () => {
 					onLoad={async () => {
-						page += 1;
+						const newMessages = await getChannelMessages(localStorage.token, id, messages.length);
 
 
-						const newMessages = await getChannelMessages(localStorage.token, id, page);
+						messages = [...messages, ...newMessages];
 
 
-						if (newMessages.length === 0) {
+						if (newMessages.length < 50) {
 							top = true;
 							top = true;
 							return;
 							return;
 						}
 						}
-
-						messages = [...messages, ...newMessages];
 					}}
 					}}
 				/>
 				/>
 			{/key}
 			{/key}