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

ну я в ахере просто кошмар
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.install_screen(auth_screen, name="auth")
self.push_screen("auth") self.push_screen("auth")
else: else:
await self.telegram_client.start()
self.push_screen("chats") self.push_screen("chats")
async def on_exit_app(self): async def on_exit_app(self):

View File

@ -145,5 +145,5 @@ class ChatScreen(Screen):
with Horizontal(id="chats"): with Horizontal(id="chats"):
yield VerticalScroll(Static(id="chat_container")) yield VerticalScroll(Static(id="chat_container"))
#TODO: сделать кнопку чтобы прогрузить больше чатов #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.widget import Widget
from textual.reactive import Reactive from textual.reactive import Reactive
from textual.widgets import Input, Button, Label from textual.widgets import Input, Button, Label
from telethon import TelegramClient, events, utils
class Chat(Widget): class Chat(Widget):
"""Класс виджета чата для панели чатов""" """Класс виджета чата для панели чатов"""
@ -24,11 +25,15 @@ class Chat(Widget):
classes=classes, classes=classes,
disabled=disabled disabled=disabled
) )
self.notify = notify_func global personid
personid = 0
self.notify = notify_fun
def _on_click(self): def _on_click(self):
global personid
self.msg = str(self.peer_id) self.msg = str(self.peer_id)
self.notify("нажат чат") personid = int(self.peer_id)
self.app.notify("нажат чат")
def compose(self): def compose(self):
with Horizontal(): with Horizontal():
@ -40,15 +45,27 @@ class Chat(Widget):
class Dialog(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) 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): def compose(self):
messages = self.messages
with Vertical(): with Vertical():
with VerticalScroll(id="dialog"): with VerticalScroll(id="dialog"):
yield Message(message="привет, я ыплыжлп", is_me=True) yield Message(message=messages[0], is_me=True)
yield Message(message="о, дщытрапшщцрущ", is_me=False) yield Message(message=messages[1], is_me=False)
yield Message(message="ДАТОУШЩАРШЩУРЩША!!!!", 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") # is_me = message.from_id == client.get_peer_id("me")
@ -63,8 +80,10 @@ class Dialog(Widget):
yield Input(placeholder="Сообщение", id="msg_input") yield Input(placeholder="Сообщение", id="msg_input")
yield Button(label="", id="send", variant="primary") 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.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): class Message(Widget):
"""Класс виджета сообщений для окна диалога""" """Класс виджета сообщений для окна диалога"""

View File

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