示例#1
0
 def sms_verify_contactID(self,phone_number):
     params = {}
     result = ""
     params['ListName'] = "Kagazzle"
     params['MobileNumber'] = phone_number
     self.smsGateway = SMSGateway()
     response =  self.smsGateway.getContactId(params)
     if response['STATUSCODE'] == '1':
         logging.info(response)
         key = phone_number
         try:
             member = Member(key_name= str(key))
             member.sms_contactID = response['CONTACTID']
             member.put()
             logging.info(str(member.toDict()))
         except:
             logging.error('Error in setting member with phone number:%s' % phone_number)
         result = response['CONTACTID']
     return result
示例#2
0
class Dispatcher():
    def __init__(self):

        pass

    def dispatch(self,xml_data):
        try:
            logging.info("dispatch")
            #result = self.parseXML(xml_data)  #testing keyword forwarding
            result = self.routeMessage(xml_data)

        except:
            logging.error("Invalid Method: dispatch")
            result = "bad method %s" %  xml_data
        return result

    def parseXML(self, xml_data):
        logging.info(xml_data)
        #phone_number = xml_data['PHONENUMBER']
        dom = parseString(xml_data)
        logging.info('gotDOM')
        xmlTag = dom.getElementsByTagName('PHONENUMBER')[0].toxml()
        logging.info('gotxmlTag')
        phone_number=xmlTag.replace('<PHONENUMBER>','').replace('</PHONENUMBER>','')
        logging.info(phone_number)
        contactID= self.sms_verify_contactID(phone_number)
        logging.info("Got this contactID:%s" % contactID)
        result = self.sendVerifyMessage(contactID)
        logging.info("Got this Verify:%s" % result)
        return result

    #added this function so that we can forward Kagazzle keyword signups to kagazzle
    def routeMessage(self,xml_data):
        logging.info("routing message from trumpia")
        dom = parseString(xml_data)
        xmlTag = dom.getElementsByTagName('KEYWORD')[0].toxml()
        keyword = xmlTag.replace('<KEYWORD>','').replace('</KEYWORD>','')
        if keyword == "Kagazzle":
            return self.parseXML(xml_data)
        else:
            return self.forwardTo(xml_data)

    def forwardTo(self,xml_data):
        logging.info("routing signup to where ever")
        hooks = {}
        hooks['cb'] = self.request_done_callback()
        request_url = "http://x.appspot.com/XML_RPC"
        request_url += "?xml=%s" % xml_data
        try:
            response = requests.get(request_url,hooks=hooks)
        except:
            return None
        else:
            logging.info("response from kagazzle:%s"%response.text)
            return response.text

    def request_done_callback(self):
        logging.info("kagazzle_request_complete")



    def sendVerifyMessage(self,contactID):
        params = {}
        params['ListName'] = "Kagazzle"
        params['ContactIDs'] = contactID
        params['SMSMessage'] = "Welcome! You are now verified. Msg&Data rates may apply. Up to 217 msg/mo of offers.\
Reply HELP for help. Reply STOP to cancel. 512-666-7440"

        result = self.smsGateway.sendtocontact(params)
        return result

    def sms_verify_contactID(self,phone_number):
        params = {}
        result = ""
        params['ListName'] = "Kagazzle"
        params['MobileNumber'] = phone_number
        self.smsGateway = SMSGateway()
        response =  self.smsGateway.getContactId(params)
        if response['STATUSCODE'] == '1':
            logging.info(response)
            key = phone_number
            try:
                member = Member(key_name= str(key))
                member.sms_contactID = response['CONTACTID']
                member.put()
                logging.info(str(member.toDict()))
            except:
                logging.error('Error in setting member with phone number:%s' % phone_number)
            result = response['CONTACTID']
        return result