telegrinder 0.3.3.post1__py3-none-any.whl → 0.3.4.post1__py3-none-any.whl
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.
Potentially problematic release.
This version of telegrinder might be problematic. Click here for more details.
- telegrinder/__init__.py +144 -144
- telegrinder/api/__init__.py +8 -8
- telegrinder/api/api.py +93 -93
- telegrinder/api/error.py +16 -16
- telegrinder/api/response.py +20 -20
- telegrinder/api/token.py +36 -36
- telegrinder/bot/__init__.py +66 -66
- telegrinder/bot/bot.py +76 -76
- telegrinder/bot/cute_types/__init__.py +17 -17
- telegrinder/bot/cute_types/base.py +258 -258
- telegrinder/bot/cute_types/callback_query.py +385 -385
- telegrinder/bot/cute_types/chat_join_request.py +61 -61
- telegrinder/bot/cute_types/chat_member_updated.py +160 -160
- telegrinder/bot/cute_types/inline_query.py +43 -43
- telegrinder/bot/cute_types/message.py +2637 -2637
- telegrinder/bot/cute_types/update.py +104 -109
- telegrinder/bot/cute_types/utils.py +95 -95
- telegrinder/bot/dispatch/__init__.py +55 -55
- telegrinder/bot/dispatch/abc.py +77 -77
- telegrinder/bot/dispatch/context.py +98 -98
- telegrinder/bot/dispatch/dispatch.py +202 -202
- telegrinder/bot/dispatch/handler/__init__.py +13 -13
- telegrinder/bot/dispatch/handler/abc.py +24 -24
- telegrinder/bot/dispatch/handler/audio_reply.py +44 -44
- telegrinder/bot/dispatch/handler/base.py +57 -57
- telegrinder/bot/dispatch/handler/document_reply.py +44 -44
- telegrinder/bot/dispatch/handler/func.py +135 -135
- telegrinder/bot/dispatch/handler/media_group_reply.py +43 -43
- telegrinder/bot/dispatch/handler/message_reply.py +36 -36
- telegrinder/bot/dispatch/handler/photo_reply.py +44 -44
- telegrinder/bot/dispatch/handler/sticker_reply.py +37 -37
- telegrinder/bot/dispatch/handler/video_reply.py +44 -44
- telegrinder/bot/dispatch/middleware/__init__.py +3 -3
- telegrinder/bot/dispatch/middleware/abc.py +22 -16
- telegrinder/bot/dispatch/process.py +157 -132
- telegrinder/bot/dispatch/return_manager/__init__.py +13 -13
- telegrinder/bot/dispatch/return_manager/abc.py +108 -108
- telegrinder/bot/dispatch/return_manager/callback_query.py +20 -20
- telegrinder/bot/dispatch/return_manager/inline_query.py +15 -15
- telegrinder/bot/dispatch/return_manager/message.py +36 -36
- telegrinder/bot/dispatch/view/__init__.py +13 -13
- telegrinder/bot/dispatch/view/abc.py +41 -41
- telegrinder/bot/dispatch/view/base.py +200 -200
- telegrinder/bot/dispatch/view/box.py +129 -129
- telegrinder/bot/dispatch/view/callback_query.py +17 -17
- telegrinder/bot/dispatch/view/chat_join_request.py +16 -16
- telegrinder/bot/dispatch/view/chat_member.py +39 -39
- telegrinder/bot/dispatch/view/inline_query.py +17 -17
- telegrinder/bot/dispatch/view/message.py +44 -44
- telegrinder/bot/dispatch/view/raw.py +114 -114
- telegrinder/bot/dispatch/waiter_machine/__init__.py +17 -17
- telegrinder/bot/dispatch/waiter_machine/actions.py +13 -13
- telegrinder/bot/dispatch/waiter_machine/hasher/__init__.py +8 -8
- telegrinder/bot/dispatch/waiter_machine/hasher/callback.py +55 -55
- telegrinder/bot/dispatch/waiter_machine/hasher/hasher.py +57 -57
- telegrinder/bot/dispatch/waiter_machine/hasher/message.py +51 -51
- telegrinder/bot/dispatch/waiter_machine/hasher/state.py +19 -19
- telegrinder/bot/dispatch/waiter_machine/machine.py +172 -167
- telegrinder/bot/dispatch/waiter_machine/middleware.py +89 -89
- telegrinder/bot/dispatch/waiter_machine/short_state.py +68 -68
- telegrinder/bot/polling/__init__.py +4 -4
- telegrinder/bot/polling/abc.py +25 -25
- telegrinder/bot/polling/polling.py +131 -131
- telegrinder/bot/rules/__init__.py +62 -62
- telegrinder/bot/rules/abc.py +213 -213
- telegrinder/bot/rules/adapter/__init__.py +12 -9
- telegrinder/bot/rules/adapter/abc.py +31 -29
- telegrinder/bot/rules/adapter/errors.py +5 -5
- telegrinder/bot/rules/adapter/event.py +65 -67
- telegrinder/bot/rules/adapter/node.py +48 -48
- telegrinder/bot/rules/adapter/raw_event.py +27 -0
- telegrinder/bot/rules/adapter/raw_update.py +30 -30
- telegrinder/bot/rules/callback_data.py +170 -170
- telegrinder/bot/rules/chat_join.py +46 -46
- telegrinder/bot/rules/command.py +126 -126
- telegrinder/bot/rules/enum_text.py +36 -36
- telegrinder/bot/rules/func.py +26 -26
- telegrinder/bot/rules/fuzzy.py +24 -24
- telegrinder/bot/rules/inline.py +60 -60
- telegrinder/bot/rules/integer.py +20 -20
- telegrinder/bot/rules/is_from.py +127 -127
- telegrinder/bot/rules/markup.py +43 -43
- telegrinder/bot/rules/mention.py +14 -14
- telegrinder/bot/rules/message.py +17 -17
- telegrinder/bot/rules/message_entities.py +35 -35
- telegrinder/bot/rules/node.py +27 -27
- telegrinder/bot/rules/regex.py +37 -37
- telegrinder/bot/rules/rule_enum.py +72 -72
- telegrinder/bot/rules/start.py +42 -42
- telegrinder/bot/rules/state.py +37 -37
- telegrinder/bot/rules/text.py +33 -33
- telegrinder/bot/rules/update.py +15 -15
- telegrinder/bot/scenario/__init__.py +5 -5
- telegrinder/bot/scenario/abc.py +19 -19
- telegrinder/bot/scenario/checkbox.py +176 -167
- telegrinder/bot/scenario/choice.py +51 -46
- telegrinder/client/__init__.py +4 -4
- telegrinder/client/abc.py +75 -75
- telegrinder/client/aiohttp.py +130 -130
- telegrinder/model.py +320 -295
- telegrinder/modules.py +237 -237
- telegrinder/msgspec_json.py +14 -14
- telegrinder/msgspec_utils.py +410 -410
- telegrinder/node/__init__.py +0 -0
- telegrinder/node/attachment.py +87 -87
- telegrinder/node/base.py +166 -166
- telegrinder/node/callback_query.py +53 -53
- telegrinder/node/command.py +33 -33
- telegrinder/node/composer.py +198 -198
- telegrinder/node/container.py +27 -27
- telegrinder/node/event.py +65 -65
- telegrinder/node/me.py +16 -16
- telegrinder/node/message.py +14 -14
- telegrinder/node/polymorphic.py +48 -48
- telegrinder/node/rule.py +76 -76
- telegrinder/node/scope.py +38 -38
- telegrinder/node/source.py +71 -71
- telegrinder/node/text.py +41 -41
- telegrinder/node/tools/__init__.py +3 -3
- telegrinder/node/tools/generator.py +40 -40
- telegrinder/node/update.py +15 -15
- telegrinder/rules.py +0 -0
- telegrinder/tools/__init__.py +74 -74
- telegrinder/tools/buttons.py +79 -79
- telegrinder/tools/error_handler/__init__.py +7 -7
- telegrinder/tools/error_handler/abc.py +33 -33
- telegrinder/tools/error_handler/error.py +9 -9
- telegrinder/tools/error_handler/error_handler.py +193 -193
- telegrinder/tools/formatting/__init__.py +46 -46
- telegrinder/tools/formatting/html.py +283 -283
- telegrinder/tools/formatting/links.py +33 -33
- telegrinder/tools/formatting/spec_html_formats.py +111 -111
- telegrinder/tools/functional.py +12 -12
- telegrinder/tools/global_context/__init__.py +7 -7
- telegrinder/tools/global_context/abc.py +63 -63
- telegrinder/tools/global_context/global_context.py +412 -412
- telegrinder/tools/global_context/telegrinder_ctx.py +27 -27
- telegrinder/tools/i18n/__init__.py +7 -7
- telegrinder/tools/i18n/abc.py +30 -30
- telegrinder/tools/i18n/middleware/__init__.py +3 -3
- telegrinder/tools/i18n/middleware/abc.py +25 -25
- telegrinder/tools/i18n/simple.py +43 -43
- telegrinder/tools/kb_set/__init__.py +4 -4
- telegrinder/tools/kb_set/base.py +15 -15
- telegrinder/tools/kb_set/yaml.py +63 -63
- telegrinder/tools/keyboard.py +132 -132
- telegrinder/tools/limited_dict.py +37 -37
- telegrinder/tools/loop_wrapper/__init__.py +4 -4
- telegrinder/tools/loop_wrapper/abc.py +15 -15
- telegrinder/tools/loop_wrapper/loop_wrapper.py +224 -224
- telegrinder/tools/magic.py +157 -157
- telegrinder/tools/parse_mode.py +6 -6
- telegrinder/tools/state_storage/__init__.py +4 -4
- telegrinder/tools/state_storage/abc.py +35 -35
- telegrinder/tools/state_storage/memory.py +25 -25
- telegrinder/types/__init__.py +260 -260
- telegrinder/types/enums.py +701 -701
- telegrinder/types/methods.py +4633 -4633
- telegrinder/types/objects.py +6950 -8561
- telegrinder/verification_utils.py +32 -32
- {telegrinder-0.3.3.post1.dist-info → telegrinder-0.3.4.post1.dist-info}/LICENSE +22 -22
- {telegrinder-0.3.3.post1.dist-info → telegrinder-0.3.4.post1.dist-info}/METADATA +1 -1
- telegrinder-0.3.4.post1.dist-info/RECORD +165 -0
- telegrinder-0.3.3.post1.dist-info/RECORD +0 -164
- {telegrinder-0.3.3.post1.dist-info → telegrinder-0.3.4.post1.dist-info}/WHEEL +0 -0
telegrinder/bot/__init__.py
CHANGED
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
from telegrinder.bot.bot import Telegrinder
|
|
2
|
-
from telegrinder.bot.cute_types import (
|
|
3
|
-
BaseCute,
|
|
4
|
-
CallbackQueryCute,
|
|
5
|
-
ChatJoinRequestCute,
|
|
6
|
-
ChatMemberUpdatedCute,
|
|
7
|
-
InlineQueryCute,
|
|
8
|
-
MessageCute,
|
|
9
|
-
UpdateCute,
|
|
10
|
-
)
|
|
11
|
-
from telegrinder.bot.dispatch import (
|
|
12
|
-
CALLBACK_QUERY_FOR_MESSAGE,
|
|
13
|
-
CALLBACK_QUERY_FROM_CHAT,
|
|
14
|
-
CALLBACK_QUERY_IN_CHAT_FOR_MESSAGE,
|
|
15
|
-
MESSAGE_FROM_USER,
|
|
16
|
-
MESSAGE_FROM_USER_IN_CHAT,
|
|
17
|
-
MESSAGE_IN_CHAT,
|
|
18
|
-
ABCDispatch,
|
|
19
|
-
ABCHandler,
|
|
20
|
-
ABCMiddleware,
|
|
21
|
-
ABCReturnManager,
|
|
22
|
-
ABCStateView,
|
|
23
|
-
ABCView,
|
|
24
|
-
AudioReplyHandler,
|
|
25
|
-
BaseReturnManager,
|
|
26
|
-
BaseStateView,
|
|
27
|
-
BaseView,
|
|
28
|
-
CallbackQueryReturnManager,
|
|
29
|
-
CallbackQueryView,
|
|
30
|
-
ChatJoinRequestView,
|
|
31
|
-
ChatMemberView,
|
|
32
|
-
Context,
|
|
33
|
-
Dispatch,
|
|
34
|
-
DocumentReplyHandler,
|
|
35
|
-
FuncHandler,
|
|
36
|
-
Hasher,
|
|
37
|
-
InlineQueryReturnManager,
|
|
38
|
-
Manager,
|
|
39
|
-
MediaGroupReplyHandler,
|
|
40
|
-
MessageReplyHandler,
|
|
41
|
-
MessageReturnManager,
|
|
42
|
-
MessageView,
|
|
43
|
-
PhotoReplyHandler,
|
|
44
|
-
RawEventView,
|
|
45
|
-
ShortState,
|
|
46
|
-
StateViewHasher,
|
|
47
|
-
StickerReplyHandler,
|
|
48
|
-
VideoReplyHandler,
|
|
49
|
-
ViewBox,
|
|
50
|
-
WaiterMachine,
|
|
51
|
-
clear_wm_storage_worker,
|
|
52
|
-
register_manager,
|
|
53
|
-
)
|
|
54
|
-
from telegrinder.bot.polling import ABCPolling, Polling
|
|
55
|
-
from telegrinder.bot.rules import (
|
|
56
|
-
ABCRule,
|
|
57
|
-
CallbackQueryRule,
|
|
58
|
-
ChatJoinRequestRule,
|
|
59
|
-
InlineQueryRule,
|
|
60
|
-
MessageRule,
|
|
61
|
-
)
|
|
62
|
-
from telegrinder.bot.scenario import ABCScenario, Checkbox, Choice
|
|
63
|
-
|
|
64
|
-
__all__ = (
|
|
1
|
+
from telegrinder.bot.bot import Telegrinder
|
|
2
|
+
from telegrinder.bot.cute_types import (
|
|
3
|
+
BaseCute,
|
|
4
|
+
CallbackQueryCute,
|
|
5
|
+
ChatJoinRequestCute,
|
|
6
|
+
ChatMemberUpdatedCute,
|
|
7
|
+
InlineQueryCute,
|
|
8
|
+
MessageCute,
|
|
9
|
+
UpdateCute,
|
|
10
|
+
)
|
|
11
|
+
from telegrinder.bot.dispatch import (
|
|
12
|
+
CALLBACK_QUERY_FOR_MESSAGE,
|
|
13
|
+
CALLBACK_QUERY_FROM_CHAT,
|
|
14
|
+
CALLBACK_QUERY_IN_CHAT_FOR_MESSAGE,
|
|
15
|
+
MESSAGE_FROM_USER,
|
|
16
|
+
MESSAGE_FROM_USER_IN_CHAT,
|
|
17
|
+
MESSAGE_IN_CHAT,
|
|
18
|
+
ABCDispatch,
|
|
19
|
+
ABCHandler,
|
|
20
|
+
ABCMiddleware,
|
|
21
|
+
ABCReturnManager,
|
|
22
|
+
ABCStateView,
|
|
23
|
+
ABCView,
|
|
24
|
+
AudioReplyHandler,
|
|
25
|
+
BaseReturnManager,
|
|
26
|
+
BaseStateView,
|
|
27
|
+
BaseView,
|
|
28
|
+
CallbackQueryReturnManager,
|
|
29
|
+
CallbackQueryView,
|
|
30
|
+
ChatJoinRequestView,
|
|
31
|
+
ChatMemberView,
|
|
32
|
+
Context,
|
|
33
|
+
Dispatch,
|
|
34
|
+
DocumentReplyHandler,
|
|
35
|
+
FuncHandler,
|
|
36
|
+
Hasher,
|
|
37
|
+
InlineQueryReturnManager,
|
|
38
|
+
Manager,
|
|
39
|
+
MediaGroupReplyHandler,
|
|
40
|
+
MessageReplyHandler,
|
|
41
|
+
MessageReturnManager,
|
|
42
|
+
MessageView,
|
|
43
|
+
PhotoReplyHandler,
|
|
44
|
+
RawEventView,
|
|
45
|
+
ShortState,
|
|
46
|
+
StateViewHasher,
|
|
47
|
+
StickerReplyHandler,
|
|
48
|
+
VideoReplyHandler,
|
|
49
|
+
ViewBox,
|
|
50
|
+
WaiterMachine,
|
|
51
|
+
clear_wm_storage_worker,
|
|
52
|
+
register_manager,
|
|
53
|
+
)
|
|
54
|
+
from telegrinder.bot.polling import ABCPolling, Polling
|
|
55
|
+
from telegrinder.bot.rules import (
|
|
56
|
+
ABCRule,
|
|
57
|
+
CallbackQueryRule,
|
|
58
|
+
ChatJoinRequestRule,
|
|
59
|
+
InlineQueryRule,
|
|
60
|
+
MessageRule,
|
|
61
|
+
)
|
|
62
|
+
from telegrinder.bot.scenario import ABCScenario, Checkbox, Choice
|
|
63
|
+
|
|
64
|
+
__all__ = (
|
|
65
65
|
"ABCDispatch",
|
|
66
66
|
"ABCHandler",
|
|
67
67
|
"ABCMiddleware",
|
|
@@ -120,5 +120,5 @@ __all__ = (
|
|
|
120
120
|
"ViewBox",
|
|
121
121
|
"WaiterMachine",
|
|
122
122
|
"clear_wm_storage_worker",
|
|
123
|
-
"register_manager",
|
|
124
|
-
)
|
|
123
|
+
"register_manager",
|
|
124
|
+
)
|
telegrinder/bot/bot.py
CHANGED
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
import typing_extensions as typing
|
|
2
|
-
|
|
3
|
-
from telegrinder.api.api import API
|
|
4
|
-
from telegrinder.bot.dispatch.abc import ABCDispatch
|
|
5
|
-
from telegrinder.bot.dispatch.dispatch import Dispatch
|
|
6
|
-
from telegrinder.bot.polling.abc import ABCPolling
|
|
7
|
-
from telegrinder.bot.polling.polling import Polling
|
|
8
|
-
from telegrinder.modules import logger
|
|
9
|
-
from telegrinder.tools.loop_wrapper import ABCLoopWrapper
|
|
10
|
-
from telegrinder.tools.loop_wrapper.loop_wrapper import LoopWrapper
|
|
11
|
-
|
|
12
|
-
DispatchT = typing.TypeVar("DispatchT", bound=ABCDispatch, default=Dispatch)
|
|
13
|
-
PollingT = typing.TypeVar("PollingT", bound=ABCPolling, default=Polling)
|
|
14
|
-
LoopWrapperT = typing.TypeVar("LoopWrapperT", bound=ABCLoopWrapper, default=LoopWrapper)
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class Telegrinder(typing.Generic[DispatchT, PollingT, LoopWrapperT]):
|
|
18
|
-
def __init__(
|
|
19
|
-
self,
|
|
20
|
-
api: API,
|
|
21
|
-
*,
|
|
22
|
-
polling: PollingT | None = None,
|
|
23
|
-
dispatch: DispatchT | None = None,
|
|
24
|
-
loop_wrapper: LoopWrapperT | None = None,
|
|
25
|
-
) -> None:
|
|
26
|
-
self.api = api
|
|
27
|
-
self.dispatch = typing.cast(DispatchT, dispatch or Dispatch())
|
|
28
|
-
self.polling = typing.cast(PollingT, polling or Polling(api))
|
|
29
|
-
self.loop_wrapper = typing.cast(LoopWrapperT, loop_wrapper or LoopWrapper())
|
|
30
|
-
|
|
31
|
-
def __repr__(self) -> str:
|
|
32
|
-
return "<{}: api={!r}, dispatch={!r}, polling={!r}, loop_wrapper={!r}>".format(
|
|
33
|
-
self.__class__.__name__,
|
|
34
|
-
self.api,
|
|
35
|
-
self.dispatch,
|
|
36
|
-
self.polling,
|
|
37
|
-
self.loop_wrapper,
|
|
38
|
-
)
|
|
39
|
-
|
|
40
|
-
@property
|
|
41
|
-
def on(self) -> DispatchT:
|
|
42
|
-
return self.dispatch
|
|
43
|
-
|
|
44
|
-
async def reset_webhook(self) -> None:
|
|
45
|
-
if not (await self.api.get_webhook_info()).unwrap().url:
|
|
46
|
-
return
|
|
47
|
-
await self.api.delete_webhook()
|
|
48
|
-
|
|
49
|
-
async def run_polling(
|
|
50
|
-
self,
|
|
51
|
-
*,
|
|
52
|
-
offset: int = 0,
|
|
53
|
-
skip_updates: bool = False,
|
|
54
|
-
) -> None:
|
|
55
|
-
if skip_updates:
|
|
56
|
-
logger.debug("Dropping pending updates")
|
|
57
|
-
await self.reset_webhook()
|
|
58
|
-
await self.api.delete_webhook(drop_pending_updates=True)
|
|
59
|
-
self.polling.offset = offset
|
|
60
|
-
|
|
61
|
-
async for updates in self.polling.listen():
|
|
62
|
-
for update in updates:
|
|
63
|
-
logger.debug(
|
|
64
|
-
"Received update (update_id={}, update_type={!r})",
|
|
65
|
-
update.update_id,
|
|
66
|
-
update.update_type.name,
|
|
67
|
-
)
|
|
68
|
-
self.loop_wrapper.add_task(self.dispatch.feed(update, self.api))
|
|
69
|
-
|
|
70
|
-
def run_forever(self, *, offset: int = 0, skip_updates: bool = False) -> None:
|
|
71
|
-
logger.debug("Running blocking polling (id={})", self.api.id)
|
|
72
|
-
self.loop_wrapper.add_task(self.run_polling(offset=offset, skip_updates=skip_updates))
|
|
73
|
-
self.loop_wrapper.run_event_loop()
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
__all__ = ("Telegrinder",)
|
|
1
|
+
import typing_extensions as typing
|
|
2
|
+
|
|
3
|
+
from telegrinder.api.api import API
|
|
4
|
+
from telegrinder.bot.dispatch.abc import ABCDispatch
|
|
5
|
+
from telegrinder.bot.dispatch.dispatch import Dispatch
|
|
6
|
+
from telegrinder.bot.polling.abc import ABCPolling
|
|
7
|
+
from telegrinder.bot.polling.polling import Polling
|
|
8
|
+
from telegrinder.modules import logger
|
|
9
|
+
from telegrinder.tools.loop_wrapper import ABCLoopWrapper
|
|
10
|
+
from telegrinder.tools.loop_wrapper.loop_wrapper import LoopWrapper
|
|
11
|
+
|
|
12
|
+
DispatchT = typing.TypeVar("DispatchT", bound=ABCDispatch, default=Dispatch)
|
|
13
|
+
PollingT = typing.TypeVar("PollingT", bound=ABCPolling, default=Polling)
|
|
14
|
+
LoopWrapperT = typing.TypeVar("LoopWrapperT", bound=ABCLoopWrapper, default=LoopWrapper)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class Telegrinder(typing.Generic[DispatchT, PollingT, LoopWrapperT]):
|
|
18
|
+
def __init__(
|
|
19
|
+
self,
|
|
20
|
+
api: API,
|
|
21
|
+
*,
|
|
22
|
+
polling: PollingT | None = None,
|
|
23
|
+
dispatch: DispatchT | None = None,
|
|
24
|
+
loop_wrapper: LoopWrapperT | None = None,
|
|
25
|
+
) -> None:
|
|
26
|
+
self.api = api
|
|
27
|
+
self.dispatch = typing.cast(DispatchT, dispatch or Dispatch())
|
|
28
|
+
self.polling = typing.cast(PollingT, polling or Polling(api))
|
|
29
|
+
self.loop_wrapper = typing.cast(LoopWrapperT, loop_wrapper or LoopWrapper())
|
|
30
|
+
|
|
31
|
+
def __repr__(self) -> str:
|
|
32
|
+
return "<{}: api={!r}, dispatch={!r}, polling={!r}, loop_wrapper={!r}>".format(
|
|
33
|
+
self.__class__.__name__,
|
|
34
|
+
self.api,
|
|
35
|
+
self.dispatch,
|
|
36
|
+
self.polling,
|
|
37
|
+
self.loop_wrapper,
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
@property
|
|
41
|
+
def on(self) -> DispatchT:
|
|
42
|
+
return self.dispatch
|
|
43
|
+
|
|
44
|
+
async def reset_webhook(self) -> None:
|
|
45
|
+
if not (await self.api.get_webhook_info()).unwrap().url:
|
|
46
|
+
return
|
|
47
|
+
await self.api.delete_webhook()
|
|
48
|
+
|
|
49
|
+
async def run_polling(
|
|
50
|
+
self,
|
|
51
|
+
*,
|
|
52
|
+
offset: int = 0,
|
|
53
|
+
skip_updates: bool = False,
|
|
54
|
+
) -> None:
|
|
55
|
+
if skip_updates:
|
|
56
|
+
logger.debug("Dropping pending updates")
|
|
57
|
+
await self.reset_webhook()
|
|
58
|
+
await self.api.delete_webhook(drop_pending_updates=True)
|
|
59
|
+
self.polling.offset = offset
|
|
60
|
+
|
|
61
|
+
async for updates in self.polling.listen():
|
|
62
|
+
for update in updates:
|
|
63
|
+
logger.debug(
|
|
64
|
+
"Received update (update_id={}, update_type={!r})",
|
|
65
|
+
update.update_id,
|
|
66
|
+
update.update_type.name,
|
|
67
|
+
)
|
|
68
|
+
self.loop_wrapper.add_task(self.dispatch.feed(update, self.api))
|
|
69
|
+
|
|
70
|
+
def run_forever(self, *, offset: int = 0, skip_updates: bool = False) -> None:
|
|
71
|
+
logger.debug("Running blocking polling (id={})", self.api.id)
|
|
72
|
+
self.loop_wrapper.add_task(self.run_polling(offset=offset, skip_updates=skip_updates))
|
|
73
|
+
self.loop_wrapper.run_event_loop()
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
__all__ = ("Telegrinder",)
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
from telegrinder.bot.cute_types.base import BaseCute
|
|
2
|
-
from telegrinder.bot.cute_types.callback_query import CallbackQueryCute
|
|
3
|
-
from telegrinder.bot.cute_types.chat_join_request import ChatJoinRequestCute
|
|
4
|
-
from telegrinder.bot.cute_types.chat_member_updated import ChatMemberUpdatedCute
|
|
5
|
-
from telegrinder.bot.cute_types.inline_query import InlineQueryCute
|
|
6
|
-
from telegrinder.bot.cute_types.message import MessageCute
|
|
7
|
-
from telegrinder.bot.cute_types.update import UpdateCute
|
|
8
|
-
|
|
9
|
-
__all__ = (
|
|
10
|
-
"BaseCute",
|
|
11
|
-
"CallbackQueryCute",
|
|
12
|
-
"ChatJoinRequestCute",
|
|
13
|
-
"ChatMemberUpdatedCute",
|
|
14
|
-
"InlineQueryCute",
|
|
15
|
-
"MessageCute",
|
|
16
|
-
"UpdateCute",
|
|
17
|
-
)
|
|
1
|
+
from telegrinder.bot.cute_types.base import BaseCute
|
|
2
|
+
from telegrinder.bot.cute_types.callback_query import CallbackQueryCute
|
|
3
|
+
from telegrinder.bot.cute_types.chat_join_request import ChatJoinRequestCute
|
|
4
|
+
from telegrinder.bot.cute_types.chat_member_updated import ChatMemberUpdatedCute
|
|
5
|
+
from telegrinder.bot.cute_types.inline_query import InlineQueryCute
|
|
6
|
+
from telegrinder.bot.cute_types.message import MessageCute
|
|
7
|
+
from telegrinder.bot.cute_types.update import UpdateCute
|
|
8
|
+
|
|
9
|
+
__all__ = (
|
|
10
|
+
"BaseCute",
|
|
11
|
+
"CallbackQueryCute",
|
|
12
|
+
"ChatJoinRequestCute",
|
|
13
|
+
"ChatMemberUpdatedCute",
|
|
14
|
+
"InlineQueryCute",
|
|
15
|
+
"MessageCute",
|
|
16
|
+
"UpdateCute",
|
|
17
|
+
)
|