# telecats 😼

[![PyPI version](https://badge.fury.io/py/telecats.svg)](https://badge.fury.io/py/telecats)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

**telecats** — это асинхронная Python-библиотека, построенная на базе [Telethon](https://github.com/LonamiWebs/Telethon), которая расширяет его возможности, предоставляя удобный и мощный шаблонизатор для форматирования текста в сообщениях Telegram.

## Ключевые особенности

-   **Полностью асинхронная:** Основана на `asyncio` и Telethon.
-   **Расширенное форматирование:** Используйте простые и интуитивно понятные теги прямо в тексте сообщения для создания спойлеров, цитат, ссылок, упоминаний и добавления кастомных эмодзи.
-   **Чистый синтаксис:** Библиотека автоматически парсит ваши теги и преобразует их в нативные `MessageEntity` объекты Telegram.
-   **Простота в использовании:** Наследует `TelegramClient` от Telethon, поэтому вы можете использовать все его возможности, к которым привыкли.

## Установка

```bash
pip install telecats
```

## Быстрый старт

```python
import asyncio
from telecats import TelegramClient

async def main():
    # Замените на ваши учетные данные API
    API_ID = 12345
    API_HASH = "your_api_hash"
    SESSION_NAME = "my_session"

    client = TelegramClient(SESSION_NAME, API_ID, API_HASH)

    await client.start()
    print("Клиент успешно запущен!")

    # Пример использования кастомных тегов
    message_with_tags = """
    Привет, это **telecats**!

    <spoiler>Это скрытый текст (спойлер)</spoiler>.

    <blockquote>
    Это красивая цитата.
    Она может быть многострочной.
    </blockquote>

    <blockquote hide>
    А эта цитата по умолчанию скрыта.
    Она состоит из пяти строк.
    Третья строка.
    Четвертая.
    И последняя, пятая.
    </blockquote>

    Посетите наш сайт: <link:https://github.com/ripcats/telecats>telecats on GitHub</link>.

    Упомянем пользователя: <mention:8251648172>Красавчик</mention>.

    И добавим кастомный эмодзи: <emoji-id:5472412290772903754>😼</emoji-id>
    """

    # Отправляем сообщение себе (в "Избранное")
    await client.send_message("me", message_with_tags)
    print("Сообщение с форматированием отправлено!")

    await client.disconnect()

if __name__ == "__main__":
    asyncio.run(main())
```

## Синтаксис тегов

`telecats` парсит как полные, так и сокращенные (алиасы) теги для вашего удобства.

| Функция | Полный тег | Короткий алиас | Описание |
| --- | --- | --- | --- |
| **Спойлер** | `<spoiler>текст</spoiler>` | `<sp>текст</sp>` | Скрывает текст под спойлером. |
| **Цитата** | `<blockquote>текст</blockquote>` | `<bq>текст</bq>` | Форматирует текст как цитату. |
| **Скрытая цитата** | `<blockquote hide>текст</blockquote>` | `<bq hide>текст</bq>` | Форматирует текст как свернутую цитату. |
| **Ссылка** | `<link:URL>текст</link>` | `<url:URL>текст</url>` | Создает гиперссылку. |
| **Упоминание** | `<mention:ID>текст</mention>` | `<mo:ID>текст</mo>` | Упоминает пользователя по его ID. |
| **Кастомный Эмодзи**| `<emoji-id:ID>текст</emoji-id>` | `<em:ID>текст</em>` | Вставляет кастомный эмодзи. |

## Лицензия

Этот проект распространяется под лицензией MIT.