wintergram-userbot
Асинхронный MTProto-клиент для приватных Telegram-серверов, написанный с нуля на Python.
Особенности
- ✅ Полная поддержка MTProto — layers 167-228
- ✅ Асинхронный — построен на asyncio
- ✅ Приватные серверы — работает с кастомными MTProto-серверами
- ✅ События — NewMessage, MessageEdited, MessageDeleted
- ✅ Userbot режим — реагирует на свои собственные сообщения
- ✅ Редактирование сообщений — полная поддержка edit_message
Установка
pip install wintergram-userbot
Быстрый старт
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
Новое сообщение в чате:
@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
Редактирование сообщения:
@client.on(MessageEdited)
async def handler(event):
print(f"Отредактировано: {event.text}")
MessageDeleted
Удаление сообщения:
@client.on(MessageDeleted)
async def handler(event):
print(f"Удалены: {event.deleted_ids}")
Методы клиента
send_message
Отправка сообщения:
await client.send_message(chat_id, "Текст сообщения")
await client.send_message("me", "В Избранное")
edit_message
Редактирование сообщения:
await client.edit_message(chat_id, message_id, "Новый текст")
get_history
Получение истории чата:
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
Release files for wintergram-userbot 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wintergram_userbot-0.1.0.tar.gz | 286.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wintergram_userbot-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 587.4 kB
Release files / wintergram_userbot-0.1.0.tar.gz
| Download URL | wintergram_userbot-0.1.0.tar.gz |
|---|---|
| Size | 286.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ccbef406dc1701dcaf50b4f993877a669ae7d722341a21f0f1b03c097486f6dc
|
|
BLAKE2b-256 checksum How to use checksums |
83379cbb332a54922694900b9e8fa61033e8d30b034d6d6ea5553f8d0f0e032c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / wintergram_userbot-0.1.0-py3-none-any.whl
| Download URL | wintergram_userbot-0.1.0-py3-none-any.whl |
|---|---|
| Size | 301.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2d5ef22f978fd27e924e848b3d1888249747c50644756fa78ab7603e4b55ca16
|
|
BLAKE2b-256 checksum How to use checksums |
2c60d00f49e59ddace23806e19c912b0484a5961d9b5afdd1bfcf18ecd283481
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|