Библиотека для создания простых окон в телеграмм боте.
Project description
Конечно! Вот пример README.md для вашей библиотеки в формате Markdown.
TGWindow
TGWindow — это библиотека для удобного создания и управления окнами (сообщениями) в Telegram с использованием Aiogram. Она предоставляет базовый интерфейс для работы с текстом, кнопками и отправкой сообщений.
Возможности библиотеки
- Удобное создание сообщений с текстом и кнопками.
- Поддержка Inline и Reply клавиатур.
- Гибкая настройка размеров клавиатур.
- Простое взаимодействие с
MessageиCallbackQuery.
Установка
Установите библиотеку через pip (если она доступна) или вручную.
pip install tgwindow
Пример использования
1. Создание окна и отправка сообщения
from datetime import datetime
import asyncio
from aiogram.types import Message, Chat
from src.sender.sender import Send
from src.windows.base_window import BaseWindow
# Создание окна
class HelloWindow(BaseWindow):
def hello(self):
self.text = "Hello, guys!"
self.button("Say Hello")
return self # Возвращаем экземпляр для удобства
# Создание объекта Send
send = Send(event=message)
# Отправка сообщения
async def main():
await send(HelloWindow().hello())
if __name__ == "__main__":
asyncio.run(main())
2. Добавление кнопок и размера клавиатуры
class CustomWindow(BaseWindow):
def setup(self):
self.text = "Choose an option:"
self.button(("Option 1", "data_1")) # Inline-кнопки
self.button(("Option 2", "data_2"))
self.size(2) # Кнопки располагаются по 2 в ряд
return self
# Отправка кастомного окна
async def main():
await send(CustomWindow().setup())
if __name__ == "__main__":
asyncio.run(main())
3. Использование Reply-клавиатуры
from src.keyboard.base_keyboards import Reply
class MyKeyboard(Reply):
block = "Block user"
away_button = "Away button"
class ReplyWindow(BaseWindow):
def setup(self):
self.text = "Choose a command:"
self.button("/start")
self.button("/help")
self.button("/settings")
return self
class NewWindow(BaseWindow):
def blocker(self):
self.text = "Block user?"
self.button(MyKeyboard())
return self
async def main():
await send(ReplyWindow().setup())
if __name__ == "__main__":
asyncio.run(main())
Основные классы
1. BaseWindow
BaseWindow — это базовый класс для создания окон. Он предоставляет методы для настройки текста и кнопок.
self.text— текст сообщения.self.button(*args, keyboard=None)— добавление кнопок.self.size(int)— настройка количества кнопок в ряду.self._build()— возвращает текст и разметку для отправки.
2. Send
Send — класс для отправки сообщений.
Инициализация:
send = Send(event: Message | CallbackQuery)
Использование:
await send(window: BaseWindow | tuple[str, keyboard] | str, photo: str | None)
Требования
- Python 3.8+
- Aiogram 3.0+
Лицензия
Этот проект распространяется под лицензией MIT. Используйте свободно!
Обратная связь
Если у вас есть вопросы или предложения, создавайте Issue или отправляйте PR.
Такой README.md можно сразу использовать в вашем репозитории.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tgwindow-0.0.1.tar.gz.
File metadata
- Download URL: tgwindow-0.0.1.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7129626d6c8d10dfa933e8849504e30629e893ff3634a9a618bea06f99187400
|
|
| MD5 |
5047b19a7e57f84e495fe6f9962a4388
|
|
| BLAKE2b-256 |
c0a3bc6be6f1d88ed54a02dbdd6e972c56a52f6caa31d30f9a8b206bd1ba352d
|
File details
Details for the file TGWindow-0.0.1-py3-none-any.whl.
File metadata
- Download URL: TGWindow-0.0.1-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95ad0615d4974c8199aac05a5b84de56c15d8902964444a7d4edf4f8e461c5e6
|
|
| MD5 |
a0f9308160367a4f557b2e466b2434cb
|
|
| BLAKE2b-256 |
45824157ba2083463feb7ee851ca81e58cd11d55dc5db158ec0c96bdf072dbbc
|