def deserialize_responses(self, response_list): """ Takes the list of response items and returns the list converted to Response objects. """ Statement = self.get_model('statement') Response = self.get_model('response') proxy_statement = Statement('') for response in response_list: text = response['text'] del response['text'] proxy_statement.add_response(Response(text, **response)) return proxy_statement.in_response_to
def mongo_to_object(self, statement_data): """ Return Statement object when given data returned from Mongo DB. """ Statement = self.get_model('statement') statement_text = statement_data['text'] del statement_data['text'] statement_data['in_response_to'] = self.deserialize_responses( statement_data.get('in_response_to', [])) return Statement(statement_text, **statement_data)
def process(self, statement): if len(self.client_loc) != 2: return 0, Statement("location unavailable") else: confidence = 1 response = urllib.request.urlopen( "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=" + str(self.client_loc[0]) + "," + str(self.client_loc[1]) + "&radius=5000&type=" + self.type + "&keyword=" + self.keyw + "&key=AIzaSyC21aC_05Zdm7o9wUox5SM5EWYq8YKF4d8") data = json.loads(response.read().decode('utf-8')) response_str = "" for i in range(5): p_id = data['results'][i]['place_id'] ref_resp = urllib.request.urlopen( "https://maps.googleapis.com/maps/api/place/details/json?placeid=" + p_id + "&key=AIzaSyC21aC_05Zdm7o9wUox5SM5EWYq8YKF4d8") ref_data = json.loads(ref_resp.read().decode('utf-8')) ref_url = ref_data['result']['url'] response_str += '<a href="' + ref_url + '" target="_blank">' + data[ 'results'][i]['name'] + '</a><br />' #print(self.client_loc[1]) return confidence, Statement(response_str)
def find(self, statement_text): Statement = self.get_model('statement') query = self.base_query.statement_text_equals(statement_text) values = self.statements.find_one(query.value()) if not values: return None del values['text'] # Build the objects for the response list values['in_response_to'] = self.deserialize_responses( values.get('in_response_to', [])) return Statement(statement_text, **values)