wintergram-userbot 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. wintergram_userbot-0.1.0/LICENSE +21 -0
  2. wintergram_userbot-0.1.0/MANIFEST.in +17 -0
  3. wintergram_userbot-0.1.0/PKG-INFO +165 -0
  4. wintergram_userbot-0.1.0/README.md +138 -0
  5. wintergram_userbot-0.1.0/pyproject.toml +40 -0
  6. wintergram_userbot-0.1.0/setup.cfg +4 -0
  7. wintergram_userbot-0.1.0/wintergram_userbot/__init__.py +47 -0
  8. wintergram_userbot-0.1.0/wintergram_userbot/api/__init__.py +1 -0
  9. wintergram_userbot-0.1.0/wintergram_userbot/api/functions.py +262 -0
  10. wintergram_userbot-0.1.0/wintergram_userbot/api/updates.py +195 -0
  11. wintergram_userbot-0.1.0/wintergram_userbot/client.py +332 -0
  12. wintergram_userbot-0.1.0/wintergram_userbot/crypto/__init__.py +51 -0
  13. wintergram_userbot-0.1.0/wintergram_userbot/crypto/aes.py +90 -0
  14. wintergram_userbot-0.1.0/wintergram_userbot/crypto/auth_key.py +84 -0
  15. wintergram_userbot-0.1.0/wintergram_userbot/crypto/dh.py +162 -0
  16. wintergram_userbot-0.1.0/wintergram_userbot/crypto/rsa.py +134 -0
  17. wintergram_userbot-0.1.0/wintergram_userbot/crypto/srp.py +138 -0
  18. wintergram_userbot-0.1.0/wintergram_userbot/errors.py +124 -0
  19. wintergram_userbot-0.1.0/wintergram_userbot/network/__init__.py +1 -0
  20. wintergram_userbot-0.1.0/wintergram_userbot/network/connection.py +96 -0
  21. wintergram_userbot-0.1.0/wintergram_userbot/network/mtproto.py +764 -0
  22. wintergram_userbot-0.1.0/wintergram_userbot/network/transport.py +186 -0
  23. wintergram_userbot-0.1.0/wintergram_userbot/session/__init__.py +1 -0
  24. wintergram_userbot-0.1.0/wintergram_userbot/session/session.py +92 -0
  25. wintergram_userbot-0.1.0/wintergram_userbot/session/storage.py +118 -0
  26. wintergram_userbot-0.1.0/wintergram_userbot/tl/__init__.py +45 -0
  27. wintergram_userbot-0.1.0/wintergram_userbot/tl/schema_resolver.py +159 -0
  28. wintergram_userbot-0.1.0/wintergram_userbot/tl/schemas/__init__.py +1 -0
  29. wintergram_userbot-0.1.0/wintergram_userbot/tl/schemas/data/core.json +1 -0
  30. wintergram_userbot-0.1.0/wintergram_userbot/tl/schemas/data/latest.json +48098 -0
  31. wintergram_userbot-0.1.0/wintergram_userbot/tl/schemas/data/v113.json +1 -0
  32. wintergram_userbot-0.1.0/wintergram_userbot/tl/schemas/data/v119.json +1 -0
  33. wintergram_userbot-0.1.0/wintergram_userbot/tl/schemas/data/v128.json +1 -0
  34. wintergram_userbot-0.1.0/wintergram_userbot/tl/schemas/data/v133.json +1 -0
  35. wintergram_userbot-0.1.0/wintergram_userbot/tl/serializer.py +406 -0
  36. wintergram_userbot-0.1.0/wintergram_userbot/tl/types.py +67 -0
  37. wintergram_userbot-0.1.0/wintergram_userbot.egg-info/PKG-INFO +165 -0
  38. wintergram_userbot-0.1.0/wintergram_userbot.egg-info/SOURCES.txt +38 -0
  39. wintergram_userbot-0.1.0/wintergram_userbot.egg-info/dependency_links.txt +1 -0
  40. wintergram_userbot-0.1.0/wintergram_userbot.egg-info/top_level.txt +1 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 femboychik
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,17 @@
1
+ include README.md
2
+ include LICENSE
3
+ include pyproject.toml
4
+ recursive-include wintergram_userbot *.py
5
+ recursive-include wintergram_userbot/tl/schemas/data *.json
6
+ exclude userbot_demo.py
7
+ exclude check_session.py
8
+ exclude wintergram_session.db
9
+ exclude промпт.txt
10
+ recursive-exclude tests *
11
+ recursive-exclude tools *
12
+ recursive-exclude __pycache__ *
13
+ recursive-exclude .pytest_cache *
14
+ recursive-exclude .claude *
15
+ global-exclude *.pyc
16
+ global-exclude *.pyo
17
+ global-exclude *~
@@ -0,0 +1,165 @@
1
+ Metadata-Version: 2.4
2
+ Name: wintergram-userbot
3
+ Version: 0.1.0
4
+ Summary: Асинхронный MTProto-клиент для приватных Telegram-серверов (layers 167-228)
5
+ Author-email: femboychik <your.email@example.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/femboychik/wintergram-userbot
8
+ Project-URL: Repository, https://github.com/femboychik/wintergram-userbot
9
+ Project-URL: Issues, https://github.com/femboychik/wintergram-userbot/issues
10
+ Keywords: telegram,mtproto,userbot,async,client
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.8
16
+ Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Operating System :: OS Independent
21
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
+ Classifier: Topic :: Communications :: Chat
23
+ Requires-Python: >=3.8
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ Dynamic: license-file
27
+
28
+ # wintergram-userbot
29
+
30
+ Асинхронный MTProto-клиент для приватных Telegram-серверов, написанный с нуля на Python.
31
+
32
+ ## Особенности
33
+
34
+ - ✅ **Полная поддержка MTProto** — layers 167-228
35
+ - ✅ **Асинхронный** — построен на asyncio
36
+ - ✅ **Приватные серверы** — работает с кастомными MTProto-серверами
37
+ - ✅ **События** — NewMessage, MessageEdited, MessageDeleted
38
+ - ✅ **Userbot режим** — реагирует на свои собственные сообщения
39
+ - ✅ **Редактирование сообщений** — полная поддержка edit_message
40
+
41
+ ## Установка
42
+
43
+ ```bash
44
+ pip install wintergram-userbot
45
+ ```
46
+
47
+ ## Быстрый старт
48
+
49
+ ```python
50
+ import asyncio
51
+ from wintergram_userbot import WinterGramClient
52
+ from wintergram_userbot.api.updates import NewMessage
53
+
54
+ async def main():
55
+ client = WinterGramClient()
56
+
57
+ @client.on(NewMessage)
58
+ async def on_message(event):
59
+ if event.out and ".test" in (event.text or "").lower():
60
+ # Редактируем своё сообщение
61
+ chat = event.sender_id if event.is_private else event.chat_id
62
+ await client.edit_message(chat, event.id, "userbot работает")
63
+
64
+ phone = input("Номер телефона (с '+'): ")
65
+ await client.start(phone=phone)
66
+
67
+ print("Бот запущен!")
68
+ try:
69
+ while True:
70
+ await asyncio.sleep(3600)
71
+ except KeyboardInterrupt:
72
+ pass
73
+ finally:
74
+ await client.disconnect()
75
+
76
+ if __name__ == "__main__":
77
+ asyncio.run(main())
78
+ ```
79
+
80
+ ## Документация
81
+
82
+ ### События
83
+
84
+ #### NewMessage
85
+ Новое сообщение в чате:
86
+
87
+ ```python
88
+ @client.on(NewMessage)
89
+ async def handler(event):
90
+ print(f"Сообщение: {event.text}")
91
+ print(f"От: {event.sender_id}")
92
+ print(f"Чат: {event.chat_id}")
93
+ print(f"Исходящее: {event.out}")
94
+ ```
95
+
96
+ #### MessageEdited
97
+ Редактирование сообщения:
98
+
99
+ ```python
100
+ @client.on(MessageEdited)
101
+ async def handler(event):
102
+ print(f"Отредактировано: {event.text}")
103
+ ```
104
+
105
+ #### MessageDeleted
106
+ Удаление сообщения:
107
+
108
+ ```python
109
+ @client.on(MessageDeleted)
110
+ async def handler(event):
111
+ print(f"Удалены: {event.deleted_ids}")
112
+ ```
113
+
114
+ ### Методы клиента
115
+
116
+ #### send_message
117
+ Отправка сообщения:
118
+
119
+ ```python
120
+ await client.send_message(chat_id, "Текст сообщения")
121
+ await client.send_message("me", "В Избранное")
122
+ ```
123
+
124
+ #### edit_message
125
+ Редактирование сообщения:
126
+
127
+ ```python
128
+ await client.edit_message(chat_id, message_id, "Новый текст")
129
+ ```
130
+
131
+ #### get_history
132
+ Получение истории чата:
133
+
134
+ ```python
135
+ history = await client.get_history(chat_id, limit=50)
136
+ ```
137
+
138
+ ### Свойства события
139
+
140
+ - `event.id` — ID сообщения
141
+ - `event.text` — текст сообщения (bytes или str)
142
+ - `event.date` — время отправки
143
+ - `event.chat_id` — ID чата
144
+ - `event.sender_id` — ID отправителя
145
+ - `event.out` — True если это ваше сообщение
146
+ - `event.is_private` — True если личное сообщение
147
+ - `event.is_channel` — True если сообщение из канала
148
+ - `event.from_channel` — True если отправлено каналом
149
+
150
+ ## Требования
151
+
152
+ - Python 3.8+
153
+ - asyncio
154
+
155
+ ## Лицензия
156
+
157
+ MIT License
158
+
159
+ ## Автор
160
+
161
+ femboychik
162
+
163
+ ## Поддержка
164
+
165
+ Вопросы и issue: [GitHub Issues](https://github.com/femboychik/wintergram-userbot/issues)
@@ -0,0 +1,138 @@
1
+ # wintergram-userbot
2
+
3
+ Асинхронный MTProto-клиент для приватных Telegram-серверов, написанный с нуля на Python.
4
+
5
+ ## Особенности
6
+
7
+ - ✅ **Полная поддержка MTProto** — layers 167-228
8
+ - ✅ **Асинхронный** — построен на asyncio
9
+ - ✅ **Приватные серверы** — работает с кастомными MTProto-серверами
10
+ - ✅ **События** — NewMessage, MessageEdited, MessageDeleted
11
+ - ✅ **Userbot режим** — реагирует на свои собственные сообщения
12
+ - ✅ **Редактирование сообщений** — полная поддержка edit_message
13
+
14
+ ## Установка
15
+
16
+ ```bash
17
+ pip install wintergram-userbot
18
+ ```
19
+
20
+ ## Быстрый старт
21
+
22
+ ```python
23
+ import asyncio
24
+ from wintergram_userbot import WinterGramClient
25
+ from wintergram_userbot.api.updates import NewMessage
26
+
27
+ async def main():
28
+ client = WinterGramClient()
29
+
30
+ @client.on(NewMessage)
31
+ async def on_message(event):
32
+ if event.out and ".test" in (event.text or "").lower():
33
+ # Редактируем своё сообщение
34
+ chat = event.sender_id if event.is_private else event.chat_id
35
+ await client.edit_message(chat, event.id, "userbot работает")
36
+
37
+ phone = input("Номер телефона (с '+'): ")
38
+ await client.start(phone=phone)
39
+
40
+ print("Бот запущен!")
41
+ try:
42
+ while True:
43
+ await asyncio.sleep(3600)
44
+ except KeyboardInterrupt:
45
+ pass
46
+ finally:
47
+ await client.disconnect()
48
+
49
+ if __name__ == "__main__":
50
+ asyncio.run(main())
51
+ ```
52
+
53
+ ## Документация
54
+
55
+ ### События
56
+
57
+ #### NewMessage
58
+ Новое сообщение в чате:
59
+
60
+ ```python
61
+ @client.on(NewMessage)
62
+ async def handler(event):
63
+ print(f"Сообщение: {event.text}")
64
+ print(f"От: {event.sender_id}")
65
+ print(f"Чат: {event.chat_id}")
66
+ print(f"Исходящее: {event.out}")
67
+ ```
68
+
69
+ #### MessageEdited
70
+ Редактирование сообщения:
71
+
72
+ ```python
73
+ @client.on(MessageEdited)
74
+ async def handler(event):
75
+ print(f"Отредактировано: {event.text}")
76
+ ```
77
+
78
+ #### MessageDeleted
79
+ Удаление сообщения:
80
+
81
+ ```python
82
+ @client.on(MessageDeleted)
83
+ async def handler(event):
84
+ print(f"Удалены: {event.deleted_ids}")
85
+ ```
86
+
87
+ ### Методы клиента
88
+
89
+ #### send_message
90
+ Отправка сообщения:
91
+
92
+ ```python
93
+ await client.send_message(chat_id, "Текст сообщения")
94
+ await client.send_message("me", "В Избранное")
95
+ ```
96
+
97
+ #### edit_message
98
+ Редактирование сообщения:
99
+
100
+ ```python
101
+ await client.edit_message(chat_id, message_id, "Новый текст")
102
+ ```
103
+
104
+ #### get_history
105
+ Получение истории чата:
106
+
107
+ ```python
108
+ history = await client.get_history(chat_id, limit=50)
109
+ ```
110
+
111
+ ### Свойства события
112
+
113
+ - `event.id` — ID сообщения
114
+ - `event.text` — текст сообщения (bytes или str)
115
+ - `event.date` — время отправки
116
+ - `event.chat_id` — ID чата
117
+ - `event.sender_id` — ID отправителя
118
+ - `event.out` — True если это ваше сообщение
119
+ - `event.is_private` — True если личное сообщение
120
+ - `event.is_channel` — True если сообщение из канала
121
+ - `event.from_channel` — True если отправлено каналом
122
+
123
+ ## Требования
124
+
125
+ - Python 3.8+
126
+ - asyncio
127
+
128
+ ## Лицензия
129
+
130
+ MIT License
131
+
132
+ ## Автор
133
+
134
+ femboychik
135
+
136
+ ## Поддержка
137
+
138
+ Вопросы и issue: [GitHub Issues](https://github.com/femboychik/wintergram-userbot/issues)
@@ -0,0 +1,40 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "wintergram-userbot"
7
+ version = "0.1.0"
8
+ description = "Асинхронный MTProto-клиент для приватных Telegram-серверов (layers 167-228)"
9
+ readme = "README.md"
10
+ requires-python = ">=3.8"
11
+ license = {text = "MIT"}
12
+ authors = [
13
+ {name = "femboychik", email = "your.email@example.com"}
14
+ ]
15
+ keywords = ["telegram", "mtproto", "userbot", "async", "client"]
16
+ classifiers = [
17
+ "Development Status :: 4 - Beta",
18
+ "Intended Audience :: Developers",
19
+ "License :: OSI Approved :: MIT License",
20
+ "Programming Language :: Python :: 3",
21
+ "Programming Language :: Python :: 3.8",
22
+ "Programming Language :: Python :: 3.9",
23
+ "Programming Language :: Python :: 3.10",
24
+ "Programming Language :: Python :: 3.11",
25
+ "Programming Language :: Python :: 3.12",
26
+ "Operating System :: OS Independent",
27
+ "Topic :: Software Development :: Libraries :: Python Modules",
28
+ "Topic :: Communications :: Chat",
29
+ ]
30
+
31
+ [project.urls]
32
+ Homepage = "https://github.com/femboychik/wintergram-userbot"
33
+ Repository = "https://github.com/femboychik/wintergram-userbot"
34
+ Issues = "https://github.com/femboychik/wintergram-userbot/issues"
35
+
36
+ [tool.setuptools]
37
+ packages = ["wintergram_userbot"]
38
+
39
+ [tool.setuptools.package-data]
40
+ wintergram_userbot = ["tl/schemas/data/*.json"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,47 @@
1
+ """wintergram_userbot - переписанный с нуля асинхронный MTProto-клиент.
2
+
3
+ Пишется для ПРИВАТНОГО MTProto-сервера (не официального Telegram).
4
+ Поддерживаются слои (layers) от 167 до 228 включительно.
5
+ """
6
+
7
+ __version__ = "0.1.0"
8
+
9
+ from .client import WinterGramClient
10
+ from .errors import (
11
+ RPCError,
12
+ FloodWaitError,
13
+ AuthKeyError,
14
+ LayerMismatchError,
15
+ ConnectionClosedError,
16
+ UnknownLayerError,
17
+ AuthorizationExpiredError,
18
+ TimeoutError,
19
+ TransportError,
20
+ SessionPasswordNeededError,
21
+ PhoneCodeInvalidError,
22
+ PhoneNumberUnoccupiedError,
23
+ )
24
+ from .tl.types import TL, TLObject
25
+ from .api.updates import NewMessage, MessageEdited, MessageDeleted
26
+
27
+ __all__ = [
28
+ "WinterGramClient",
29
+ "RPCError",
30
+ "FloodWaitError",
31
+ "AuthKeyError",
32
+ "LayerMismatchError",
33
+ "ConnectionClosedError",
34
+ "UnknownLayerError",
35
+ "AuthorizationExpiredError",
36
+ "TimeoutError",
37
+ "TransportError",
38
+ "SessionPasswordNeededError",
39
+ "PhoneCodeInvalidError",
40
+ "PhoneNumberUnoccupiedError",
41
+ "TL",
42
+ "TLObject",
43
+ "NewMessage",
44
+ "MessageEdited",
45
+ "MessageDeleted",
46
+ "__version__",
47
+ ]
@@ -0,0 +1 @@
1
+ """Высокоуровневый API юзербота."""