Skip to main content

Библиотека для создания простых окон в телеграмм боте.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tgwindow-0.0.1.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

TGWindow-0.0.1-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

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

Hashes for tgwindow-0.0.1.tar.gz
Algorithm Hash digest
SHA256 7129626d6c8d10dfa933e8849504e30629e893ff3634a9a618bea06f99187400
MD5 5047b19a7e57f84e495fe6f9962a4388
BLAKE2b-256 c0a3bc6be6f1d88ed54a02dbdd6e972c56a52f6caa31d30f9a8b206bd1ba352d

See more details on using hashes here.

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

Hashes for TGWindow-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 95ad0615d4974c8199aac05a5b84de56c15d8902964444a7d4edf4f8e461c5e6
MD5 a0f9308160367a4f557b2e466b2434cb
BLAKE2b-256 45824157ba2083463feb7ee851ca81e58cd11d55dc5db158ec0c96bdf072dbbc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page