Колодка сделал что то немыслимое и теперь я буду в это копаться

ну я в ахере просто кошмар
This commit is contained in:
fish-dd 2025-01-29 01:08:23 +03:00 committed by GitHub
commit 9a4392ed4c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 30 additions and 10 deletions

View File

@ -20,6 +20,7 @@ class TelegramTUI(App):
self.install_screen(auth_screen, name="auth")
self.push_screen("auth")
else:
await self.telegram_client.start()
self.push_screen("chats")
async def on_exit_app(self):

View File

@ -145,5 +145,5 @@ class ChatScreen(Screen):
with Horizontal(id="chats"):
yield VerticalScroll(Static(id="chat_container"))
#TODO: сделать кнопку чтобы прогрузить больше чатов
yield Dialog()
yield Dialog(telegram_client=self.telegram_client)

View File

@ -2,6 +2,7 @@ from textual.containers import Horizontal, Vertical, Container, VerticalScroll
from textual.widget import Widget
from textual.reactive import Reactive
from textual.widgets import Input, Button, Label
from telethon import TelegramClient, events, utils
class Chat(Widget):
"""Класс виджета чата для панели чатов"""
@ -24,11 +25,15 @@ class Chat(Widget):
classes=classes,
disabled=disabled
)
self.notify = notify_func
global personid
personid = 0
self.notify = notify_fun
def _on_click(self):
global personid
self.msg = str(self.peer_id)
self.notify("нажат чат")
personid = int(self.peer_id)
self.app.notify("нажат чат")
def compose(self):
with Horizontal():
@ -40,15 +45,27 @@ class Chat(Widget):
class Dialog(Widget):
"""Класс окна диалога"""
def __init__(self, id=None, classes=None, disabled=False):
def __init__(self, id=None, classes=None, disabled=False, telegram_client: TelegramClient | None = None):
global personid
super().__init__(id=id, classes=classes, disabled=disabled)
self.telegram_client = telegram_client
self.personid = personid
async def load_messages(self):
self.messages = []
for messages1 in self.telegram_client.iter_dialogs(self.personid, limit=5):
messages.append(messages1.text)
def compose(self):
messages = self.messages
with Vertical():
with VerticalScroll(id="dialog"):
yield Message(message="привет, я ыплыжлп", is_me=True)
yield Message(message="о, дщытрапшщцрущ", is_me=False)
yield Message(message="ДАТОУШЩАРШЩУРЩША!!!!", is_me=False)
yield Message(message=messages[0], is_me=True)
yield Message(message=messages[1], is_me=False)
yield Message(message=messages[2], is_me=False)
yield Message(message=messages[3], is_me=True)
yield Message(message=messages[4], is_me=False)
# должно быть примерно
# is_me = message.from_id == client.get_peer_id("me")
@ -63,8 +80,10 @@ class Dialog(Widget):
yield Input(placeholder="Сообщение", id="msg_input")
yield Button(label="", id="send", variant="primary")
def on_button_pressed(self, event): # self добавил
async def on_button_pressed(self, event): # self добавил
self.app.notify("Нажато отправить")
self.message_text = self.query_one("#msg_input").value
await self.telegram_client.send_message(personid, str(self.message_text))
class Message(Widget):
"""Класс виджета сообщений для окна диалога"""

View File

@ -1,4 +1,4 @@
"""Получите свои API-ключи на https://my.telegram.org/apps"""
api_id = 12345
api_hash = "0123456789abcdef"
api_hash = "0123456789abcdef"