Пример #1
0
    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
Пример #2
0
    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)
Пример #3
0
 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)
Пример #4
0
    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)