multibotkit 0.1.23__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.23 → multibotkit-0.1.25}/PKG-INFO +1 -1
  2. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/helpers/telegram.py +33 -0
  3. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/schemas/telegram/incoming.py +119 -1
  4. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/schemas/telegram/outgoing.py +16 -0
  5. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit.egg-info/PKG-INFO +1 -1
  6. {multibotkit-0.1.23 → multibotkit-0.1.25}/setup.py +1 -1
  7. {multibotkit-0.1.23 → multibotkit-0.1.25}/LICENSE +0 -0
  8. {multibotkit-0.1.23 → multibotkit-0.1.25}/README.md +0 -0
  9. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/__init__.py +0 -0
  10. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/dispatchers/__init__.py +0 -0
  11. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/dispatchers/base_dispatcher.py +0 -0
  12. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/dispatchers/fb.py +0 -0
  13. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/dispatchers/telegram.py +0 -0
  14. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/dispatchers/viber.py +0 -0
  15. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/dispatchers/vk.py +0 -0
  16. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/helpers/__init__.py +0 -0
  17. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/helpers/base_helper.py +0 -0
  18. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/helpers/fb.py +0 -0
  19. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/helpers/viber.py +0 -0
  20. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/helpers/vk.py +0 -0
  21. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/schemas/__init__.py +0 -0
  22. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/schemas/fb/__init__.py +0 -0
  23. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/schemas/fb/incoming.py +0 -0
  24. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/schemas/fb/outgoing.py +0 -0
  25. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/schemas/telegram/__init__.py +0 -0
  26. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/schemas/viber/__init__.py +0 -0
  27. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/schemas/viber/incoming.py +0 -0
  28. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/schemas/viber/outgoing.py +0 -0
  29. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/schemas/vk/__init__.py +0 -0
  30. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/schemas/vk/incoming.py +0 -0
  31. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/schemas/vk/outgoing.py +0 -0
  32. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/states/__init__.py +0 -0
  33. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/states/managers/__init__.py +0 -0
  34. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/states/managers/base.py +0 -0
  35. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/states/managers/memory.py +0 -0
  36. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/states/managers/mongo.py +0 -0
  37. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/states/managers/redis.py +0 -0
  38. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit/states/state.py +0 -0
  39. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit.egg-info/SOURCES.txt +0 -0
  40. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit.egg-info/dependency_links.txt +0 -0
  41. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit.egg-info/requires.txt +0 -0
  42. {multibotkit-0.1.23 → multibotkit-0.1.25}/multibotkit.egg-info/top_level.txt +0 -0
  43. {multibotkit-0.1.23 → multibotkit-0.1.25}/pyproject.toml +0 -0
  44. {multibotkit-0.1.23 → 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.23
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,12 +230,41 @@ 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,
235
264
  message_id: int,
236
265
  text: str,
237
266
  parse_mode: str = "HTML",
267
+ disable_web_page_preview: Optional[bool] = True,
238
268
  reply_markup: Optional[InlineKeyboardMarkup] = None,
239
269
  ):
240
270
  url = self.tg_base_url + "editMessageText"
@@ -243,6 +273,7 @@ class TelegramHelper(BaseHelper):
243
273
  "message_id": message_id,
244
274
  "text": text,
245
275
  "parse_mode": parse_mode,
276
+ "link_preview_options": {"is_disabled": disable_web_page_preview},
246
277
  }
247
278
  if reply_markup:
248
279
  data["reply_markup"] = reply_markup.dict(exclude_none=True)
@@ -256,6 +287,7 @@ class TelegramHelper(BaseHelper):
256
287
  message_id: int,
257
288
  text: str,
258
289
  parse_mode: str = "HTML",
290
+ disable_web_page_preview: Optional[bool] = True,
259
291
  reply_markup: Optional[InlineKeyboardMarkup] = None,
260
292
  ):
261
293
  url = self.tg_base_url + "editMessageText"
@@ -264,6 +296,7 @@ class TelegramHelper(BaseHelper):
264
296
  "message_id": message_id,
265
297
  "text": text,
266
298
  "parse_mode": parse_mode,
299
+ "link_preview_options": {"is_disabled": disable_web_page_preview},
267
300
  }
268
301
  if reply_markup:
269
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.23
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.23",
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