File indexing completed on 2024-04-28 03:51:53
0001 /* 0002 This file is part of the KDE Baloo Project 0003 SPDX-FileCopyrightText: 2015 Pinak Ahuja <pinak.ahuja@gmail.com> 0004 0005 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0006 */ 0007 0008 #include "indexer.h" 0009 #include "basicindexingjob.h" 0010 #include "database.h" 0011 #include "./extractor/result.h" 0012 0013 #include <KFileMetaData/Extractor> 0014 #include <KFileMetaData/PropertyInfo> 0015 0016 using namespace Baloo; 0017 0018 Indexer::Indexer(const QString& url, Transaction* tr) 0019 : m_url(url) 0020 , m_tr(tr) 0021 { 0022 } 0023 0024 void Indexer::index() 0025 { 0026 const QString mimetype = m_mimeDB.mimeTypeForFile(m_url).name(); 0027 BasicIndexingJob basicIJ(m_url, mimetype, BasicIndexingJob::NoLevel); 0028 basicIJ.index(); 0029 Baloo::Document doc = basicIJ.document(); 0030 0031 Result result(m_url, mimetype, KFileMetaData::ExtractionResult::ExtractMetaData | KFileMetaData::ExtractionResult::ExtractPlainText); 0032 result.setDocument(doc); 0033 0034 const QList<KFileMetaData::Extractor*> exList = m_extractorCollection.fetchExtractors(mimetype); 0035 0036 for (KFileMetaData::Extractor* ex : exList) { 0037 ex->extract(&result); 0038 } 0039 0040 result.finish(); 0041 if (m_tr->hasDocument(doc.id())) { 0042 m_tr->replaceDocument(doc, Everything); 0043 } else { 0044 m_tr->addDocument(result.document()); 0045 } 0046 }