KItinerary
pkpassdocumentprocessor.cpp
40bool PkPassDocumentProcessor::canHandleData(const QByteArray &encodedData, QStringView fileName) const
46ExtractorDocumentNode PkPassDocumentProcessor::createNodeFromData(const QByteArray &encodedData) const
56 node.setContextDateTime(pass->relevantDate().addDays(-1)); // go a bit back, to compensate for unknown departure timezone at this point
61ExtractorDocumentNode PkPassDocumentProcessor::createNodeFromContent(const QVariant &decodedData) const
71 node.setContextDateTime(pass->relevantDate().addDays(-1)); // go a bit back, to compensate for unknown departure timezone at this point
76void PkPassDocumentProcessor::expandNode(ExtractorDocumentNode &node, const ExtractorEngine *engine) const
93QJSValue PkPassDocumentProcessor::contentToScriptValue(const ExtractorDocumentNode &node, QJSEngine *engine) const
119 if (s.isEmpty() || s.size() > 10 || s.count(QLatin1Char('-')) > 1 || s.count(QLatin1Char(' ')) > 2) {
187 // "relevantDate" is the best guess for the boarding time if we didn't find an explicit field for it
189 const auto tz = KnowledgeDb::timezoneForAirport(KnowledgeDb::IataCode{flight.departureAirport().iataCode()});
261 if (pass->expirationDate().isValid() && pass->relevantDate().date() == pass->expirationDate().date() &&
305void PkPassDocumentProcessor::preExtract(ExtractorDocumentNode &node, [[maybe_unused]] const ExtractorEngine *engine) const
363 // if this doesn't contain a single IATA BCBP we wont be able to get sufficient information out of this
367 res = JsonLdDocument::apply(node.childNodes()[0].result().result().at(0), res).value<FlightReservation>();
379 flightRes.setReservationFor(extractBoardingPass(pass, flightRes.reservationFor().value<Flight>()));
403void PkPassDocumentProcessor::postExtract(ExtractorDocumentNode &node, [[maybe_unused]] const ExtractorEngine *engine) const
ExtractorDocumentNode createNode(const QByteArray &data, QStringView fileName={}, QStringView mimeType={}) const
Create a new document node from data.
Definition extractordocumentnodefactory.cpp:157
A node in the extracted document object tree.
Definition extractordocumentnode.h:50
void setResult(ExtractorResult &&result)
Replace the existing results by result.
Definition extractordocumentnode.cpp:160
void appendChild(ExtractorDocumentNode &child)
Add another child node.
Definition extractordocumentnode.cpp:141
void setContextDateTime(const QDateTime &contextDateTime)
Set the context date/time.
Definition extractordocumentnode.cpp:173
QDateTime contextDateTime
The best known context date/time at this point in the document tree.
Definition extractordocumentnode.h:68
void setContent(const QVariant &content)
Set decoded content.
Definition extractordocumentnode.cpp:120
KItinerary::ExtractorDocumentNode parent
The parent node, or a null node if this is the root node.
Definition extractordocumentnode.h:55
const ExtractorDocumentNodeFactory * documentNodeFactory() const
Factory for creating new document nodes.
Definition engine/extractorengine.cpp:175
static QVariant apply(const QVariant &lhs, const QVariant &rhs)
Apply all properties of rhs on to lhs.
Definition jsonlddocument.cpp:564
static QVariant fromJsonSingular(const QJsonObject &obj)
Convert a single JSON-LD object into an instantiated data type.
Definition jsonlddocument.cpp:361
Processor for Apple Wallet pass files.
Definition pkpassdocumentprocessor.h:15
void preExtract(ExtractorDocumentNode &node, const ExtractorEngine *engine) const override
Called before extractors are applied to node.
Definition pkpassdocumentprocessor.cpp:305
ExtractorDocumentNode createNodeFromContent(const QVariant &decodedData) const override
Create a document node from an already decoded data type.
Definition pkpassdocumentprocessor.cpp:61
QJSValue contentToScriptValue(const ExtractorDocumentNode &node, QJSEngine *engine) const override
Create a QJSValue for the node content.
Definition pkpassdocumentprocessor.cpp:93
ExtractorDocumentNode createNodeFromData(const QByteArray &encodedData) const override
Create a document node from raw data.
Definition pkpassdocumentprocessor.cpp:46
void postExtract(ExtractorDocumentNode &node, const ExtractorEngine *engine) const override
Called after extractors have been applied to node.
Definition pkpassdocumentprocessor.cpp:403
void destroyNode(ExtractorDocumentNode &node) const override
Destroys type-specific data in node.
Definition pkpassdocumentprocessor.cpp:88
void expandNode(ExtractorDocumentNode &node, const ExtractorEngine *engine) const override
Create child nodes for node, as far as that's necessary for this document type.
Definition pkpassdocumentprocessor.cpp:76
static Pass * fromData(const QByteArray &data, QObject *parent=nullptr)
AKONADI_CALENDAR_EXPORT KCalendarCore::Event::Ptr event(const Akonadi::Item &item)
bool canConvert(const QVariant &value)
Checks if the given value can be up-cast to T.
Definition datatypes.h:31
QTimeZone timezoneForAirport(IataCode iataCode)
Returns the timezone the airport with IATA code iataCode is in.
Definition airportdb.cpp:40
std::vector< IataCode > iataCodesFromName(QStringView name)
Returns all possible IATA code candidates for the given airport name.
Definition airportdb.cpp:209
GeoCoordinates geo(const QVariant &location)
Returns the geo coordinates of a given location.
Definition locationutil.cpp:118
Classes for reservation/travel data models, data extraction and data augmentation.
Definition berelement.h:17
bool isValid() const const
QString toString(QStringView format, QCalendar cal) const const
QJSValue toScriptValue(const T &value)
iterator insert(iterator before, const QJsonValue &value)
iterator insert(QLatin1StringView key, const QJsonValue &value)
QJsonValue value(QLatin1StringView key) const const
QJsonObject toObject() const const
qsizetype count() const const
bool isEmpty() const const
bool isNull() const const
qsizetype size() const const
CaseInsensitive
ISODate
T value() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:14:49 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:14:49 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.