multibotkit 0.1.24__tar.gz → 0.1.25__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 (44) hide show
  1. {multibotkit-0.1.24 → multibotkit-0.1.25}/PKG-INFO +1 -1
  2. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/helpers/telegram.py +31 -2
  3. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/schemas/telegram/incoming.py +119 -1
  4. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/schemas/telegram/outgoing.py +16 -0
  5. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit.egg-info/PKG-INFO +1 -1
  6. {multibotkit-0.1.24 → multibotkit-0.1.25}/setup.py +1 -1
  7. {multibotkit-0.1.24 → multibotkit-0.1.25}/LICENSE +0 -0
  8. {multibotkit-0.1.24 → multibotkit-0.1.25}/README.md +0 -0
  9. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/__init__.py +0 -0
  10. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/dispatchers/__init__.py +0 -0
  11. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/dispatchers/base_dispatcher.py +0 -0
  12. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/dispatchers/fb.py +0 -0
  13. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/dispatchers/telegram.py +0 -0
  14. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/dispatchers/viber.py +0 -0
  15. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/dispatchers/vk.py +0 -0
  16. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/helpers/__init__.py +0 -0
  17. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/helpers/base_helper.py +0 -0
  18. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/helpers/fb.py +0 -0
  19. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/helpers/viber.py +0 -0
  20. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/helpers/vk.py +0 -0
  21. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/schemas/__init__.py +0 -0
  22. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/schemas/fb/__init__.py +0 -0
  23. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/schemas/fb/incoming.py +0 -0
  24. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/schemas/fb/outgoing.py +0 -0
  25. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/schemas/telegram/__init__.py +0 -0
  26. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/schemas/viber/__init__.py +0 -0
  27. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/schemas/viber/incoming.py +0 -0
  28. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/schemas/viber/outgoing.py +0 -0
  29. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/schemas/vk/__init__.py +0 -0
  30. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/schemas/vk/incoming.py +0 -0
  31. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/schemas/vk/outgoing.py +0 -0
  32. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/states/__init__.py +0 -0
  33. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/states/managers/__init__.py +0 -0
  34. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/states/managers/base.py +0 -0
  35. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/states/managers/memory.py +0 -0
  36. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/states/managers/mongo.py +0 -0
  37. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/states/managers/redis.py +0 -0
  38. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit/states/state.py +0 -0
  39. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit.egg-info/SOURCES.txt +0 -0
  40. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit.egg-info/dependency_links.txt +0 -0
  41. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit.egg-info/requires.txt +0 -0
  42. {multibotkit-0.1.24 → multibotkit-0.1.25}/multibotkit.egg-info/top_level.txt +0 -0
  43. {multibotkit-0.1.24 → multibotkit-0.1.25}/pyproject.toml +0 -0
  44. {multibotkit-0.1.24 → multibotkit-0.1.25}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: multibotkit
3
- Version: 0.1.24
3
+ Version: 0.1.25
4
4
  Summary: Functional library for developing multiplatform chatbots
5
5
  Home-page: https://github.com/Appvelox/multibotkit
6
6
  Author: Appvelox LLC
@@ -31,6 +31,7 @@ from multibotkit.schemas.telegram.outgoing import (
31
31
  Location,
32
32
  DeleteWebhookParams,
33
33
  DeleteMessage,
34
+ CopyMessage,
34
35
  )
35
36
 
36
37
 
@@ -229,6 +230,34 @@ class TelegramHelper(BaseHelper):
229
230
  r = await self._perform_async_request(url, delete_message.dict())
230
231
  return r
231
232
 
233
+ def sync_copy_message(
234
+ self,
235
+ chat_id: int,
236
+ from_chat_id: int,
237
+ message_id: int,
238
+ ):
239
+ url = self.tg_base_url + "copyMessage"
240
+ delete_message = CopyMessage(
241
+ chat_id=chat_id, message_id=message_id, from_chat_id=from_chat_id
242
+ )
243
+
244
+ r = self._perform_sync_request(url, delete_message.dict())
245
+ return r
246
+
247
+ async def async_copy_message(
248
+ self,
249
+ chat_id: int,
250
+ from_chat_id: int,
251
+ message_id: int,
252
+ ):
253
+ url = self.tg_base_url + "copyMessage"
254
+ delete_message = DeleteMessage(
255
+ chat_id=chat_id, message_id=message_id, from_chat_id=from_chat_id
256
+ )
257
+
258
+ r = await self._perform_async_request(url, delete_message.dict())
259
+ return r
260
+
232
261
  def sync_edit_message_text(
233
262
  self,
234
263
  chat_id: int,
@@ -244,7 +273,7 @@ class TelegramHelper(BaseHelper):
244
273
  "message_id": message_id,
245
274
  "text": text,
246
275
  "parse_mode": parse_mode,
247
- "link_preview_options": {"is_disabled": disable_web_page_preview}
276
+ "link_preview_options": {"is_disabled": disable_web_page_preview},
248
277
  }
249
278
  if reply_markup:
250
279
  data["reply_markup"] = reply_markup.dict(exclude_none=True)
@@ -267,7 +296,7 @@ class TelegramHelper(BaseHelper):
267
296
  "message_id": message_id,
268
297
  "text": text,
269
298
  "parse_mode": parse_mode,
270
- "link_preview_options": {"is_disabled": disable_web_page_preview}
299
+ "link_preview_options": {"is_disabled": disable_web_page_preview},
271
300
  }
272
301
  if reply_markup:
273
302
  data["reply_markup"] = reply_markup.dict(exclude_none=True)
@@ -232,7 +232,7 @@ class WebAppData(BaseModel):
232
232
  button_text: str = Field(
233
233
  ...,
234
234
  title="Text of the web_app keyboard button from which the Web App was opened. Be aware that a bad client can "
235
- "send arbitrary data in this field.",
235
+ "send arbitrary data in this field.",
236
236
  )
237
237
 
238
238
 
@@ -315,8 +315,126 @@ unique identifier for the game",
315
315
  fields = {"from_": "from"}
316
316
 
317
317
 
318
+ class ChatMember(BaseModel):
319
+ status: str = Field(..., title="The member's status in the chat")
320
+ user: User = Field(..., title="Information about the user")
321
+
322
+
323
+ class ChatInviteLink(BaseModel):
324
+ invite_link: str = Field(
325
+ ...,
326
+ title="The invite link. If the link was created by another chat administrator, "
327
+ "then the second part of the link will be replaced with “…”",
328
+ )
329
+ creator: User = Field(..., title="Creator of the link")
330
+ creates_join_request: bool = Field(
331
+ ...,
332
+ title="True, if users joining the chat via the link need to be approved by chat administrators",
333
+ )
334
+ is_primary: bool = Field(
335
+ ...,
336
+ title="True, if the link is primary",
337
+ )
338
+ is_revoked: bool = Field(
339
+ ...,
340
+ title="True, if the link is revoked",
341
+ )
342
+ name: Optional[str] = Field(
343
+ None,
344
+ title="Invite link name",
345
+ )
346
+ expire_date: Optional[int] = Field(
347
+ None,
348
+ title="Point in time (Unix timestamp) when the link will expire or has been expired",
349
+ )
350
+ member_limit: Optional[int] = Field(
351
+ None,
352
+ title="The maximum number of users that can be members of the chat simultaneously after joining "
353
+ "the chat via this invite link; 1-99999",
354
+ )
355
+ pending_join_request_count: Optional[int] = Field(
356
+ None,
357
+ title="Number of pending join requests created using this link",
358
+ )
359
+ subscription_period: Optional[int] = Field(
360
+ None,
361
+ title="The number of seconds the subscription will be active for before the next payment",
362
+ )
363
+ subscription_price: Optional[int] = Field(
364
+ None,
365
+ title="The amount of Telegram Stars a user must pay initially and after each subsequent "
366
+ "subscription period to be a member of the chat using the link",
367
+ )
368
+
369
+
370
+ class ChatMemberUpdated(BaseModel):
371
+ date: int = Field(..., title="Date the change was done in Unix time")
372
+ from_: User = Field(
373
+ ..., title="Performer of the action, which resulted in the change"
374
+ )
375
+ chat: Chat = Field(..., title="Chat the user belongs to")
376
+ old_chat_member: ChatMember = Field(
377
+ ..., title="Previous information about the chat member"
378
+ )
379
+ new_chat_member: ChatMember = Field(
380
+ ..., title="New information about the chat member"
381
+ )
382
+ invite_link: Optional[ChatInviteLink] = Field(
383
+ None,
384
+ title="Chat invite link, which was used by the user to join the chat; for joining by invite link events only.",
385
+ )
386
+ via_join_request: Optional[bool] = Field(
387
+ None,
388
+ title="Optional. True, if the user joined the chat after sending a direct join "
389
+ "request without using an invite link and being approved by an administrator",
390
+ )
391
+ via_chat_folder_invite_link: Optional[bool] = Field(
392
+ None,
393
+ title="Optional. True, if the user joined the chat via a chat folder invite link",
394
+ )
395
+
396
+ class Config:
397
+ fields = {"from_": "from"}
398
+
399
+
400
+ class ChatJoinRequest(BaseModel):
401
+ chat: Chat = Field(..., title=" Chat to which the request was sent")
402
+ from_: User = Field(..., title="User that sent the join request")
403
+ user_chat_id: int = Field(
404
+ ...,
405
+ title="Identifier of a private chat with the user who sent the join request.",
406
+ )
407
+ date: int = Field(..., title="Date the request was sent in Unix time")
408
+ bio: Optional[str] = Field(
409
+ None,
410
+ title="Bio of the user.",
411
+ )
412
+ invite_link: Optional[ChatInviteLink] = Field(
413
+ None,
414
+ title="Chat invite link that was used by the user to send the join request",
415
+ )
416
+
417
+ class Config:
418
+ fields = {"from_": "from"}
419
+
420
+
318
421
  class Update(BaseModel):
319
422
  update_id: int = Field(..., title="Id of incoming bot update")
320
423
  message: Optional[Message] = Field(None, title="Message data")
321
424
  edited_message: Optional[Message] = Field(None, title="Edited message data")
322
425
  callback_query: Optional[CallbackQuery] = Field(None, title="Callback query data")
426
+ my_chat_member: Optional[ChatMemberUpdated] = Field(
427
+ None,
428
+ title="The bot's chat member status was updated in a chat. For private chats, this update is received only "
429
+ "when the bot is blocked or unblocked by the user.",
430
+ )
431
+ chat_member: Optional[ChatMemberUpdated] = Field(
432
+ None,
433
+ title="A chat member's status was updated in a chat. The bot must be an administrator in the chat and must "
434
+ 'explicitly specify "chat_member" in the list of allowed_updates to receive these updates.',
435
+ )
436
+ chat_join_request: Optional[ChatJoinRequest] = Field(
437
+ None,
438
+ title="A request to join the chat has been sent. The bot must have the can_invite_users administrator right "
439
+ "in the chat to receive these updates.",
440
+ )
@@ -47,6 +47,22 @@ class DeleteMessage(BaseModel):
47
47
  message_id: int = Field(None, title="Identifier of the message to delete")
48
48
 
49
49
 
50
+ class CopyMessage(BaseModel):
51
+ chat_id: int = Field(
52
+ None,
53
+ title="Unique identifier for the target chat or username of the target channel "
54
+ "(in the format @channelusername)",
55
+ )
56
+ from_chat_id: int = Field(
57
+ None,
58
+ title="Unique identifier for the chat where the original message was sent (or channel username in "
59
+ "the format @channelusername)",
60
+ )
61
+ message_id: int = Field(
62
+ None, title="Message identifier in the chat specified in from_chat_id"
63
+ )
64
+
65
+
50
66
  class WebhookInfo(BaseModel):
51
67
  url: str = Field(..., title="Webhook URL, may be empty if webhook is not set up")
52
68
  has_custom_certificate: Optional[bool] = Field(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: multibotkit
3
- Version: 0.1.24
3
+ Version: 0.1.25
4
4
  Summary: Functional library for developing multiplatform chatbots
5
5
  Home-page: https://github.com/Appvelox/multibotkit
6
6
  Author: Appvelox LLC
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
5
5
 
6
6
  setuptools.setup(
7
7
  name="multibotkit",
8
- version="0.1.24",
8
+ version="0.1.25",
9
9
  author="Appvelox LLC",
10
10
  author_email="team@appvelox.ru",
11
11
  description="Functional library for developing multiplatform chatbots",
File without changes
File without changes
File without changes