Metadata-Version: 2.4
Name: telecats
Version: 1.1.0
Summary: An async wrapper around Telethon to extend its functionality with a convenient and powerful templating engine for formatting text in Telegram messages.
Author-email: ripcats <legal@c8evgeny.ru>
License: MIT License
        
        Copyright (c) 2025 evgeny
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Homepage, https://github.com/ripcats/telecats
Project-URL: Repository, https://github.com/ripcats/telecats
Project-URL: Bug Tracker, https://github.com/ripcats/telecats/issues
Keywords: telegram,telethon,async,formatting,parser
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Classifier: Topic :: Communications :: Chat
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: telethon>=1.30
Requires-Dist: mimesis>=10.0
Dynamic: license-file

# 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.
