Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.05 KB | None | 0 0
  1. def send(self):
  2. self.save()
  3. result = None
  4. try:
  5. result = self._send().result()
  6. self.broadcast_date = timezone.now()
  7. if result:
  8. self.message_id = result['message_id']
  9. self.has_sent = True
  10. if self.update and self.update.mfu:
  11. self.message_from_user = self.update.mfu
  12. self.save()
  13. except Unauthorized:
  14. self.user_profile.hasBlockedBot()
  15.  
  16. except Exception as e:
  17.  
  18. if e.__str__() == 'Message is not modified':
  19. return False
  20.  
  21. logging.error("{}".format(e), exc_info=True, extra={
  22. 'content': self.content,
  23. 'keyboard': self.inline_buttons,
  24. 'channel': self.channel,
  25. 'media': self.media,
  26. 'update': self.update,
  27. 'message_id': self.message_id,
  28. })
  29. self.error = e
  30.  
  31. return result
  32.  
  33. @mq.queuedmessage
  34. def _send(self):
  35.  
  36. data = {
  37. 'parse_mode': self.parse_mode,
  38. }
  39. if self.channel:
  40. data['chat_id'] = self.channel
  41. elif self.user_profile:
  42. data['chat_id'] = self.user_profile.telegram_id
  43.  
  44. if self.reply_to_message_id:
  45. data['reply_to_message_id'] = self.reply_to_message_id
  46. if self.inline_buttons:
  47. data['reply_markup'] = self.build_inline_keyboard(self.inline_buttons)
  48. elif self.buttons:
  49. data['reply_markup'] = self.build_keyboard(self.buttons)
  50. elif not self.message_id and not self.channel: # ReplyKeyboardMarkup are not working for message editing
  51. data['reply_markup'] = default_keyboard()
  52.  
  53. res = None
  54.  
  55. if not self.media and not self.media_file:
  56. data['text'] = self.content
  57. if self.message_id:
  58. data['message_id'] = self.message_id
  59. if self.is_new_content(self.message_id, self.content, self.inline_buttons):
  60. res = self.bot.editMessageText(**data)
  61. else:
  62. res = self.bot.sendMessage(**data)
  63. else:
  64. data['caption'] = self.content[0:1024]
  65. media_type = self.media_type or self.media.type
  66. media_file = self.media_file or self.media.file
  67. if media_type == 'P':
  68. data['photo'] = media_file
  69. res = self.bot.sendPhoto(**data)
  70. data['photo'].seek(0)
  71. elif media_type == 'V':
  72. data['video'] = media_file
  73. res = self.bot.sendVideo(**data)
  74. data['video'].seek(0)
  75. elif media_type == 'A':
  76. data['audio'] = media_file
  77. res = self.bot.sendAudio(**data)
  78. data['audio'].seek(0)
  79. elif media_type == 'G':
  80. data['animation'] = media_file
  81. res = self.bot.sendAnimation(**data)
  82. data['animation'].seek(0)
  83.  
  84. return res
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement