что то уныло как то

This commit is contained in:
kirill 2025-01-21 22:55:24 +03:00
parent d137a71653
commit 3472ae798d
2 changed files with 17 additions and 3 deletions

View File

@ -6,6 +6,7 @@ from widgets.chat import Chat
from widgets.dialog import Dialog from widgets.dialog import Dialog
from telegram.client import TelegramClientWrapper from telegram.client import TelegramClientWrapper
from tokens import api_id, api_hash from tokens import api_id, api_hash
from time import sleep
class TelegramTUI(App): class TelegramTUI(App):
CSS_PATH = "../tcss/style.tcss" CSS_PATH = "../tcss/style.tcss"
@ -16,17 +17,28 @@ class TelegramTUI(App):
async def on_mount(self) -> None: async def on_mount(self) -> None:
self.chat_container = self.query_one("#main_container").query_one("#chats").query_one("#chat_container") self.chat_container = self.query_one("#main_container").query_one("#chats").query_one("#chat_container")
self.limit = 25 self.limit = 25
for i in range(self.limit): for i in range(self.limit):
chat = Chat(id=f"chat-{i + 1}") chat = Chat(id=f"chat-{i + 1}")
self.chat_container.mount(chat) self.chat_container.mount(chat)
#self.mount_chats(limit=25)
await self.telegram_client.connect() await self.telegram_client.connect()
await self.update_chat_list()
# TODO: скоро сюда переедет маунт чатов из функции on_mount # TODO: скоро сюда переедет маунт чатов из функции on_mount
def mount_chats(self): # P.S. сделано, но неудачно
pass 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): async def update_chat_list(self):
dialogs = await self.telegram_client.get_dialogs(limit=self.limit) 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="main_container"):
with Horizontal(id="chats"): with Horizontal(id="chats"):
yield VerticalScroll(Static(id="chat_container")) yield VerticalScroll(Static(id="chat_container"))
#TODO: сделать кнопку чтобы прогрузить больше чатов, это оптимизация
yield Dialog() yield Dialog()

View File

@ -15,6 +15,7 @@ class Dialog(Widget):
yield Message(message="ДАТОУШЩАРШЩУРЩША!!!!", is_me=False) yield Message(message="ДАТОУШЩАРШЩУРЩША!!!!", is_me=False)
# должно быть примерно is_me = message.from_id == client.get_peer_id("me") # должно быть примерно is_me = message.from_id == client.get_peer_id("me")
# но я могу ошибаться, я это фиш если что # но я могу ошибаться, я это фиш если что
#TODO: сделать кнопку чтобы прогрузить больше сообщений, но при этом чтобы при перезаходе в чат оставались прогруженными только 10 сообщений, а остальные декомпоузились
with Horizontal(id="input_place"): with Horizontal(id="input_place"):
yield Input(placeholder="Сообщение", id="msg_input") yield Input(placeholder="Сообщение", id="msg_input")