From 3472ae798dd33a29f2cc08645a59367e57bd3220 Mon Sep 17 00:00:00 2001 From: kirill Date: Tue, 21 Jan 2025 22:55:24 +0300 Subject: [PATCH] =?UTF-8?q?=D1=87=D1=82=D0=BE=20=D1=82=D0=BE=20=D1=83?= =?UTF-8?q?=D0=BD=D1=8B=D0=BB=D0=BE=20=D0=BA=D0=B0=D0=BA=20=D1=82=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/app.py | 19 ++++++++++++++++--- widgets/dialog.py | 1 + 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/app/app.py b/app/app.py index 8a806b8..a3c1f09 100644 --- a/app/app.py +++ b/app/app.py @@ -6,6 +6,7 @@ from widgets.chat import Chat from widgets.dialog import Dialog from telegram.client import TelegramClientWrapper from tokens import api_id, api_hash +from time import sleep class TelegramTUI(App): CSS_PATH = "../tcss/style.tcss" @@ -16,17 +17,28 @@ class TelegramTUI(App): async def on_mount(self) -> None: self.chat_container = self.query_one("#main_container").query_one("#chats").query_one("#chat_container") - self.limit = 25 for i in range(self.limit): chat = Chat(id=f"chat-{i + 1}") self.chat_container.mount(chat) + #self.mount_chats(limit=25) await self.telegram_client.connect() + await self.update_chat_list() + # TODO: скоро сюда переедет маунт чатов из функции on_mount - def mount_chats(self): - pass + # P.S. сделано, но неудачно + def mount_chats(self, limit: int): + self.limit = limit + chats_amount = len(self.chat_container.query(Chat)) + if limit > chats_amount: + for i in range(limit - chats_amount): + chat = Chat(id=f"chat-{i + 1 + (limit - chats_amount)}") + self.chat_container.mount(chat) + elif not (limit == chats_amount): + for i in range(chats_amount - limit): + self.chat_container.query(Chat).last().remove() async def update_chat_list(self): dialogs = await self.telegram_client.get_dialogs(limit=self.limit) @@ -42,6 +54,7 @@ class TelegramTUI(App): with Horizontal(id="main_container"): with Horizontal(id="chats"): yield VerticalScroll(Static(id="chat_container")) + #TODO: сделать кнопку чтобы прогрузить больше чатов, это оптимизация yield Dialog() diff --git a/widgets/dialog.py b/widgets/dialog.py index 6d006c3..3c5cbde 100644 --- a/widgets/dialog.py +++ b/widgets/dialog.py @@ -15,6 +15,7 @@ class Dialog(Widget): yield Message(message="ДАТОУШЩАРШЩУРЩША!!!!", is_me=False) # должно быть примерно is_me = message.from_id == client.get_peer_id("me") # но я могу ошибаться, я это фиш если что + #TODO: сделать кнопку чтобы прогрузить больше сообщений, но при этом чтобы при перезаходе в чат оставались прогруженными только 10 сообщений, а остальные декомпоузились with Horizontal(id="input_place"): yield Input(placeholder="Сообщение", id="msg_input")