Beispiel #1
0
 def poll_uri_for_messages(self):
     with self.reboot_on_exception():
         log.msg("Polling %s for new messages to be sent out." % self.poll_uri)
         if self.modem_is_ready():
             deferred = request(self.poll_uri, method='GET')
             deferred.addCallback(self.poll_uri_for_messages_success)
             deferred.addErrback(self.poll_uri_for_messages_fail)
             return deferred
         else:
             log.err("Modem is not ready, no use polling.")
         # reschedule
         reactor.callLater(self.poll_interval, self.poll_uri_for_messages)
Beispiel #2
0
 def poll_uri_for_messages(self):
     with self.reboot_on_exception():
         log.msg("Polling %s for new messages to be sent out." %
                 self.poll_uri)
         if self.modem_is_ready():
             deferred = request(self.poll_uri, method='GET')
             deferred.addCallback(self.poll_uri_for_messages_success)
             deferred.addErrback(self.poll_uri_for_messages_fail)
             return deferred
         else:
             log.err("Modem is not ready, no use polling.")
         # reschedule
         reactor.callLater(self.poll_interval, self.poll_uri_for_messages)
Beispiel #3
0
 def post_message(self, message):
     if message:
         log.msg("Posting %s to %s" % (message, self.uri))
         deferred = request(self.uri, data={
             'sender_msisdn': message.sender,
             'recipient_msisdn': self.msisdn,
             'sms_id': uuid.uuid4(),
             'message': message.text,
         }, method='POST')
         deferred.addCallback(self.post_message_success)
         deferred.addErrback(self.post_message_failed, message)
     else:
         log.msg("No messages available, checking again after %s seconds" % self.interval)
     return reactor.callLater(self.interval, self.poll_modem_for_messages)
Beispiel #4
0
 def post_message(self, message):
     if message:
         log.msg("Posting %s to %s" % (message, self.uri))
         deferred = request(self.uri,
                            data={
                                'sender_msisdn': message.sender,
                                'recipient_msisdn': self.msisdn,
                                'sms_id': uuid.uuid4(),
                                'message': message.text,
                            },
                            method='POST')
         deferred.addCallback(self.post_message_success)
         deferred.addErrback(self.post_message_failed, message)
     else:
         log.msg("No messages available, checking again after %s seconds" %
                 self.interval)
     return reactor.callLater(self.interval, self.poll_modem_for_messages)
Beispiel #5
0
 def poll_uri_for_messages_success(self, result):
     required_keys = ['recipient', 'text', 'uri']
     messages = json.loads(result)
     for message in messages:
         # check if the JSON makes any sense
         if all([k in message for k in required_keys]):
             # try and send the SMS
             if self.modem.send_sms(recipient=message['recipient'],
                                    text=message['text']):
                 # send an HTTP DELETE to the URI specified in the message
                 log.msg('Message sent, sending DELETE to %(uri)s' % message)
                 deferred = request(str(message['uri']), method='DELETE')
                 deferred.addCallback(self.delete_message_success)
                 deferred.addErrback(log.err)
             else:
                 log.err('Unable to send SMS, no clue why.')
         else:
             log.err("Invalid JSON message received, missing " \
                     "entries: %s" % (required_keys - message.keys(),))
Beispiel #6
0
 def poll_uri_for_messages_success(self, result):
     required_keys = ['recipient', 'text', 'uri']
     messages = json.loads(result)
     for message in messages:
         # check if the JSON makes any sense
         if all([k in message for k in required_keys]):
             # try and send the SMS
             if self.modem.send_sms(recipient=message['recipient'],
                                    text=message['text']):
                 # send an HTTP DELETE to the URI specified in the message
                 log.msg('Message sent, sending DELETE to %(uri)s' %
                         message)
                 deferred = request(str(message['uri']), method='DELETE')
                 deferred.addCallback(self.delete_message_success)
                 deferred.addErrback(log.err)
             else:
                 log.err('Unable to send SMS, no clue why.')
         else:
             log.err("Invalid JSON message received, missing " \
                     "entries: %s" % (required_keys - message.keys(),))