def setUp(self): super(TextMessageProtocolEntityTest, self).setUp() self.ProtocolEntity = TextMessageProtocolEntity m = Message() m.conversation = "body_data" proto_node = ProtocolTreeNode("proto", {}, None, m.SerializeToString()) self.node.addChild(proto_node)
def fromProtocolTreeNode(cls, node): entity = MessageProtocolEntity.fromProtocolTreeNode(node) entity.__class__ = cls m = Message() m.ParseFromString(node.getChild("proto").getData()) entity.message_attributes = AttributesConverter.get().proto_to_message( m) return entity
def setUp(self): super(ContactMediaMessageProtocolEntityTest, self).setUp() self.ProtocolEntity = ContactMediaMessageProtocolEntity m = Message() contact_message = Message.ContactMessage() contact_message.display_name = "abc" contact_message.vcard = b"VCARD_DATA" m.contact_message.MergeFrom(contact_message) proto_node = self.node.getChild("proto") proto_node["mediatype"] = "contact" proto_node.setData(m.SerializeToString())
def setUp(self): super(AudioDownloadableMediaMessageProtocolEntityTest, self).setUp() self.ProtocolEntity = AudioDownloadableMediaMessageProtocolEntity proto_node = self.node.getChild("proto") m = Message() media_message = Message.AudioMessage() media_message.url = "url" media_message.mimetype = "audio/ogg" media_message.file_sha256 = b"SHA256" media_message.file_length = 123 media_message.media_key = b"MEDIA_KEY" media_message.seconds = 24 media_message.ptt = True m.audio_message.MergeFrom(media_message) proto_node.setData(m.SerializeToString())
def setUp(self): super(LocationMediaMessageProtocolEntityTest, self).setUp() self.ProtocolEntity = LocationMediaMessageProtocolEntity m = Message() location_message = Message.LocationMessage() location_message.degrees_latitude = 30.089037 location_message.degrees_longitude = 31.319488 location_message.name = "kaos" location_message.url = "kaos_url" m.location_message.MergeFrom(location_message) proto_node = self.node.getChild("proto") proto_node["mediatype"] = "location" proto_node.setData(m.SerializeToString())
def serializeSenderKeyDistributionMessageToProtobuf(self, groupId, senderKeyDistributionMessage, message = None): m = message or Message() m.sender_key_distribution_message.group_id = groupId m.sender_key_distribution_message.axolotl_sender_key_distribution_message = senderKeyDistributionMessage.serialize() m.sender_key_distribution_message.axolotl_sender_key_distribution_message = senderKeyDistributionMessage.serialize() # m.conversation = text return m
def setUp(self): super(VideoDownloadableMediaMessageProtocolEntityTest, self).setUp() self.ProtocolEntity = VideoDownloadableMediaMessageProtocolEntity proto_node = self.node.getChild("proto") m = Message() media_message = Message.VideoMessage() media_message.url = "url" media_message.mimetype = "video/mp4" media_message.caption = "caption" media_message.file_sha256 = b"SHA256" media_message.file_length = 123 media_message.height = 20 media_message.width = 20 media_message.media_key = b"MEDIA_KEY" media_message.jpeg_thumbnail = b"THUMBNAIL" m.video_message.MergeFrom(media_message) proto_node.setData(m.SerializeToString())
def serializeContactToProtobuf(self, mediaNode, message = None): vcardNode = mediaNode.getChild("vcard") m = message or Message() contact_message = ContactMessage() contact_message.display_name = vcardNode["name"] m.vcard = vcardNode.getData() m.contact_message.MergeFrom(contact_message) return m
def setUp(self): super(ExtendedTextMediaMessageProtocolEntityTest, self).setUp() self.ProtocolEntity = ExtendedTextMediaMessageProtocolEntity m = Message() media_message = Message.ExtendedTextMessage() media_message.canonical_url = "url" media_message.text = "text" media_message.matched_text = "matched_text" media_message.description = "desc" media_message.title = "title" media_message.jpeg_thumbnail = b"thumb" m.extended_text_message.MergeFrom(media_message) proto_node = self.node.getChild("proto") proto_node["mediatype"] = "url" proto_node.setData(m.SerializeToString()) self._entity = ExtendedTextMediaMessageProtocolEntity\ .fromProtocolTreeNode(self.node) # type: ExtendedTextMediaMessageProtocolEntity
def setUp(self): super(VideoDownloadableMediaMessageProtocolEntityTest, self).setUp() self.ProtocolEntity = VideoDownloadableMediaMessageProtocolEntity proto_node = self.node.getChild("proto") m = Message() media_message = Message.VideoMessage() media_message.url = "url" media_message.mimetype = "video/mp4" media_message.caption = "caption" media_message.file_sha256 = b"shaval" media_message.file_length = 4 media_message.width = 1 media_message.height = 2 media_message.seconds = 3 media_message.media_key = b"MEDIA_KEY" media_message.jpeg_thumbnail = b"THUMBNAIL" media_message.gif_attribution = 0 media_message.gif_playback = False media_message.streaming_sidecar = b'' m.video_message.MergeFrom(media_message) proto_node.setData(m.SerializeToString())
def serializeLocationToProtobuf(self, mediaNode, message = None): m = message or Message() location_message = LocationMessage() location_message.degrees_latitude = float(mediaNode["latitude"]) location_message.degrees_longitude = float(mediaNode["longitude"]) location_message.address = mediaNode["name"] location_message.name = mediaNode["name"] location_message.url = mediaNode["url"] location_message.jpeg_thumbnail = b'' m.location_message.MergeFrom(location_message) return m
def serializeImageToProtobuf(self, mediaNode, message = None): m = message or Message() image_message = ImageMessage() image_message.url = mediaNode["url"] image_message.width = int(mediaNode["width"]) image_message.height = int(mediaNode["height"]) image_message.mime_type = mediaNode["mimetype"] image_message.media_key = mediaNode["mediakey"] image_message.file_sha256 = binascii.unhexlify(mediaNode["filehash"].encode()) image_message.file_length = int(mediaNode["size"]) image_message.media_key = binascii.unhexlify(mediaNode["anu"]) image_message.file_enc_sha256 = binascii.unhexlify(mediaNode["file_enc_sha256"]) image_message.caption = mediaNode["caption"] or "" image_message.jpeg_thumbnail = mediaNode.getData() m.image_message.MergeFrom(image_message) return m
class ProtomessageProtocolEntity(MessageProtocolEntity): ''' <message t="{{TIME_STAMP}}" from="{{CONTACT_JID}}" offline="{{OFFLINE}}" type="text" id="{{MESSAGE_ID}}" notify="{{NOTIFY_NAME}}"> <proto> {{SERIALIZE_PROTO_DATA}} </proto> </message> ''' def __init__(self, messageType, messageAttributes): super(ProtomessageProtocolEntity, self).__init__(messageType, messageAttributes) self._proto = Message() def __str__(self): out = super(ProtomessageProtocolEntity, self).__str__() return "%s\nproto=%s" % (out, self._proto) @property def proto(self): return self._proto def deserializeProtoData(self, protoData): m = Message() m.ParseFromString(protoData) return m def toProtocolTreeNode(self): node = super(ProtomessageProtocolEntity, self).toProtocolTreeNode() node.addChild( ProtoProtocolEntity( self._proto.SerializeToString()).toProtocolTreeNode()) return node def setProtoFromData(self, protoData): self._proto = self.deserializeProtoData(protoData) @classmethod def fromProtocolTreeNode(cls, node): entity = MessageProtocolEntity.fromProtocolTreeNode(node) entity.__class__ = cls entity.setProtoFromData(node.getChild("proto").getData()) return entity
def deserializeProtoData(self, protoData): m = Message() m.ParseFromString(protoData) return m
def __init__(self, messageType, messageAttributes): super(ProtomessageProtocolEntity, self).__init__(messageType, messageAttributes) self._proto = Message()
def serializeTextToProtobuf(self, node, message = None): m = message or Message() m.conversation = node.getChild("body").getData() return m
def setUp(self): super(MediaMessageProtocolEntityTest, self).setUp() self.ProtocolEntity = MediaMessageProtocolEntity proto_node = ProtocolTreeNode("proto", {"mediatype": "image"}, None, Message().SerializeToString()) self.node.addChild(proto_node)