Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def send(self):
- self.save()
- result = None
- try:
- result = self._send().result()
- self.broadcast_date = timezone.now()
- if result:
- self.message_id = result['message_id']
- self.has_sent = True
- if self.update and self.update.mfu:
- self.message_from_user = self.update.mfu
- self.save()
- except Unauthorized:
- self.user_profile.hasBlockedBot()
- except Exception as e:
- if e.__str__() == 'Message is not modified':
- return False
- logging.error("{}".format(e), exc_info=True, extra={
- 'content': self.content,
- 'keyboard': self.inline_buttons,
- 'channel': self.channel,
- 'media': self.media,
- 'update': self.update,
- 'message_id': self.message_id,
- })
- self.error = e
- return result
- @mq.queuedmessage
- def _send(self):
- data = {
- 'parse_mode': self.parse_mode,
- }
- if self.channel:
- data['chat_id'] = self.channel
- elif self.user_profile:
- data['chat_id'] = self.user_profile.telegram_id
- if self.reply_to_message_id:
- data['reply_to_message_id'] = self.reply_to_message_id
- if self.inline_buttons:
- data['reply_markup'] = self.build_inline_keyboard(self.inline_buttons)
- elif self.buttons:
- data['reply_markup'] = self.build_keyboard(self.buttons)
- elif not self.message_id and not self.channel: # ReplyKeyboardMarkup are not working for message editing
- data['reply_markup'] = default_keyboard()
- res = None
- if not self.media and not self.media_file:
- data['text'] = self.content
- if self.message_id:
- data['message_id'] = self.message_id
- if self.is_new_content(self.message_id, self.content, self.inline_buttons):
- res = self.bot.editMessageText(**data)
- else:
- res = self.bot.sendMessage(**data)
- else:
- data['caption'] = self.content[0:1024]
- media_type = self.media_type or self.media.type
- media_file = self.media_file or self.media.file
- if media_type == 'P':
- data['photo'] = media_file
- res = self.bot.sendPhoto(**data)
- data['photo'].seek(0)
- elif media_type == 'V':
- data['video'] = media_file
- res = self.bot.sendVideo(**data)
- data['video'].seek(0)
- elif media_type == 'A':
- data['audio'] = media_file
- res = self.bot.sendAudio(**data)
- data['audio'].seek(0)
- elif media_type == 'G':
- data['animation'] = media_file
- res = self.bot.sendAnimation(**data)
- data['animation'].seek(0)
- return res
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement