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.2.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.2.0.tar.gz | 287.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wintergram_userbot-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 591.5 kB
Release files / wintergram_userbot-0.2.0.tar.gz
| Download URL | wintergram_userbot-0.2.0.tar.gz |
|---|---|
| Size | 287.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b0b147f93ff5bf69cca859e6a2ad694c35362f430aa4698c14044ffd29360886
|
|
BLAKE2b-256 checksum How to use checksums |
c64c47245839a1744f92fe1725e47b8465c926ac328955be84d884a2fa1d5260
|
| 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.2.0-py3-none-any.whl
| Download URL | wintergram_userbot-0.2.0-py3-none-any.whl |
|---|---|
| Size | 303.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e6bde53077d15f7d35a38b4f029fecbdd7633468a94964499b21bbbf8cfb8c22
|
|
BLAKE2b-256 checksum How to use checksums |
627995effa65f154322370b4a4a574b8d319081e0685db0b617fcea494f0c1ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|