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