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