From 5cd87020ad236cfffb9546bdff69dd9aa6ca8c05 Mon Sep 17 00:00:00 2001 From: gsd Date: Wed, 11 Feb 2026 18:39:45 +0300 Subject: [PATCH] ui start 2.5.51 --- .../messages/MessageHistory.component.ts | 30 ++++++++++++++++++- webExtensions/nodeList.py | 3 ++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/ui/src/app/components/messages/MessageHistory.component.ts b/ui/src/app/components/messages/MessageHistory.component.ts index adfa53e..bf54acc 100644 --- a/ui/src/app/components/messages/MessageHistory.component.ts +++ b/ui/src/app/components/messages/MessageHistory.component.ts @@ -27,11 +27,15 @@ export class MessageHistoryComponent implements OnInit { messages: MessageDTO[] = [] offset = 0; limit = 10; + lastMsgTs = 0; knownNodes:KeyValueMap = {} ngOnInit() { this.getMessages(); + setInterval(() => { + //this.newMessagePooler() + }, 1000) } tryKnownNodes(nums: number[]) { @@ -49,13 +53,19 @@ export class MessageHistoryComponent implements OnInit { getMessages() { this.loading = true; - this.http.get(`api/messages?offset=${this.offset}&limit=${this.limit}`) + this.http.get(`api/messages?offset=${this.offset}&limit=${this.limit}&after=${this.lastMsgTs}`) .subscribe((res) => { let new_msgs = res as MessageDTO[] this.tryKnownNodes(new_msgs.map(msg => msg.from)).add( () => { this.messages = this.messages.concat(new_msgs) .sort((m1, m2) => m1.ts - m2.ts); + + if (this.messages.length>0) { + if (this.messages[this.messages.length-1].ts > this.lastMsgTs) + this.lastMsgTs = this.messages[this.messages.length-1].ts; + } + let msgSizes = (res as MessageDTO[]).length if (msgSizes == 0) this.canLoadMoreMessage = false; this.offset += msgSizes; @@ -64,4 +74,22 @@ export class MessageHistoryComponent implements OnInit { this.loading = false; }, (err) => {this.loading = false;}) } + + //ЭХ ВОТ БЫ ВЕБСОКЕТ НО МНЕ ЛЕНЬ + newMessagePooler() { + this.http.get(`api/messages?offset=0&limit=10&after=${this.lastMsgTs}`) + .subscribe((res) => { + let new_msgs = res as MessageDTO[] + this.tryKnownNodes(new_msgs.map(msg => msg.from)).add( + () => { + this.messages.push(...new_msgs) + + if (this.messages.length>0) { + if (this.messages[this.messages.length-1].ts > this.lastMsgTs) + this.lastMsgTs = this.messages[this.messages.length-1].ts; + } + } + ) + }) + } } diff --git a/webExtensions/nodeList.py b/webExtensions/nodeList.py index 575f6d6..8f97aca 100644 --- a/webExtensions/nodeList.py +++ b/webExtensions/nodeList.py @@ -44,5 +44,8 @@ class WebExtension: @self.app.get(self.core.context + "/nodes") @self.core.authManager.authRequest() async def listOfSelectedNodes(request: Request, nums: List[int] = Query(None)): + if type(nums) != list: + nums = [nums] + l = await self.dbService.listOfSelectedNodes(nums) return [NodeDTO(node) for node in l] \ No newline at end of file