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
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