def toProtocolTreeNode(self): node = super(ListGroupsResultIqProtocolEntity, self).toProtocolTreeNode() groupsNodes = [] for group in self.groupsList: groupNode = ProtocolTreeNode("group", { "id": group.getId(), "creator": group.getCreator(), "subject": group.getSubject(), "s_o": group.getSubjectOwner(), "s_t": str(group.getSubjectTime()), "creation": str(group.getCreationTime()) }, ) participants = [] for jid, _type in group.getParticipants().items(): pnode = ProtocolTreeNode("participant", {"jid": jid}) if _type: pnode["type"] = _type participants.append(pnode) groupNode.addChildren(participants) groupsNodes.append(groupNode) node.addChild(ProtocolTreeNode("groups", children = groupsNodes)) return node
def toProtocolTreeNode(self): node = super(CryptoIqProtocolEntity, self).toProtocolTreeNode() cryptoNode = ProtocolTreeNode("crypto", {"action": "create"}) googleNode = ProtocolTreeNode("google", data = "fe5cf90c511fb899781bbed754577098e460d048312c8b36c11c91ca4b49ca34".decode('hex')) cryptoNode.addChild(googleNode) node.addChild(cryptoNode) return node
def toProtocolTreeNode(self): node = super(PrivacyListIqProtocolEntity, self).toProtocolTreeNode() queryNode = ProtocolTreeNode("query") listNode = ProtocolTreeNode("list", {"name": self.listName}) queryNode.addChild(listNode) node.addChild(queryNode) return node
def toProtocolTreeNode(self): node = super(SuccessLeaveGroupsIqProtocolEntity, self).\ toProtocolTreeNode() leaveNode = ProtocolTreeNode( "leave", {}, [ProtocolTreeNode("group", {"id": self.groupId})]) node.addChild(leaveNode) return node
def toProtocolTreeNode(self): node = super(LeaveGroupsIqProtocolEntity, self).toProtocolTreeNode() leaveNode = ProtocolTreeNode( "leave", {}, [ProtocolTreeNode("group", {"id": jid}) for jid in self.jids]) node.addChild(leaveNode) return node
def toProtocolTreeNode(self): node = super(CreateGroupsNotificationProtocolEntity, self).toProtocolTreeNode() createNode = ProtocolTreeNode("create", { "type": self.getCreatetype(), "key": self.key }) groupNode = ProtocolTreeNode( "group", { "subject": self.getSubject(), "creation": str(self.getCreationTimestamp()), "creator": self.getCreatorJid(), "s_t": self.getSubjectTimestamp(), "s_o": self.getSubjectOwnerJid(), "id": self.getGroupId() }) participants = [] for jid, _type in self.getParticipants().items(): pnode = ProtocolTreeNode("participant", {"jid": jid}) if _type: pnode["type"] = _type participants.append(pnode) groupNode.addChildren(participants) createNode.addChild(groupNode) node.addChild(createNode) return node
def toProtocolTreeNode(self): attribs = { "type": self._type, "id": self._id, } if not self.isOutgoing(): attribs["t"] = str(self.timestamp) if self.offline is not None: attribs["offline"] = "1" if self.offline else "0" if self.isOutgoing(): attribs["to"] = self.to else: attribs["from"] = self._from if self.notify: attribs["notify"] = self.notify if self.retry: attribs["retry"] = str(self.retry) if self.participant: attribs["participant"] = participant xNode = None if self.isOutgoing(): serverNode = ProtocolTreeNode("server", {}) xNode = ProtocolTreeNode("x", {"xmlns": "jabber:x:event"}, [serverNode]) return self._createProtocolTreeNode( attribs, children=[xNode] if xNode else None, data=None)
def setUp(self): super(BroadcastTextMessageTest, self).setUp() self.ProtocolEntity = BroadcastTextMessage broadcastNode = ProtocolTreeNode("broadcast") jids = ["jid1", "jid2"] toNodes = [ProtocolTreeNode("to", {"jid": jid}) for jid in jids] broadcastNode.addChildren(toNodes) self.node.addChild(broadcastNode)
def toProtocolTreeNode(self): node = super(ListPicturesIqProtocolEntity, self).toProtocolTreeNode() userNodes = [ ProtocolTreeNode("user", {"jid": jid}) for jid in self.jids ] listNode = ProtocolTreeNode("list", {}, userNodes) node.addChild(listNode) return node
def toProtocolTreeNode(self): node = super(StreamErrorProtocolEntity, self).toProtocolTreeNode() type = self.getErrorType() node.addChild(ProtocolTreeNode(type)) if type == self.__class__.TYPE_CONFLICT and "text" in self.data: node.addChild(ProtocolTreeNode("text", data=self.data["text"])) return node
def toProtocolTreeNode(self): attribs = {"type": self.type, "v": str(self.version)} if self.mediaType: attribs["mediatype"] = self.mediaType encNode = ProtocolTreeNode("enc", attribs, data=self.data) if self.jid: return ProtocolTreeNode("to", {"jid": self.jid}, [encNode]) return encNode
def toProtocolTreeNode(self): node = super(SetPrivacyIqProtocolEntity, self).toProtocolTreeNode() queryNode = ProtocolTreeNode(self.__class__.XMLNS) for name in self.names: listNode = ProtocolTreeNode("category", {"name": name, "value": self.value}) queryNode.addChild(listNode) node.addChild(queryNode) return node
def toProtocolTreeNode(self): users = [ProtocolTreeNode("user", {'jid': jid}) for jid in self.jids] node = super(GetStatusesIqProtocolEntity, self).toProtocolTreeNode() statusNode = ProtocolTreeNode("status", None, users) node.addChild(statusNode) return node
def toProtocolTreeNode(self): node = super(ParticipantsGroupsIqProtocolEntity, self).toProtocolTreeNode() participantNodes = [ ProtocolTreeNode("participant", {"jid": participant}) for participant in self.participantList ] node.addChild(ProtocolTreeNode(self.mode, {}, participantNodes)) return node
def toProtocolTreeNode(self): node = super(LeaveGroupsIqProtocolEntity, self).toProtocolTreeNode() groupNodes = [ ProtocolTreeNode("group", {"id": groupid}) for groupid in self.groupList ] node.addChild( ProtocolTreeNode("leave", {"action": "delete"}, groupNodes)) return node
def toProtocolTreeNode(self): node = super(GetKeysIqProtocolEntity, self).toProtocolTreeNode() keyNode = ProtocolTreeNode("key") for jid in self.getJids(): userNode = ProtocolTreeNode("user", { "jid": jid }) keyNode.addChild(userNode) node.addChild(keyNode) return node
def handleContactMessage(self, originalEncNode, contactMessage): messageNode = copy.deepcopy(originalEncNode) messageNode["type"] = "media" mediaNode = ProtocolTreeNode("media", {"type": "vcard"}, [ ProtocolTreeNode("vcard", {"name": contactMessage.display_name}, data=contactMessage.vcard) ]) messageNode.addChild(mediaNode) self.toUpper(messageNode)
def toProtocolTreeNode(self): node = super(CreateGroupsIqProtocolEntity, self).toProtocolTreeNode() cnode = ProtocolTreeNode("create", {"subject": self.subject}) participantNodes = [ ProtocolTreeNode("participant", {"jid": participant}) for participant in self.participantList ] cnode.addChildren(participantNodes) node.addChild(cnode) return node
def test_encode(self): node = ProtocolTreeNode("message", {"form": "abc", "to":"xyz"}, [ProtocolTreeNode("media", {"width" : "123"}, data=b"123456")]) result = self.encoder.protocolTreeNodeToBytes(node) self.assertTrue(result in ( [0, 248, 6, 95, 179, 252, 3, 120, 121, 122, 252, 4, 102, 111, 114, 109, 252, 3, 97, 98, 99, 248, 1, 248, 4, 93, 236, 104, 255, 130, 18, 63, 252, 6, 49, 50, 51, 52, 53, 54], [0, 248, 6, 95, 252, 4, 102, 111, 114, 109, 252, 3, 97, 98, 99, 179, 252, 3, 120, 121, 122, 248, 1, 248, 4, 93, 236, 104, 255, 130, 18, 63, 252, 6, 49, 50, 51, 52, 53, 54] ) )
def setUp(self): self.ProtocolEntity = CallProtocolEntity children = [ProtocolTreeNode("offer", {"call-id": "call_id"})] attribs = { "t": "12345", "from": "from_jid", "offline": "0", "id": "message_id", "notify": "notify_name" } self.node = ProtocolTreeNode("call", attribs, children)
def test_encode(self): node = ProtocolTreeNode("message", { "form": "abc", "to": "xyz" }, [ProtocolTreeNode("media", {"width": "123"}, data="123456")]) result = self.encoder.protocolTreeNodeToBytes(node) self.assertEqual(result, [ 248, 6, 89, 165, 252, 3, 120, 121, 122, 252, 4, 102, 111, 114, 109, 252, 3, 97, 98, 99, 248, 1, 248, 4, 87, 236, 99, 252, 3, 49, 50, 51, 252, 6, 49, 50, 51, 52, 53, 54 ])
def test_decode(self): data = bytearray([ 0, 248, 6, 9, 11, 252, 3, 120, 121, 122, 5, 252, 3, 97, 98, 99, 248, 1, 248, 4, 50, 238, 86, 255, 130, 18, 63, 252, 6, 49, 50, 51, 52, 53, 54 ]) node = self.decoder.getProtocolTreeNode(data) targetNode = ProtocolTreeNode("message", { "from": "abc", "to": "xyz" }, [ProtocolTreeNode("media", {"width": "123"}, data=b"123456")]) self.assertEqual(node, targetNode)
def toProtocolTreeNode(self): node = super(GetKeysIqProtocolEntity, self).toProtocolTreeNode() keyNode = ProtocolTreeNode("key") for jid in self.jids: attrs = { "jid": jid } if self.reason is not None: attrs["reason"] = self.reason userNode = ProtocolTreeNode("user", attrs) keyNode.addChild(userNode) node.addChild(keyNode) return node
def toProtocolTreeNode(self): node = super(AddGroupsNotificationProtocolEntity, self).toProtocolTreeNode() addNode = ProtocolTreeNode("add") participants = [] for jid in self.getParticipants(): pnode = ProtocolTreeNode("participant", {"jid": jid}) participants.append(pnode) addNode.addChildren(participants) node.addChild(addNode) return node
def toProtocolTreeNode(self): node = super().toProtocolTreeNode() demoteNode = ProtocolTreeNode("demote", {"subject": self.subject}) participants = [] for jid in self.getParticipants(): pnode = ProtocolTreeNode("participant", {"jid": jid}) participants.append(pnode) demoteNode.addChildren(participants) node.addChild(demoteNode) return node
def test_decode(self): data = [ 248, 6, 89, 165, 252, 3, 120, 121, 122, 252, 4, 102, 111, 114, 109, 252, 3, 97, 98, 99, 248, 1, 248, 4, 87, 236, 99, 252, 3, 49, 50, 51, 252, 6, 49, 50, 51, 52, 53, 54 ] node = self.decoder.getProtocolTreeNode(data) targetNode = ProtocolTreeNode("message", { "form": "abc", "to": "xyz" }, [ProtocolTreeNode("media", {"width": "123"}, data="123456")]) self.assertEqual(node, targetNode)
def toProtocolTreeNode(self): node = super(RemoveGroupsNotificationProtocolEntity, self).toProtocolTreeNode() removeNode = ProtocolTreeNode("remove", {"subject": self.subject}) participants = [] for jid in self.getParticipants(): pnode = ProtocolTreeNode("participant", {"jid": jid}) participants.append(pnode) removeNode.addChildren(participants) node.addChild(removeNode) return node
def toProtocolTreeNode(self): node = super(PictureIqProtocolEntity, self).toProtocolTreeNode() attribs = {"type": "image", "id": self.pictureId} pictureNode = ProtocolTreeNode("picture", attribs, None, self.getPictureData()) previewNode = ProtocolTreeNode("picture", {"type": "preview"}, None, self.getPreviewData()) node.addChild(pictureNode) node.addChild(previewNode) return node
def setUp(self): super(GetSyncIqProtocolEntityTest, self).setUp() self.ProtocolEntity = GetSyncIqProtocolEntity users = [ ProtocolTreeNode("user", data="abc"), ProtocolTreeNode("user", data="xyz") ] syncNode = self.node.getChild("sync") syncNode.setAttribute("mode", GetSyncIqProtocolEntity.MODE_DELTA) syncNode.setAttribute("context", GetSyncIqProtocolEntity.CONTEXT_INTERACTIVE) syncNode.addChildren(users)
def toProtocolTreeNode(self): node = super(RetryOutgoingReceiptProtocolEntity, self).toProtocolTreeNode() node.setAttribute("type", "retry") retry = ProtocolTreeNode( "retry", { "count": str(self.count), "t": str(self.t), "id": self.getId(), "v": str(self.v) }) node.addChild(retry) registration = ProtocolTreeNode("registration", data=self.regData) node.addChild(registration) return node