From kde-commits Mon Apr 30 15:27:21 2018 From: Volker Krause Date: Mon, 30 Apr 2018 15:27:21 +0000 To: kde-commits Subject: [kdepim-addons] plugins/messageviewer/bodypartformatter/semantic: Add support for the new PDF extrac Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=152510205219484 Git commit f3964e5a945c4bb41c6665d9aa6e609b62b1e371 by Volker Krause. Committed on 30/04/2018 at 15:27. Pushed by vkrause into branch 'master'. Add support for the new PDF extractors M +8 -5 plugins/messageviewer/bodypartformatter/semantic/semanticpro= cessor.cpp https://commits.kde.org/kdepim-addons/f3964e5a945c4bb41c6665d9aa6e609b62b1e= 371 diff --git a/plugins/messageviewer/bodypartformatter/semantic/semanticproce= ssor.cpp b/plugins/messageviewer/bodypartformatter/semantic/semanticprocess= or.cpp index e653336e..de568195 100644 --- a/plugins/messageviewer/bodypartformatter/semantic/semanticprocessor.cpp +++ b/plugins/messageviewer/bodypartformatter/semantic/semanticprocessor.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include = #include @@ -102,20 +103,22 @@ MimeTreeParser::MessagePart::Ptr SemanticProcessor::p= rocess(MimeTreeParser::Inte qCDebug(SEMANTIC_LOG) << "Found unstructured extractor rules for messa= ge" << extractors.size(); = ExtractorPreprocessor preproc; + std::unique_ptr pdfDoc; if (part.content()->contentType()->isPlainText()) { preproc.preprocessPlainText(part.content()->decodedText()); } else if (part.content()->contentType()->isHTMLText()) { preproc.preprocessHtml(part.content()->decodedText()); } else if (part.content()->contentType()->mimeType() =3D=3D "applicati= on/pdf") { - preproc.preprocessPdf(part.content()->decodedContent()); + pdfDoc.reset(PdfDocument::fromData(part.content()->decodedContent(= ))); } = + ExtractorEngine engine; + engine.setSenderDate(static_cast(part.content()->top= Level())->date()->dateTime()); + engine.setText(preproc.text()); + engine.setPass(pass.get()); + engine.setPdfDocument(pdfDoc.get()); for (auto extractor : extractors) { - ExtractorEngine engine; engine.setExtractor(extractor); - engine.setSenderDate(static_cast(part.content()-= >topLevel())->date()->dateTime()); - engine.setText(preproc.text()); - engine.setPass(pass.get()); const auto data =3D engine.extract(); qCDebug(SEMANTIC_LOG).noquote() << QJsonDocument(data).toJson(); const auto decodedData =3D JsonLdDocument::fromJson(data);