ничего толком не поменял, но изменил функцию get_dialogs, которая теперь возвращает полный диалог

This commit is contained in:
kirill 2025-01-24 21:15:39 +03:00
parent 3472ae798d
commit 5be6da7eeb
2 changed files with 16 additions and 14 deletions

View File

@ -1,23 +1,23 @@
from telethon import TelegramClient, events
#from telethon import TelegramClient, events
from textual.app import App, ComposeResult
from textual.containers import Horizontal, VerticalScroll, Vertical, Container
from textual.widgets import Placeholder, Label, Static, Input, Button
from textual.containers import Horizontal, VerticalScroll
from textual.widgets import Static, Footer
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"
def __init__(self):
super().__init__()
self.telegram_client = TelegramClientWrapper(api_id, api_hash, self.update_chat_list)
async def on_mount(self) -> None:
self.telegram_client = TelegramClientWrapper(api_id, api_hash, self.update_chat_list)
self.chat_container = self.query_one("#main_container").query_one("#chats").query_one("#chat_container")
self.limit = 25
self.limit = 100
for i in range(self.limit):
chat = Chat(id=f"chat-{i + 1}")
self.chat_container.mount(chat)
@ -51,6 +51,7 @@ class TelegramTUI(App):
#self.notify("Новое сообщение") #колхоз дебаг
def compose(self) -> ComposeResult:
yield Footer()
with Horizontal(id="main_container"):
with Horizontal(id="chats"):
yield VerticalScroll(Static(id="chat_container"))

View File

@ -6,8 +6,6 @@ class TelegramClientWrapper:
self.client = TelegramClient('user', api_id, api_hash)
self.client.on(events.NewMessage())(self.local_message_handler)
#ни то ни то не работает, костя спаси
async def local_message_handler(self, event):
await self.message_handler()
@ -17,21 +15,24 @@ class TelegramClientWrapper:
async def disconnect(self):
await self.client.disconnect()
async def get_dialogs(self, limit=10):
async def get_dialogs(self, limit=None):
await self.client.get_dialogs(limit=limit)
dialogs_list = []
async for dialog in self.client.iter_dialogs(limit=limit):
dialogs_list.append(dialog)
return [self._map_dialog(d) for d in dialogs_list]
#return [self._map_dialog(d) for d in dialogs_list]
return dialogs_list
def _map_dialog(self, dialog):
#ого:
"""def _map_dialog(self, dialog):
return DialogInfo(
id=dialog.id,
name=utils.get_display_name(dialog.entity),
message=dialog.message
)
)"""
class DialogInfo:
"""class DialogInfo:
def __init__(self, id, name, message):
self.id = id
self.name = name
self.message = message
self.message = message"""