Exemplo n.º 1
0
    def on_message(self, message: MessageProtocolEntity):
        receipt = OutgoingReceiptProtocolEntity(
            messageIds=message.getId(),
            to=message.getFrom(),
            read=True,
            participant=message.getParticipant())

        today = datetime.datetime.now().isocalendar()

        target_dir = self.getProp(self.__class__.PROP_TARGET)
        target_file = f'{today[0]}-{today[1]}-{today[2]}.json'
        try:
            nice_message = self._jsonify(message)
            if nice_message:
                with open(os.path.join(target_dir, target_file),
                          'a',
                          encoding='utf-8') as file:
                    file.write(nice_message)
                    file.write(os.linesep)
            else:
                log.info(
                    f'Did not write non-text message with ID {message.getId()}'
                )
        except Exception as e:
            log.warning(f'Unable to write message: {str(e)}')

        self.toLower(receipt)
Exemplo n.º 2
0
 def fromProtocolTreeNode(node):
     entity = MessageProtocolEntity.fromProtocolTreeNode(node)
     entity.__class__ = MediaMessageProtocolEntity
     entity.setMediaType(node.getChild("media").getAttributeValue("type"))
     preview = node.getChild("media").getData()
     entity.setPreview(preview)
     return entity
Exemplo n.º 3
0
 def fromProtocolTreeNode(node):
     entity = MessageProtocolEntity.fromProtocolTreeNode(node)
     entity.__class__ = EncryptedMessageProtocolEntity
     encNode = node.getChild("enc")
     entity.setEncProps(encNode["type"], encNode["v"],
                        encNode.data.encode('latin-1') if sys.version_info >= (3,0) else encNode.data)
     return entity
Exemplo n.º 4
0
 def fromProtocolTreeNode(node):
     entity = MessageProtocolEntity.fromProtocolTreeNode(node)
     entity.__class__ = EncryptedMessageProtocolEntity
     entity.setEncEntities(
         [EncProtocolEntity.fromProtocolTreeNode(encNode) for encNode in node.getAllChildren("enc")]
     )
     return entity
Exemplo n.º 5
0
 def fromProtocolTreeNode(node):
     entity = MessageProtocolEntity.fromProtocolTreeNode(node)
     entity.__class__ = MediaMessageProtocolEntity
     entity.setMediaType(node.getChild("media").getAttributeValue("type"))
     preview = node.getChild("media").getData()
     entity.setPreview(preview)
     return entity
Exemplo n.º 6
0
 def fromProtocolTreeNode(node):
     entity = MessageProtocolEntity.fromProtocolTreeNode(node)
     entity.__class__ = EncryptedMessageProtocolEntity
     encNode = node.getChild("enc")
     entity.setEncProps(encNode["type"], encNode["v"],
                        encNode.data.encode('latin-1') if sys.version_info >= (3,0) else encNode.data)
     return entity
Exemplo n.º 7
0
 def fromProtocolTreeNode(node):
     entity = MessageProtocolEntity.fromProtocolTreeNode(node)
     entity.__class__ = EncryptedMessageProtocolEntity
     entity.setEncEntities([
         EncProtocolEntity.fromProtocolTreeNode(encNode)
         for encNode in node.getAllChildren("enc")
     ])
     return entity