Пример #1
0
    def test_incomingReceipt_multi(self):
        from yowsup_ext.layers.store.models.state import State

        messages = [self.sendMessage(), self.sendMessage(), self.sendMessage()]

        #get acks
        for message in messages:
            self.receiveAck(message)

        #get receipt
        receipt = IncomingReceiptProtocolEntity(str(time.time()), messages[0].getTo(),
            str(int(time.time())),
            items = [message.getId() for message in messages])

        self.stack.receive(receipt)

        # check
        for message in messages:
            state = self.getMessageState(message.getId())
            self.assertEqual(state.name, State.get_sent_delivered().name)


        receipt.type = "read"

        self.stack.receive(receipt)

        for message in messages:
            state = self.getMessageState(message.getId())
            self.assertEqual(state.name, State.get_sent_read().name)
Пример #2
0
 def onSuccess(self, successProtocolEntity):
     self.lock.acquire()
     
     for target in self.getProp(self.__class__.PROP_MESSAGES, []):
         #getProp() is trying to retreive the list of (jid, message) tuples, if none exist, use the default []
         print "@@@@@@", target
         print "mmmmm", "Spiniiiiiii"
         phone, message = target
         #phone = target
         #message = "Spiniiiii"
         #receipt = OutgoingReceiptProtocolEntity()
         if '@' in phone:
             messageEntity = TextMessageProtocolEntity(message, to = phone)
         elif '-' in phone:
             messageEntity = TextMessageProtocolEntity(message, to = "*****@*****.**" % phone)
         else:
             print "qqqqqq"
             messageEntity = TextMessageProtocolEntity(message, to = "*****@*****.**" % phone)
         receipt = IncomingReceiptProtocolEntity(messageEntity.getId(), phone, 'read', messageEntity.getParticipant())
         entity = IncomingAckProtocolEntity(receipt.getId(), 'receipt', phone, int(time.time()))
         print entity.getId()
         print "-->>", messageEntity.getId(), messageEntity.getFrom(), messageEntity.getParticipant()
         print "###", receipt.getId(), "type", receipt.getType()
         #append the id of message to ackQueue list
         #which the id of message will be deleted when ack is received.
         self.ackQueue.append(messageEntity.getId())
         self.toLower(messageEntity)
        # self.toLower(receipt)
     self.lock.release()
     print "lock released"
Пример #3
0
    def test_incomingReceipt_multi(self):
        from yowsup_ext.layers.store.models.state import State

        messages = [self.sendMessage(), self.sendMessage(), self.sendMessage()]

        #get acks
        for message in messages:
            self.receiveAck(message)

        #get receipt
        receipt = IncomingReceiptProtocolEntity(
            str(time.time()),
            messages[0].getTo(),
            str(int(time.time())),
            items=[message.getId() for message in messages])

        self.stack.receive(receipt)

        # check
        for message in messages:
            state = self.getMessageState(message.getId())
            self.assertEqual(state.name, State.get_sent_delivered().name)

        receipt.type = "read"

        self.stack.receive(receipt)

        for message in messages:
            state = self.getMessageState(message.getId())
            self.assertEqual(state.name, State.get_sent_read().name)
Пример #4
0
 def send_receipt(self, node, status=None):
     # status=None defualt indicates 'delivered'
     # alt: status='read'
     receipt = IncomingReceiptProtocolEntity(
         _id=node['id'], _from=node['to'],
         timestamp=str(int(time.time())), type=status)
     self.receive(receipt.toProtocolTreeNode())
Пример #5
0
    def test_incomingReceipt(self):
        from yowsup_ext.layers.store.models.state import State
        message = self.sendMessage()
        ack = self.receiveAck(message)

        receipt = IncomingReceiptProtocolEntity(message.getId(), message.getTo(), str(int(time.time())))
        self.stack.receive(receipt)

        state = self.getMessageState(message.getId())
        self.assertEqual(state.name, State.get_sent_delivered().name)

        receipt.type = "read"

        self.stack.receive(receipt)
        state = self.getMessageState(message.getId())
        self.assertEqual(state.name, State.get_sent_read().name)
Пример #6
0
def receipt_incoming_protocol_entity():
    attributes = {
        "_id": "123",
        "_from": "sender",
        "timestamp": int(time.time())
    }
    return IncomingReceiptProtocolEntity(**attributes)
Пример #7
0
 def onSuccess(self, successProtocolEntity):
     for target in self.getProp(self.__class__.PROP_MESSAGES, []):
         phone, message = target
         messageEntity = TextMessageProtocolEntity(message, to=phone)
         receipt = IncomingReceiptProtocolEntity(messageEntity.getId(),
                                                 phone, int(time.time()))
         self.toLower(messageEntity)
         print "Testing"
         self.toLower(receipt)
Пример #8
0
    def test_incomingReceipt(self):
        from yowsup_ext.layers.store.models.state import State
        message = self.sendMessage()
        ack = self.receiveAck(message)

        receipt = IncomingReceiptProtocolEntity(message.getId(),
                                                message.getTo(),
                                                str(int(time.time())))
        self.stack.receive(receipt)

        state = self.getMessageState(message.getId())
        self.assertEqual(state.name, State.get_sent_delivered().name)

        receipt.type = "read"

        self.stack.receive(receipt)
        state = self.getMessageState(message.getId())
        self.assertEqual(state.name, State.get_sent_read().name)
    def fromProtocolTreeNode(node):
        entity = IncomingReceiptProtocolEntity.fromProtocolTreeNode(node)
        entity.__class__ = RetryIncomingReceiptProtocolEntity
        retryNode = node.getChild("retry")
        entity.setRetryData(
            ResultGetKeysIqProtocolEntity._bytesToInt(
                node.getChild("registration").data), retryNode["v"],
            retryNode["count"], retryNode["t"])

        return entity
Пример #10
0
    def fromProtocolTreeNode(node):
        entity = IncomingReceiptProtocolEntity.fromProtocolTreeNode(node)
        entity.__class__ = RetryIncomingReceiptProtocolEntity
        retryNode = node.getChild("retry")
        entity.setRetryData(
            ResultGetKeysIqProtocolEntity._bytesToInt(node.getChild("registration").data),
            retryNode["v"],
            retryNode["count"],
            retryNode["t"],
        )

        return entity
Пример #11
0
    def onSuccess(self, successProtocolEntity):
        self.lock.acquire()

        for target in self.getProp(self.__class__.PROP_MESSAGES, []):
            #getProp() is trying to retreive the list of (jid, message) tuples, if none exist, use the default []
            print "@@@@@@", target
            print "mmmmm", "Spiniiiiiii"
            phone, message = target
            #phone = target
            #message = "Spiniiiii"
            #receipt = OutgoingReceiptProtocolEntity()
            if '@' in phone:
                messageEntity = TextMessageProtocolEntity(message, to=phone)
            elif '-' in phone:
                messageEntity = TextMessageProtocolEntity(message,
                                                          to="*****@*****.**" % phone)
            else:
                print "qqqqqq"
                messageEntity = TextMessageProtocolEntity(
                    message, to="*****@*****.**" % phone)
            receipt = IncomingReceiptProtocolEntity(
                messageEntity.getId(), phone, 'read',
                messageEntity.getParticipant())
            entity = IncomingAckProtocolEntity(receipt.getId(), 'receipt',
                                               phone, int(time.time()))
            print entity.getId()
            print "-->>", messageEntity.getId(), messageEntity.getFrom(
            ), messageEntity.getParticipant()
            print "###", receipt.getId(), "type", receipt.getType()
            #append the id of message to ackQueue list
            #which the id of message will be deleted when ack is received.
            self.ackQueue.append(messageEntity.getId())
            self.toLower(messageEntity)
        # self.toLower(receipt)
        self.lock.release()
        print "lock released"
Пример #12
0
 def receive_receipt(self):
     receipt = IncomingReceiptProtocolEntity("123", "sender",
                                             int(time.time()))
     self.receive(receipt)
     return receipt
Пример #13
0
 def setUp(self):
     self.ProtocolEntity = IncomingReceiptProtocolEntity
     self.node = IncomingReceiptProtocolEntity(
         "123", "sender", int(time.time())).toProtocolTreeNode()