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