def execute(self): sender = self.msg.sender messenger_from = Messenger.get_instance(sender.messenger) if len(self.msg.cmd.args) < 2: messenger_from.send( sender.id, Message('MESSAGE.WRONG_ARGS').localize(sender.lang), keyboards.ConnectKeyboard(sender) ) return messenger, id_ = self.msg.cmd.args receiver = Storage().find_user(messenger, id_) if receiver is None: messenger_from.send( sender.id, Message('MESSAGE.INVALID_USER').localize(sender.lang), keyboards.ConnectKeyboard(sender) ) return Storage().update(sender.key, {'receiver': receiver.key}) messenger_to = Messenger.get_instance(receiver.messenger) if receiver.receiver == sender.key: message_to_sender = Message('MESSAGE.CONNECTED').localize(sender.lang, name=receiver.name) message_to_receiver = Message('MESSAGE.CONNECTED').localize(receiver.lang, name=sender.name) else: message_to_sender = Message('MESSAGE.CONN_WAIT').localize( sender.lang, name=receiver.name, messenger=receiver.messenger ) message_to_receiver = Message('MESSAGE.CONN_NOTIFICATION').localize( receiver.lang, name=sender.name, messenger=sender.messenger, id=sender.nick or sender.phone or sender.id ) messenger_from.send( sender.id, message_to_sender, keyboards.ConnectKeyboard(sender) ) messenger_to.send( receiver.id, message_to_receiver, keyboards.ConnectKeyboard(receiver) )
def execute(self): sender = self.msg.sender messenger = Messenger.get_instance(sender.messenger) if len(self.msg.cmd.args) == 0: messenger.send(sender.id, Message('MESSAGE.WRONG_ARGS').localize(sender.lang), keyboards.ConnectKeyboard(sender)) return sender.lang = self.msg.cmd.args[0] Storage().update(sender.key, {'lang': sender.lang}) messenger.send(sender.id, Message('MESSAGE.LANG_CHANGED').localize(sender.lang), keyboards.ConnectKeyboard(sender))
def execute(self): sender = self.msg.sender messenger_from = Messenger.get_instance(sender.messenger) if sender.receiver is not None: receiver = Storage().get_user(sender.receiver) Storage().update(sender.key, {'receiver': None}) Storage().update(receiver.key, {'receiver': None}) messenger_to = Messenger.get_instance(receiver.messenger) messenger_to.send( receiver.id, Message('MESSAGE.FRIEND_OFF').localize(receiver.lang), keyboards.ConnectKeyboard(receiver)) messenger_from.send(sender.id, Message('MESSAGE.OFF').localize(sender.lang), keyboards.ConnectKeyboard(sender)) else: messenger_from.send( sender.id, Message('MESSAGE.OFF_BLANK').localize(sender.lang), keyboards.ConnectKeyboard(sender))
def execute(self): sender = self.msg.sender messenger = Messenger.get_instance(sender.messenger) if len(self.msg.cmd.args) == 0: messenger.send(sender.id, Message('MESSAGE.WRONG_ARGS').localize(sender.lang), keyboards.ConnectKeyboard(sender)) return keyboard = self.msg.cmd.args[0] try: messenger.send( sender.id, Message(f'KEYBOARD.{keyboard.upper()}').localize(sender.lang), getattr(keyboards, f'{keyboard.capitalize()}Keyboard')(sender)) except KeyError: messenger.send(sender.id, Message('MESSAGE.WRONG_ARGS').localize(sender.lang), keyboards.ConnectKeyboard(sender))
def main(messenger): messenger_from = Messenger.get_instance(messenger) if messenger_from is None: abort(404) return logger.info('Parsing the message') msg: Optional[Message] = messenger_from.parse(request.json) if msg is None: logger.info('Not new message') return 'ok' logger.info('Message was parsed successfully') if not msg.sender.registered: logger.info('Registering user') msg.sender.key = Storage().add_user(msg.sender) logger.info('Sending welcome message') messenger_from.send( msg.sender.id, Message('MESSAGE.REGISTER').localize(msg.sender.lang), keyboards.ConnectKeyboard(msg.sender) ) if msg.cmd is None: return 'ok' if msg.cmd is not None: logger.info('Command detected') cmd_class = commands.get_class(msg.cmd.name) logger.info('Executing command') cmd_class(msg).execute() return 'ok' if msg.sender.receiver is None: logger.info('No receiver') messenger_from.send( msg.sender.id, Message('MESSAGE.NO_RECIPIENT').localize(msg.sender.lang), keyboards.ConnectKeyboard(msg.sender) ) return 'ok' logger.info('Getting receiver') receiver = Storage().get_user(msg.sender.receiver) if receiver.receiver != msg.sender.key: logger.info('Receiver does not confirm the connection') messenger_from.send( msg.sender.id, Message('MESSAGE.CONN_WAIT').localize(msg.sender.lang, name=receiver.name, messenger=receiver.messenger), keyboards.ConnectKeyboard(msg.sender) ) return 'ok' logger.info('Getting receiver messenger instance') messenger_to = Messenger.get_instance(receiver.messenger) logger.info('Forwarding') messenger_to.send( receiver.id, Message('MESSAGE.TEMPLATE', msg.attachments).localize('', name=msg.sender.name, msg=msg.text), keyboards.ConnectKeyboard(receiver) ) return 'ok'
def execute(self): sender = self.msg.sender messenger = Messenger.get_instance(sender.messenger) messenger.send(sender.id, Message('MESSAGE.FULL_HELP').localize(sender.lang), keyboards.ConnectKeyboard(sender))