コード例 #1
0
    def on_receive(self, message):
        log.log_info("Orchestrator received message: {:}".format(message))
        if message['method'] == 'load_file':
            data = message['data']
            if data['file']:
                response = self.document_parser.ask(message)
                if response['status'] == 0:
                    return msg.build_response(status=0)
                else:
                    return msg.build_response(
                        status=-2,
                        error_msg="Orchestrator.load_file failed: {:}".format(
                            response['error_msg']))
            else:
                return msg.build_response(
                    status=-1,
                    error_msg="No file provided to Orchestrator.load_file")
        elif message['method'] == 'search':
            data = message['data']
            if data['query']:
                response = self.query_processor.ask(
                    msg.build_request(method='query', data=message['data']))
                if response['status'] == 0:
                    return response
            else:
                return msg.build_response(
                    status=-1,
                    error_msg="No word provided to Orchestrator.search")

        return msg.build_response(
            status=-13,
            error_msg="No method to process message: {:}".format(message))
コード例 #2
0
    def on_receive(self, message):
        log.log_info("QueryProcessor received message: {:}".format(message))
        if message['method'] == 'query':
            data = message['data']
            if data['query']:
                return self._process_query(message['data']['query'])
            else:
                return msg.build_response(
                    status=-1,
                    error_msg="QueryProcessor.query no query provided")

        return msg.build_response(
            status=-13,
            error_msg="No method to process message: {:}".format(message))
コード例 #3
0
    def on_receive(self, message):
        log.log_info("DocumentParser received message: {:}".format(message))
        if message['method'] == 'load_file':
            data = message['data']
            if data['file']:
                self._load_file(data['file'])
                return msg.build_response(status=0)
            else:
                return msg.build_response(
                    status=-1,
                    error_msg="DocumentParser.load_file no file provided")
        elif message['method'] == 'stem_word':
            data = message['data']
            if data['word']:
                stem = self._stem_word(data['word'])
                return msg.build_response(status=0, data={'stem': stem})
            else:
                return msg.build_response(
                    status=-1,
                    error_msg="DocumentParser.stem_word no word provided")
        elif message['method'] == 'get_doc':
            data = message['data']
            if data['doc_id']:
                info = self._get_doc_info(data['doc_id'])
                return msg.build_response(status=0, data=info)
            else:
                return msg.build_response(
                    status=-1,
                    error_msg="DocumentParser.get_doc no doc id provided")

        return msg.build_response(
            status=-13,
            error_msg="No method to process message: {:}".format(message))
コード例 #4
0
 def _process_query(self, query):
     # assume single word query
     query = str(query).lower()
     stem_word = self._stem_word(query)
     if stem_word != "":
         response = self.index_handler.ask(
             msg.build_request(method='search', data={'word': stem_word}))
         if response['status'] == 0:
             # TODO(JC): Add document retrival
             result = self._beautify_result(response['data'], query)
             return msg.build_response(status=0, data=result)
         else:
             return msg.build_response(
                 status=-3,
                 error_msg="QueryProcessor.process_query failed: {:}".
                 format(response['error_msg']))
     else:
         return msg.build_response(status=-2,
                                   error_msg="Stemmed word is empty string")
コード例 #5
0
    def on_receive(self, message):
        if message['method'] == 'log_info':
            data = message['msg']
            if data['msg']:
                self._log_info(data['msg'])
                return msg.build_response(status=0)
            else:
                return msg.build_response(
                    status=-1, error_msg="Logger.log_info no message provided")

        elif message['method'] == 'log_warning':
            data = message['msg']
            if data['msg']:
                self._log_warning(data['msg'])
                return msg.build_response(status=0)
            else:
                return msg.build_response(
                    status=-1,
                    error_msg="Logger.log_warning no message provided")

        elif message['method'] == 'log_error':
            data = message['msg']
            if data['msg']:
                self._log_error(data['msg'])
                return msg.build_response(status=0)
            else:
                return msg.build_response(
                    status=-1,
                    error_msg="Logger.log_error no message provided")
コード例 #6
0
    def on_receive(self, message):
        log.log_info("IndexHandler received message: {:}".format(message))
        if message['method'] == 'store_page':
            data = message['data']
            if data['page']:
                self._load_by_page(data['page'])
                return msg.build_response(status=0)
            else:
                return msg.build_response(
                    status=-1,
                    error_msg="IndexHandler.store_page no page provided")
        elif message['method'] == 'search':
            data = message['data']
            if data['word']:
                result = self._search(data['word'])
                return msg.build_response(status=0, data=result)
            else:
                return msg.build_response(
                    status=-1,
                    error_msg="IndexHandler.search no word provided")

        return msg.build_response(
            status=-13,
            error_msg="No method to process message: {:}".format(message))