Metadata-Version: 2.4
Name: wintergram-userbot
Version: 0.1.1
Summary: Асинхронный MTProto-клиент для приватных Telegram-серверов (layers 167-228)
Author-email: femboychik <your.email@example.com>
License: MIT
Project-URL: Homepage, https://github.com/femboychik/wintergram-userbot
Project-URL: Repository, https://github.com/femboychik/wintergram-userbot
Project-URL: Issues, https://github.com/femboychik/wintergram-userbot/issues
Keywords: telegram,mtproto,userbot,async,client
Classifier: Development Status :: 4 - Beta
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 :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Communications :: Chat
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# wintergram-userbot

Асинхронный MTProto-клиент для приватных Telegram-серверов, написанный с нуля на Python.

## Особенности

- ✅ **Полная поддержка MTProto** — layers 167-228
- ✅ **Асинхронный** — построен на asyncio
- ✅ **Приватные серверы** — работает с кастомными MTProto-серверами
- ✅ **События** — NewMessage, MessageEdited, MessageDeleted
- ✅ **Userbot режим** — реагирует на свои собственные сообщения
- ✅ **Редактирование сообщений** — полная поддержка edit_message

## Установка

```bash
pip install wintergram-userbot
```

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

```python
import asyncio
from wintergram_userbot import WinterGramClient
from wintergram_userbot.api.updates import NewMessage

async def main():
    client = WinterGramClient()

    @client.on(NewMessage)
    async def on_message(event):
        if event.out and ".test" in (event.text or "").lower():
            # Редактируем своё сообщение
            chat = event.sender_id if event.is_private else event.chat_id
            await client.edit_message(chat, event.id, "userbot работает")

    phone = input("Номер телефона (с '+'): ")
    await client.start(phone=phone)

    print("Бот запущен!")
    try:
        while True:
            await asyncio.sleep(3600)
    except KeyboardInterrupt:
        pass
    finally:
        await client.disconnect()

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

## Документация

### События

#### NewMessage
Новое сообщение в чате:

```python
@client.on(NewMessage)
async def handler(event):
    print(f"Сообщение: {event.text}")
    print(f"От: {event.sender_id}")
    print(f"Чат: {event.chat_id}")
    print(f"Исходящее: {event.out}")
```

#### MessageEdited
Редактирование сообщения:

```python
@client.on(MessageEdited)
async def handler(event):
    print(f"Отредактировано: {event.text}")
```

#### MessageDeleted
Удаление сообщения:

```python
@client.on(MessageDeleted)
async def handler(event):
    print(f"Удалены: {event.deleted_ids}")
```

### Методы клиента

#### send_message
Отправка сообщения:

```python
await client.send_message(chat_id, "Текст сообщения")
await client.send_message("me", "В Избранное")
```

#### edit_message
Редактирование сообщения:

```python
await client.edit_message(chat_id, message_id, "Новый текст")
```

#### get_history
Получение истории чата:

```python
history = await client.get_history(chat_id, limit=50)
```

### Свойства события

- `event.id` — ID сообщения
- `event.text` — текст сообщения (bytes или str)
- `event.date` — время отправки
- `event.chat_id` — ID чата
- `event.sender_id` — ID отправителя
- `event.out` — True если это ваше сообщение
- `event.is_private` — True если личное сообщение
- `event.is_channel` — True если сообщение из канала
- `event.from_channel` — True если отправлено каналом

## Требования

- Python 3.8+
- asyncio

## Лицензия

MIT License

## Автор

femboychik

## Поддержка

Вопросы и issue: [GitHub Issues](https://github.com/femboychik/wintergram-userbot/issues)
