# Features⚓︎

## Asyncio-based Asynchronous Architecture⚓︎

The entire system is built using async/await, ensuring high performance and non-blocking operations.

## Familiar aiogram-like Design⚓︎

Leverages familiar concepts: Router, decorators, shortcuts like message.answer, message.reply, filters, and even magic-filter (F.text, F.document, F.photo).

## Convenient Handling of Incoming Events⚓︎

All incoming JSON payloads are automatically transformed into Python classes (Message, AttachmentContent, UploadingProgress, etc.), making data handling simple and type-safe.

## Decorators for Routing⚓︎

The router enables elegant and structured handling of events:

```
from trueconf import Router, Message
from trueconf.enums import MessageType
from trueconf.filters import F

router = Router()

@router.message(F.text.startswith("/start"))
async def on_start(msg: Message):
await msg.answer("Hello! I'm TrueConf bot 👋")

@router.message(F.document.mime_type == "application/pdf")
async def on_pdf(msg: Message):
await msg.reply("Thanks for the PDF!")
```

## Two Connection Options⚓︎

- Using a pre-obtained JWT token:

```
bot = Bot(server="video.example.com", token="...")
```

- Or via login and password authentication:

```
bot = Bot.from_credentials(server, username, password)
```

## Aliases and Shortcuts in aiogram Style⚓︎

Common methods are available for messages:

```
await msg.answer("Text to chat")
await msg.reply("Reply to a message")
await msg.copy_to(chat_id="other_chat")
```

## Multi-Bot Support⚓︎

You can run multiple bots simultaneously and route events separately for each one.

## Asynchronous Transport — WebSocket⚓︎

All communication with the server is handled via WebSocket, which is faster and more efficient than traditional REST requests.

## Magic-filter, Just Like in aiogram⚓︎

Exactly the same as in aiogram:

```
@router.message(F.photo)
async def on_photo(msg: Message): ...

@router.message(F.document.mime_type.in_(["application/pdf", "application/msword"]))
async def on_doc(msg: Message): ...
```

## Files and Uploads⚓︎

Asynchronous file upload and download are supported. Files can be downloaded to a temporary directory or a specified path.

```
path = await bot.download_file_by_id(file_id)
await msg.answer(f"File downloaded to {path}")
```

## Full Set of Public API Methods⚓︎

The library implements all core TrueConf API methods: sending messages, uploading/downloading files, polls, conferences, participant management, and more.

June 30, 2026

September 3, 2025
