mirror of
https://github.com/avitoras/telegram-tui.git
synced 2025-07-27 19:26:10 +00:00
Колодка сделал что то немыслимое и теперь я буду в это копаться
ну я в ахере просто кошмар
This commit is contained in:
commit
9a4392ed4c
@ -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):
|
||||
|
@ -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)
|
||||
|
@ -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):
|
||||
"""Класс виджета сообщений для окна диалога"""
|
||||
|
Loading…
x
Reference in New Issue
Block a user