telegrinder 0.3.4__py3-none-any.whl → 0.4.0__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.

Files changed (192) hide show
  1. telegrinder/__init__.py +148 -149
  2. telegrinder/api/__init__.py +9 -8
  3. telegrinder/api/api.py +101 -93
  4. telegrinder/api/error.py +20 -16
  5. telegrinder/api/response.py +20 -20
  6. telegrinder/api/token.py +36 -36
  7. telegrinder/bot/__init__.py +72 -66
  8. telegrinder/bot/bot.py +83 -76
  9. telegrinder/bot/cute_types/__init__.py +19 -17
  10. telegrinder/bot/cute_types/base.py +184 -258
  11. telegrinder/bot/cute_types/callback_query.py +400 -385
  12. telegrinder/bot/cute_types/chat_join_request.py +62 -61
  13. telegrinder/bot/cute_types/chat_member_updated.py +157 -160
  14. telegrinder/bot/cute_types/inline_query.py +44 -43
  15. telegrinder/bot/cute_types/message.py +2590 -2637
  16. telegrinder/bot/cute_types/pre_checkout_query.py +42 -0
  17. telegrinder/bot/cute_types/update.py +112 -104
  18. telegrinder/bot/cute_types/utils.py +62 -95
  19. telegrinder/bot/dispatch/__init__.py +59 -55
  20. telegrinder/bot/dispatch/abc.py +76 -77
  21. telegrinder/bot/dispatch/context.py +96 -98
  22. telegrinder/bot/dispatch/dispatch.py +254 -202
  23. telegrinder/bot/dispatch/handler/__init__.py +13 -13
  24. telegrinder/bot/dispatch/handler/abc.py +23 -24
  25. telegrinder/bot/dispatch/handler/audio_reply.py +44 -44
  26. telegrinder/bot/dispatch/handler/base.py +57 -57
  27. telegrinder/bot/dispatch/handler/document_reply.py +44 -44
  28. telegrinder/bot/dispatch/handler/func.py +129 -135
  29. telegrinder/bot/dispatch/handler/media_group_reply.py +44 -43
  30. telegrinder/bot/dispatch/handler/message_reply.py +36 -36
  31. telegrinder/bot/dispatch/handler/photo_reply.py +44 -44
  32. telegrinder/bot/dispatch/handler/sticker_reply.py +37 -37
  33. telegrinder/bot/dispatch/handler/video_reply.py +44 -44
  34. telegrinder/bot/dispatch/middleware/__init__.py +3 -3
  35. telegrinder/bot/dispatch/middleware/abc.py +97 -22
  36. telegrinder/bot/dispatch/middleware/global_middleware.py +70 -0
  37. telegrinder/bot/dispatch/process.py +151 -157
  38. telegrinder/bot/dispatch/return_manager/__init__.py +15 -13
  39. telegrinder/bot/dispatch/return_manager/abc.py +104 -108
  40. telegrinder/bot/dispatch/return_manager/callback_query.py +20 -20
  41. telegrinder/bot/dispatch/return_manager/inline_query.py +15 -15
  42. telegrinder/bot/dispatch/return_manager/message.py +36 -36
  43. telegrinder/bot/dispatch/return_manager/pre_checkout_query.py +20 -0
  44. telegrinder/bot/dispatch/view/__init__.py +15 -13
  45. telegrinder/bot/dispatch/view/abc.py +45 -41
  46. telegrinder/bot/dispatch/view/base.py +231 -200
  47. telegrinder/bot/dispatch/view/box.py +140 -129
  48. telegrinder/bot/dispatch/view/callback_query.py +16 -17
  49. telegrinder/bot/dispatch/view/chat_join_request.py +11 -16
  50. telegrinder/bot/dispatch/view/chat_member.py +37 -39
  51. telegrinder/bot/dispatch/view/inline_query.py +16 -17
  52. telegrinder/bot/dispatch/view/message.py +43 -44
  53. telegrinder/bot/dispatch/view/pre_checkout_query.py +16 -0
  54. telegrinder/bot/dispatch/view/raw.py +116 -114
  55. telegrinder/bot/dispatch/waiter_machine/__init__.py +17 -17
  56. telegrinder/bot/dispatch/waiter_machine/actions.py +14 -13
  57. telegrinder/bot/dispatch/waiter_machine/hasher/__init__.py +8 -8
  58. telegrinder/bot/dispatch/waiter_machine/hasher/callback.py +55 -55
  59. telegrinder/bot/dispatch/waiter_machine/hasher/hasher.py +59 -57
  60. telegrinder/bot/dispatch/waiter_machine/hasher/message.py +51 -51
  61. telegrinder/bot/dispatch/waiter_machine/hasher/state.py +20 -19
  62. telegrinder/bot/dispatch/waiter_machine/machine.py +251 -172
  63. telegrinder/bot/dispatch/waiter_machine/middleware.py +94 -89
  64. telegrinder/bot/dispatch/waiter_machine/short_state.py +57 -68
  65. telegrinder/bot/polling/__init__.py +4 -4
  66. telegrinder/bot/polling/abc.py +25 -25
  67. telegrinder/bot/polling/polling.py +139 -131
  68. telegrinder/bot/rules/__init__.py +85 -62
  69. telegrinder/bot/rules/abc.py +213 -206
  70. telegrinder/bot/rules/callback_data.py +122 -163
  71. telegrinder/bot/rules/chat_join.py +45 -43
  72. telegrinder/bot/rules/command.py +126 -126
  73. telegrinder/bot/rules/enum_text.py +33 -36
  74. telegrinder/bot/rules/func.py +28 -26
  75. telegrinder/bot/rules/fuzzy.py +24 -24
  76. telegrinder/bot/rules/id.py +24 -0
  77. telegrinder/bot/rules/inline.py +58 -56
  78. telegrinder/bot/rules/integer.py +21 -20
  79. telegrinder/bot/rules/is_from.py +127 -127
  80. telegrinder/bot/rules/logic.py +18 -0
  81. telegrinder/bot/rules/markup.py +42 -43
  82. telegrinder/bot/rules/mention.py +14 -14
  83. telegrinder/bot/rules/message.py +15 -17
  84. telegrinder/bot/rules/message_entities.py +33 -35
  85. telegrinder/bot/rules/node.py +33 -27
  86. telegrinder/bot/rules/payload.py +81 -0
  87. telegrinder/bot/rules/payment_invoice.py +29 -0
  88. telegrinder/bot/rules/regex.py +36 -37
  89. telegrinder/bot/rules/rule_enum.py +72 -72
  90. telegrinder/bot/rules/start.py +42 -42
  91. telegrinder/bot/rules/state.py +35 -37
  92. telegrinder/bot/rules/text.py +38 -33
  93. telegrinder/bot/rules/update.py +15 -15
  94. telegrinder/bot/scenario/__init__.py +5 -5
  95. telegrinder/bot/scenario/abc.py +17 -19
  96. telegrinder/bot/scenario/checkbox.py +174 -176
  97. telegrinder/bot/scenario/choice.py +48 -51
  98. telegrinder/client/__init__.py +12 -4
  99. telegrinder/client/abc.py +100 -75
  100. telegrinder/client/aiohttp.py +134 -130
  101. telegrinder/client/form_data.py +31 -0
  102. telegrinder/client/sonic.py +212 -0
  103. telegrinder/model.py +208 -315
  104. telegrinder/modules.py +239 -237
  105. telegrinder/msgspec_json.py +14 -14
  106. telegrinder/msgspec_utils.py +478 -410
  107. telegrinder/node/__init__.py +86 -25
  108. telegrinder/node/attachment.py +163 -87
  109. telegrinder/node/base.py +288 -160
  110. telegrinder/node/callback_query.py +54 -53
  111. telegrinder/node/command.py +34 -33
  112. telegrinder/node/composer.py +163 -198
  113. telegrinder/node/container.py +33 -27
  114. telegrinder/node/either.py +82 -0
  115. telegrinder/node/event.py +54 -65
  116. telegrinder/node/file.py +51 -0
  117. telegrinder/node/me.py +15 -16
  118. telegrinder/node/payload.py +78 -0
  119. telegrinder/node/polymorphic.py +67 -48
  120. telegrinder/node/rule.py +72 -76
  121. telegrinder/node/scope.py +36 -38
  122. telegrinder/node/source.py +87 -71
  123. telegrinder/node/text.py +53 -41
  124. telegrinder/node/tools/__init__.py +3 -3
  125. telegrinder/node/tools/generator.py +36 -40
  126. telegrinder/py.typed +0 -0
  127. telegrinder/rules.py +1 -62
  128. telegrinder/tools/__init__.py +152 -93
  129. telegrinder/tools/adapter/__init__.py +19 -0
  130. telegrinder/tools/adapter/abc.py +49 -0
  131. telegrinder/tools/adapter/dataclass.py +56 -0
  132. telegrinder/{bot/rules → tools}/adapter/errors.py +5 -5
  133. telegrinder/{bot/rules → tools}/adapter/event.py +63 -65
  134. telegrinder/{bot/rules → tools}/adapter/node.py +46 -48
  135. telegrinder/{bot/rules → tools}/adapter/raw_event.py +27 -27
  136. telegrinder/{bot/rules → tools}/adapter/raw_update.py +30 -30
  137. telegrinder/tools/buttons.py +106 -80
  138. telegrinder/tools/callback_data_serilization/__init__.py +5 -0
  139. telegrinder/tools/callback_data_serilization/abc.py +51 -0
  140. telegrinder/tools/callback_data_serilization/json_ser.py +60 -0
  141. telegrinder/tools/callback_data_serilization/msgpack_ser.py +172 -0
  142. telegrinder/tools/error_handler/__init__.py +7 -7
  143. telegrinder/tools/error_handler/abc.py +30 -33
  144. telegrinder/tools/error_handler/error.py +9 -9
  145. telegrinder/tools/error_handler/error_handler.py +179 -193
  146. telegrinder/tools/formatting/__init__.py +83 -63
  147. telegrinder/tools/formatting/deep_links.py +541 -0
  148. telegrinder/tools/formatting/{html.py → html_formatter.py} +266 -294
  149. telegrinder/tools/formatting/spec_html_formats.py +71 -117
  150. telegrinder/tools/functional.py +8 -12
  151. telegrinder/tools/global_context/__init__.py +7 -7
  152. telegrinder/tools/global_context/abc.py +63 -63
  153. telegrinder/tools/global_context/global_context.py +387 -412
  154. telegrinder/tools/global_context/telegrinder_ctx.py +27 -27
  155. telegrinder/tools/i18n/__init__.py +7 -7
  156. telegrinder/tools/i18n/abc.py +30 -30
  157. telegrinder/tools/i18n/middleware/__init__.py +3 -3
  158. telegrinder/tools/i18n/middleware/abc.py +22 -25
  159. telegrinder/tools/i18n/simple.py +43 -43
  160. telegrinder/tools/input_file_directory.py +30 -0
  161. telegrinder/tools/keyboard.py +128 -128
  162. telegrinder/tools/lifespan.py +105 -0
  163. telegrinder/tools/limited_dict.py +32 -37
  164. telegrinder/tools/loop_wrapper/__init__.py +4 -4
  165. telegrinder/tools/loop_wrapper/abc.py +20 -15
  166. telegrinder/tools/loop_wrapper/loop_wrapper.py +169 -224
  167. telegrinder/tools/magic.py +307 -157
  168. telegrinder/tools/parse_mode.py +6 -6
  169. telegrinder/tools/state_storage/__init__.py +4 -4
  170. telegrinder/tools/state_storage/abc.py +31 -35
  171. telegrinder/tools/state_storage/memory.py +25 -25
  172. telegrinder/tools/strings.py +13 -0
  173. telegrinder/types/__init__.py +268 -260
  174. telegrinder/types/enums.py +711 -701
  175. telegrinder/types/input_file.py +51 -0
  176. telegrinder/types/methods.py +5055 -4633
  177. telegrinder/types/objects.py +7058 -6950
  178. telegrinder/verification_utils.py +30 -32
  179. {telegrinder-0.3.4.dist-info → telegrinder-0.4.0.dist-info}/LICENSE +22 -22
  180. telegrinder-0.4.0.dist-info/METADATA +144 -0
  181. telegrinder-0.4.0.dist-info/RECORD +182 -0
  182. {telegrinder-0.3.4.dist-info → telegrinder-0.4.0.dist-info}/WHEEL +1 -1
  183. telegrinder/bot/rules/adapter/__init__.py +0 -17
  184. telegrinder/bot/rules/adapter/abc.py +0 -31
  185. telegrinder/node/message.py +0 -14
  186. telegrinder/node/update.py +0 -15
  187. telegrinder/tools/formatting/links.py +0 -38
  188. telegrinder/tools/kb_set/__init__.py +0 -4
  189. telegrinder/tools/kb_set/base.py +0 -15
  190. telegrinder/tools/kb_set/yaml.py +0 -63
  191. telegrinder-0.3.4.dist-info/METADATA +0 -110
  192. telegrinder-0.3.4.dist-info/RECORD +0 -165
@@ -1,129 +1,140 @@
1
- import dataclasses
2
-
3
- import typing_extensions as typing
4
-
5
- from telegrinder.bot.dispatch.view import (
6
- callback_query,
7
- chat_join_request,
8
- chat_member,
9
- inline_query,
10
- message,
11
- raw,
12
- )
13
- from telegrinder.bot.dispatch.view.abc import ABCEventRawView, ABCView
14
- from telegrinder.types.enums import UpdateType
15
-
16
- CallbackQueryView = typing.TypeVar(
17
- "CallbackQueryView", bound=ABCView, default=callback_query.CallbackQueryView
18
- )
19
- ChatJoinRequestView = typing.TypeVar(
20
- "ChatJoinRequestView", bound=ABCView, default=chat_join_request.ChatJoinRequestView
21
- )
22
- ChatMemberView = typing.TypeVar("ChatMemberView", bound=ABCView, default=chat_member.ChatMemberView)
23
- InlineQueryView = typing.TypeVar("InlineQueryView", bound=ABCView, default=inline_query.InlineQueryView)
24
- MessageView = typing.TypeVar("MessageView", bound=ABCView, default=message.MessageView)
25
- RawEventView = typing.TypeVar("RawEventView", bound=ABCEventRawView, default=raw.RawEventView)
26
-
27
-
28
- @dataclasses.dataclass(kw_only=True)
29
- class ViewBox(
30
- typing.Generic[
31
- CallbackQueryView,
32
- ChatJoinRequestView,
33
- ChatMemberView,
34
- InlineQueryView,
35
- MessageView,
36
- RawEventView,
37
- ],
38
- ):
39
- callback_query_view: dataclasses.InitVar[CallbackQueryView | None] = None
40
- chat_join_request_view: dataclasses.InitVar[ChatJoinRequestView | None] = None
41
- chat_member_view: dataclasses.InitVar[ChatMemberView | None] = None
42
- my_chat_member_view: dataclasses.InitVar[ChatMemberView | None] = None
43
- inline_query_view: dataclasses.InitVar[InlineQueryView | None] = None
44
- message_view: dataclasses.InitVar[MessageView | None] = None
45
- business_message_view: dataclasses.InitVar[MessageView | None] = None
46
- channel_post_view: dataclasses.InitVar[MessageView | None] = None
47
- edited_message_view: dataclasses.InitVar[MessageView | None] = None
48
- edited_business_message_view: dataclasses.InitVar[MessageView | None] = None
49
- edited_channel_post_view: dataclasses.InitVar[MessageView | None] = None
50
- any_message_view: dataclasses.InitVar[MessageView | None] = None
51
- chat_member_updated_view: dataclasses.InitVar[ChatMemberView | None] = None
52
- raw_event_view: dataclasses.InitVar[RawEventView | None] = None
53
-
54
- def __post_init__(
55
- self,
56
- callback_query_view: CallbackQueryView | None = None,
57
- chat_join_request_view: ChatJoinRequestView | None = None,
58
- chat_member_view: ChatMemberView | None = None,
59
- my_chat_member_view: ChatMemberView | None = None,
60
- inline_query_view: InlineQueryView | None = None,
61
- message_view: MessageView | None = None,
62
- business_message_view: MessageView | None = None,
63
- channel_post_view: MessageView | None = None,
64
- edited_message_view: MessageView | None = None,
65
- edited_business_message_view: MessageView | None = None,
66
- edited_channel_post_view: MessageView | None = None,
67
- any_message_view: MessageView | None = None,
68
- chat_member_updated_view: ChatMemberView | None = None,
69
- raw_event_view: RawEventView | None = None,
70
- ) -> None:
71
- self.callback_query = typing.cast(
72
- CallbackQueryView,
73
- callback_query_view or callback_query.CallbackQueryView(),
74
- )
75
- self.chat_join_request = typing.cast(
76
- ChatJoinRequestView,
77
- chat_join_request_view or chat_join_request.ChatJoinRequestView(),
78
- )
79
- self.chat_member = typing.cast(
80
- ChatMemberView,
81
- chat_member_view or chat_member.ChatMemberView(update_type=UpdateType.CHAT_MEMBER),
82
- )
83
- self.my_chat_member = typing.cast(
84
- ChatMemberView,
85
- my_chat_member_view or chat_member.ChatMemberView(update_type=UpdateType.MY_CHAT_MEMBER),
86
- )
87
- self.inline_query = typing.cast(
88
- InlineQueryView,
89
- inline_query_view or inline_query.InlineQueryView(),
90
- )
91
- self.message = typing.cast(
92
- MessageView,
93
- message_view or message.MessageView(update_type=UpdateType.MESSAGE),
94
- )
95
- self.business_message = typing.cast(
96
- MessageView,
97
- business_message_view or message.MessageView(update_type=UpdateType.BUSINESS_MESSAGE),
98
- )
99
- self.channel_post = typing.cast(
100
- MessageView,
101
- channel_post_view or message.MessageView(update_type=UpdateType.CHANNEL_POST),
102
- )
103
- self.edited_message = typing.cast(
104
- MessageView,
105
- edited_message_view or message.MessageView(update_type=UpdateType.EDITED_MESSAGE),
106
- )
107
- self.edited_business_message = typing.cast(
108
- MessageView,
109
- edited_business_message_view
110
- or message.MessageView(update_type=UpdateType.EDITED_BUSINESS_MESSAGE),
111
- )
112
- self.edited_channel_post = typing.cast(
113
- MessageView,
114
- edited_channel_post_view or message.MessageView(update_type=UpdateType.EDITED_CHANNEL_POST),
115
- )
116
- self.any_message = typing.cast(MessageView, any_message_view or message.MessageView())
117
- self.chat_member_updated = typing.cast(
118
- ChatMemberView,
119
- chat_member_updated_view or chat_member.ChatMemberView(),
120
- )
121
- self.raw_event = typing.cast(RawEventView, raw_event_view or raw.RawEventView())
122
-
123
- def get_views(self) -> dict[str, ABCView]:
124
- """Get all views."""
125
-
126
- return {name: view for name, view in self.__dict__.items() if isinstance(view, ABCView)}
127
-
128
-
129
- __all__ = ("ViewBox",)
1
+ import dataclasses
2
+
3
+ import typing_extensions as typing
4
+
5
+ from telegrinder.bot.dispatch.view import (
6
+ callback_query,
7
+ chat_join_request,
8
+ chat_member,
9
+ inline_query,
10
+ message,
11
+ pre_checkout_query,
12
+ raw,
13
+ )
14
+ from telegrinder.bot.dispatch.view.abc import ABCEventRawView, ABCView
15
+ from telegrinder.types.enums import UpdateType
16
+
17
+ CallbackQueryView = typing.TypeVar(
18
+ "CallbackQueryView",
19
+ bound=ABCView,
20
+ default=callback_query.CallbackQueryView,
21
+ )
22
+ PreCheckoutQueryView = typing.TypeVar(
23
+ "PreCheckoutQueryView",
24
+ bound=ABCView,
25
+ default=pre_checkout_query.PreCheckoutQueryView,
26
+ )
27
+ ChatJoinRequestView = typing.TypeVar(
28
+ "ChatJoinRequestView",
29
+ bound=ABCView,
30
+ default=chat_join_request.ChatJoinRequestView,
31
+ )
32
+ ChatMemberView = typing.TypeVar("ChatMemberView", bound=ABCView, default=chat_member.ChatMemberView)
33
+ InlineQueryView = typing.TypeVar("InlineQueryView", bound=ABCView, default=inline_query.InlineQueryView)
34
+ MessageView = typing.TypeVar("MessageView", bound=ABCView, default=message.MessageView)
35
+ RawEventView = typing.TypeVar("RawEventView", bound=ABCEventRawView, default=raw.RawEventView)
36
+
37
+
38
+ @dataclasses.dataclass(kw_only=True)
39
+ class ViewBox(
40
+ typing.Generic[
41
+ CallbackQueryView,
42
+ ChatJoinRequestView,
43
+ ChatMemberView,
44
+ InlineQueryView,
45
+ MessageView,
46
+ PreCheckoutQueryView,
47
+ RawEventView,
48
+ ],
49
+ ):
50
+ callback_query_view: dataclasses.InitVar[CallbackQueryView | None] = None
51
+ chat_join_request_view: dataclasses.InitVar[ChatJoinRequestView | None] = None
52
+ chat_member_view: dataclasses.InitVar[ChatMemberView | None] = None
53
+ my_chat_member_view: dataclasses.InitVar[ChatMemberView | None] = None
54
+ inline_query_view: dataclasses.InitVar[InlineQueryView | None] = None
55
+ message_view: dataclasses.InitVar[MessageView | None] = None
56
+ business_message_view: dataclasses.InitVar[MessageView | None] = None
57
+ channel_post_view: dataclasses.InitVar[MessageView | None] = None
58
+ pre_checkout_query_view: dataclasses.InitVar[PreCheckoutQueryView | None] = None
59
+ edited_message_view: dataclasses.InitVar[MessageView | None] = None
60
+ edited_business_message_view: dataclasses.InitVar[MessageView | None] = None
61
+ edited_channel_post_view: dataclasses.InitVar[MessageView | None] = None
62
+ any_message_view: dataclasses.InitVar[MessageView | None] = None
63
+ chat_member_updated_view: dataclasses.InitVar[ChatMemberView | None] = None
64
+ raw_event_view: dataclasses.InitVar[RawEventView | None] = None
65
+
66
+ def __post_init__(
67
+ self,
68
+ callback_query_view: CallbackQueryView | None = None,
69
+ chat_join_request_view: ChatJoinRequestView | None = None,
70
+ chat_member_view: ChatMemberView | None = None,
71
+ my_chat_member_view: ChatMemberView | None = None,
72
+ inline_query_view: InlineQueryView | None = None,
73
+ message_view: MessageView | None = None,
74
+ business_message_view: MessageView | None = None,
75
+ channel_post_view: MessageView | None = None,
76
+ edited_message_view: MessageView | None = None,
77
+ edited_business_message_view: MessageView | None = None,
78
+ edited_channel_post_view: MessageView | None = None,
79
+ any_message_view: MessageView | None = None,
80
+ chat_member_updated_view: ChatMemberView | None = None,
81
+ pre_checkout_query_view: PreCheckoutQueryView | None = None,
82
+ raw_event_view: RawEventView | None = None,
83
+ ) -> None:
84
+ self.callback_query = typing.cast(
85
+ CallbackQueryView,
86
+ callback_query_view or callback_query.CallbackQueryView(),
87
+ )
88
+ self.chat_join_request = typing.cast(
89
+ ChatJoinRequestView,
90
+ chat_join_request_view or chat_join_request.ChatJoinRequestView(),
91
+ )
92
+ self.chat_member = typing.cast(
93
+ ChatMemberView,
94
+ chat_member_view or chat_member.ChatMemberView(update_type=UpdateType.CHAT_MEMBER),
95
+ )
96
+ self.my_chat_member = typing.cast(
97
+ ChatMemberView,
98
+ my_chat_member_view or chat_member.ChatMemberView(update_type=UpdateType.MY_CHAT_MEMBER),
99
+ )
100
+ self.inline_query = typing.cast(
101
+ InlineQueryView,
102
+ inline_query_view or inline_query.InlineQueryView(),
103
+ )
104
+ self.message = typing.cast(
105
+ MessageView,
106
+ message_view or message.MessageView(update_type=UpdateType.MESSAGE),
107
+ )
108
+ self.business_message = typing.cast(
109
+ MessageView,
110
+ business_message_view or message.MessageView(update_type=UpdateType.BUSINESS_MESSAGE),
111
+ )
112
+ self.channel_post = typing.cast(
113
+ MessageView,
114
+ channel_post_view or message.MessageView(update_type=UpdateType.CHANNEL_POST),
115
+ )
116
+ self.edited_message = typing.cast(
117
+ MessageView,
118
+ edited_message_view or message.MessageView(update_type=UpdateType.EDITED_MESSAGE),
119
+ )
120
+ self.edited_business_message = typing.cast(
121
+ MessageView,
122
+ edited_business_message_view or message.MessageView(update_type=UpdateType.EDITED_BUSINESS_MESSAGE),
123
+ )
124
+ self.edited_channel_post = typing.cast(
125
+ MessageView,
126
+ edited_channel_post_view or message.MessageView(update_type=UpdateType.EDITED_CHANNEL_POST),
127
+ )
128
+ self.pre_checkout_query = typing.cast(
129
+ PreCheckoutQueryView,
130
+ pre_checkout_query_view or pre_checkout_query.PreCheckoutQueryView(),
131
+ )
132
+ self.any_message = typing.cast(MessageView, any_message_view or message.MessageView())
133
+ self.chat_member_updated = typing.cast(
134
+ ChatMemberView,
135
+ chat_member_updated_view or chat_member.ChatMemberView(),
136
+ )
137
+ self.raw_event = typing.cast(RawEventView, raw_event_view or raw.RawEventView())
138
+
139
+
140
+ __all__ = ("ViewBox",)
@@ -1,17 +1,16 @@
1
- from telegrinder.bot.cute_types.callback_query import CallbackQueryCute
2
- from telegrinder.bot.dispatch.return_manager.callback_query import CallbackQueryReturnManager
3
- from telegrinder.bot.dispatch.view.base import BaseStateView
4
-
5
-
6
- class CallbackQueryView(BaseStateView[CallbackQueryCute]):
7
- def __init__(self) -> None:
8
- self.auto_rules = []
9
- self.handlers = []
10
- self.middlewares = []
11
- self.return_manager = CallbackQueryReturnManager()
12
-
13
- def get_state_key(self, event: CallbackQueryCute) -> int | None:
14
- return event.message_id.unwrap_or_none()
15
-
16
-
17
- __all__ = ("CallbackQueryView",)
1
+ from telegrinder.bot.cute_types.callback_query import CallbackQueryCute
2
+ from telegrinder.bot.dispatch.return_manager.callback_query import CallbackQueryReturnManager
3
+ from telegrinder.bot.dispatch.view.base import BaseStateView
4
+
5
+
6
+ class CallbackQueryView(BaseStateView[CallbackQueryCute]):
7
+ def __init__(self) -> None:
8
+ super().__init__()
9
+ self.return_manager = CallbackQueryReturnManager()
10
+
11
+ @classmethod
12
+ def get_state_key(cls, event: CallbackQueryCute) -> int | None:
13
+ return event.message_id.unwrap_or_none()
14
+
15
+
16
+ __all__ = ("CallbackQueryView",)
@@ -1,16 +1,11 @@
1
- from telegrinder.bot.cute_types.chat_join_request import ChatJoinRequestCute
2
- from telegrinder.bot.dispatch.view.base import BaseStateView
3
-
4
-
5
- class ChatJoinRequestView(BaseStateView[ChatJoinRequestCute]):
6
- def __init__(self) -> None:
7
- self.auto_rules = []
8
- self.handlers = []
9
- self.middlewares = []
10
- self.return_manager = None
11
-
12
- def get_state_key(self, event: ChatJoinRequestCute) -> int | None:
13
- return event.chat_id
14
-
15
-
16
- __all__ = ("ChatJoinRequestView",)
1
+ from telegrinder.bot.cute_types.chat_join_request import ChatJoinRequestCute
2
+ from telegrinder.bot.dispatch.view.base import BaseStateView
3
+
4
+
5
+ class ChatJoinRequestView(BaseStateView[ChatJoinRequestCute]):
6
+ @classmethod
7
+ def get_state_key(cls, event: ChatJoinRequestCute) -> int | None:
8
+ return event.chat_id
9
+
10
+
11
+ __all__ = ("ChatJoinRequestView",)
@@ -1,39 +1,37 @@
1
- import typing
2
-
3
- from telegrinder.bot.cute_types.chat_member_updated import ChatMemberUpdatedCute
4
- from telegrinder.bot.dispatch.view.base import BaseStateView
5
- from telegrinder.types.enums import UpdateType
6
- from telegrinder.types.objects import Update
7
-
8
- ChatMemberUpdateType: typing.TypeAlias = typing.Literal[
9
- UpdateType.CHAT_MEMBER,
10
- UpdateType.MY_CHAT_MEMBER,
11
- ]
12
-
13
-
14
- class ChatMemberView(BaseStateView[ChatMemberUpdatedCute]):
15
- def __init__(self, *, update_type: ChatMemberUpdateType | None = None) -> None:
16
- self.auto_rules = []
17
- self.handlers = []
18
- self.middlewares = []
19
- self.return_manager = None
20
- self.update_type = update_type
21
-
22
- def __repr__(self) -> str:
23
- return "<{}: {!r}>".format(
24
- self.__class__.__name__,
25
- "chat_member_updated" if self.update_type is None else self.update_type.value,
26
- )
27
-
28
- def get_state_key(self, event: ChatMemberUpdatedCute) -> int | None:
29
- return event.chat_id
30
-
31
- async def check(self, event: Update) -> bool:
32
- return not (
33
- self.update_type is not None
34
- and self.update_type != event.update_type
35
- or not await super().check(event)
36
- )
37
-
38
-
39
- __all__ = ("ChatMemberView",)
1
+ import typing
2
+
3
+ from telegrinder.bot.cute_types.chat_member_updated import ChatMemberUpdatedCute
4
+ from telegrinder.bot.dispatch.view.base import BaseStateView
5
+ from telegrinder.types.enums import UpdateType
6
+ from telegrinder.types.objects import Update
7
+
8
+ ChatMemberUpdateType: typing.TypeAlias = typing.Literal[
9
+ UpdateType.CHAT_MEMBER,
10
+ UpdateType.MY_CHAT_MEMBER,
11
+ ]
12
+
13
+
14
+ class ChatMemberView(BaseStateView[ChatMemberUpdatedCute]):
15
+ def __init__(self, *, update_type: ChatMemberUpdateType | None = None) -> None:
16
+ super().__init__()
17
+ self.update_type = update_type
18
+
19
+ def __repr__(self) -> str:
20
+ return "<{}: {!r}>".format(
21
+ self.__class__.__name__,
22
+ "chat_member_updated" if self.update_type is None else self.update_type.value,
23
+ )
24
+
25
+ @classmethod
26
+ def get_state_key(cls, event: ChatMemberUpdatedCute) -> int | None:
27
+ return event.chat_id
28
+
29
+ async def check(self, event: Update) -> bool:
30
+ return not (
31
+ self.update_type is not None
32
+ and self.update_type != event.update_type
33
+ or not await super().check(event)
34
+ )
35
+
36
+
37
+ __all__ = ("ChatMemberView",)
@@ -1,17 +1,16 @@
1
- from telegrinder.bot.cute_types.inline_query import InlineQueryCute
2
- from telegrinder.bot.dispatch.return_manager import InlineQueryReturnManager
3
- from telegrinder.bot.dispatch.view.base import BaseStateView
4
-
5
-
6
- class InlineQueryView(BaseStateView[InlineQueryCute]):
7
- def __init__(self) -> None:
8
- self.auto_rules = []
9
- self.handlers = []
10
- self.middlewares = []
11
- self.return_manager = InlineQueryReturnManager()
12
-
13
- def get_state_key(self, event: InlineQueryCute) -> int | None:
14
- return event.from_user.id
15
-
16
-
17
- __all__ = ("InlineQueryView",)
1
+ from telegrinder.bot.cute_types.inline_query import InlineQueryCute
2
+ from telegrinder.bot.dispatch.return_manager import InlineQueryReturnManager
3
+ from telegrinder.bot.dispatch.view.base import BaseStateView
4
+
5
+
6
+ class InlineQueryView(BaseStateView[InlineQueryCute]):
7
+ def __init__(self) -> None:
8
+ super().__init__()
9
+ self.return_manager = InlineQueryReturnManager()
10
+
11
+ @classmethod
12
+ def get_state_key(cls, event: InlineQueryCute) -> int | None:
13
+ return event.from_user.id
14
+
15
+
16
+ __all__ = ("InlineQueryView",)
@@ -1,44 +1,43 @@
1
- import typing
2
-
3
- from telegrinder.bot.cute_types.message import MessageCute
4
- from telegrinder.bot.dispatch.return_manager.message import MessageReturnManager
5
- from telegrinder.bot.dispatch.view.base import BaseStateView
6
- from telegrinder.types.enums import UpdateType
7
- from telegrinder.types.objects import Update
8
-
9
- MessageUpdateType: typing.TypeAlias = typing.Literal[
10
- UpdateType.MESSAGE,
11
- UpdateType.BUSINESS_MESSAGE,
12
- UpdateType.CHANNEL_POST,
13
- UpdateType.EDITED_BUSINESS_MESSAGE,
14
- UpdateType.EDITED_CHANNEL_POST,
15
- UpdateType.EDITED_MESSAGE,
16
- ]
17
-
18
-
19
- class MessageView(BaseStateView[MessageCute]):
20
- def __init__(self, *, update_type: MessageUpdateType | None = None) -> None:
21
- self.auto_rules = []
22
- self.handlers = []
23
- self.update_type = update_type
24
- self.middlewares = []
25
- self.return_manager = MessageReturnManager()
26
-
27
- def __repr__(self) -> str:
28
- return "<{}: {!r}>".format(
29
- self.__class__.__name__,
30
- "any message update" if self.update_type is None else self.update_type.value,
31
- )
32
-
33
- def get_state_key(self, event: MessageCute) -> int | None:
34
- return event.chat_id
35
-
36
- async def check(self, event: Update) -> bool:
37
- return not (
38
- self.update_type is not None
39
- and self.update_type != event.update_type
40
- or not await super().check(event)
41
- )
42
-
43
-
44
- __all__ = ("MessageView",)
1
+ import typing
2
+
3
+ from telegrinder.bot.cute_types.message import MessageCute
4
+ from telegrinder.bot.dispatch.return_manager.message import MessageReturnManager
5
+ from telegrinder.bot.dispatch.view.base import BaseStateView
6
+ from telegrinder.types.enums import UpdateType
7
+ from telegrinder.types.objects import Update
8
+
9
+ MessageUpdateType: typing.TypeAlias = typing.Literal[
10
+ UpdateType.MESSAGE,
11
+ UpdateType.BUSINESS_MESSAGE,
12
+ UpdateType.CHANNEL_POST,
13
+ UpdateType.EDITED_BUSINESS_MESSAGE,
14
+ UpdateType.EDITED_CHANNEL_POST,
15
+ UpdateType.EDITED_MESSAGE,
16
+ ]
17
+
18
+
19
+ class MessageView(BaseStateView[MessageCute]):
20
+ def __init__(self, *, update_type: MessageUpdateType | None = None) -> None:
21
+ super().__init__()
22
+ self.update_type = update_type
23
+ self.return_manager = MessageReturnManager()
24
+
25
+ def __repr__(self) -> str:
26
+ return "<{}: {!r}>".format(
27
+ self.__class__.__name__,
28
+ "any message update" if self.update_type is None else self.update_type.value,
29
+ )
30
+
31
+ @classmethod
32
+ def get_state_key(cls, event: MessageCute) -> int | None:
33
+ return event.chat_id
34
+
35
+ async def check(self, event: Update) -> bool:
36
+ return not (
37
+ self.update_type is not None
38
+ and self.update_type != event.update_type
39
+ or not await super().check(event)
40
+ )
41
+
42
+
43
+ __all__ = ("MessageView",)
@@ -0,0 +1,16 @@
1
+ from telegrinder.bot.cute_types.pre_checkout_query import PreCheckoutQueryCute
2
+ from telegrinder.bot.dispatch.return_manager.pre_checkout_query import PreCheckoutQueryManager
3
+ from telegrinder.bot.dispatch.view.base import BaseStateView
4
+
5
+
6
+ class PreCheckoutQueryView(BaseStateView[PreCheckoutQueryCute]):
7
+ def __init__(self) -> None:
8
+ super().__init__()
9
+ self.return_manager = PreCheckoutQueryManager()
10
+
11
+ @classmethod
12
+ def get_state_key(cls, event: PreCheckoutQueryCute) -> int | None:
13
+ return event.from_user.id
14
+
15
+
16
+ __all__ = ("PreCheckoutQueryView",)