def find_documents(self): """ find valid documents :return: """ self._find_documents() documents = Configuration.indexed_documents() documents_added = [] for document in self._documents_finded: if document in documents: documents.remove(document) else: documents_added.append(document) return documents_added, documents
def search(self): self.ui.banner.setVisible(False) if len(Configuration.indexed_documents()) != 0: query_manager = QueryManager() results = query_manager.serch( to_search=unicode(self.ui.search_text.text()), field=FIELD_OPTIONS[self.ui.search_filter.currentIndex()] ) if len(results) == 0: self.ui.info_label.setText( _from_Utf8( 'No se encontró ningún documento con esa descripción' ) ) self.ui.search_results_list.setVisible(False) self.ui.info_label.setVisible(True) else: self.ui.search_results_list.clear() for result in results: self.ui.search_results_list.addItem(result['url']) self.ui.search_results_list.setVisible(True) self.ui.info_label.setVisible(False) else: self.ui.info_label.setText( _from_Utf8( 'No exsiten documentos indexados en la base de datos' ) ) self.ui.search_results_list.setVisible(False) self.ui.info_label.setVisible(True)
def index(self): """ index all documents available :return: """ self.cancel = False # start progress bar data current_document = 0 total_documents = len(self.documents_added) + len(self.documents_deleted) # start info data documents_added = 0 documents_deleted = 0 # update progress bar self.updated_progress.emit(ADDING_STATE, current_document * 100 / total_documents) # add new documents for document_added in self.documents_added: file_info = QtCore.QFileInfo(document_added) document_type = str(file_info.suffix().toLower()) if document_type in DOCUMENTS_PARSERS: parser = DOCUMENTS_PARSERS[document_type] parser.set_filename(document_added) self._index_document( title=parser.title(), author=parser.author(), content=parser.content(), url=unicode(document_added) ) current_document += 1 documents_added += 1 # update indexed documents configuration indexed_documents = Configuration.indexed_documents() indexed_documents.append(document_added) Configuration.set_indexed_documents(indexed_documents) # update info self.updated_info.emit(documents_added, documents_deleted) # cancel index process if self.cancel: self.update_canceled.emit() return # update progress bar self.updated_progress.emit(ADDING_STATE, current_document * 100 / total_documents) # update progress bar self.updated_progress.emit(REMOVING_STATE, current_document * 100 / total_documents) # delete removed documents for document_deleted in self.documents_deleted: self._remove_document(content=document_deleted) current_document += 1 documents_deleted += 1 indexed_documents = Configuration.indexed_documents() indexed_documents.remove(document_deleted) Configuration.set_indexed_documents(indexed_documents) # update info self.updated_info.emit(documents_added, documents_deleted) # cancel index process if self.cancel: self.update_canceled.emit() return # update progress bar self.updated_progress.emit(REMOVING_STATE, current_document * 100 / total_documents) # update progress bar self.updated_progress.emit(DONE_STATE, 100) # update info self.updated_info.emit(documents_added, documents_deleted)