Hello community, here is the log from the commit of package kitinerary for openSUSE:Factory checked in at 2019-10-14 13:27:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kitinerary (Old) and /work/SRC/openSUSE:Factory/.kitinerary.new.2352 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kitinerary" Mon Oct 14 13:27:47 2019 rev:15 rq:737768 version:19.08.2 Changes: -------- --- /work/SRC/openSUSE:Factory/kitinerary/kitinerary.changes 2019-09-09 12:24:51.289868691 +0200 +++ /work/SRC/openSUSE:Factory/.kitinerary.new.2352/kitinerary.changes 2019-10-14 13:27:49.451536350 +0200 @@ -1,0 +2,14 @@ +Fri Oct 11 07:42:51 UTC 2019 - Luca Beltrame <[email protected]> + +- Update to 19.08.2 + * New bugfix release + * For more details please see: + * https://www.kde.org/announcements/announce-applications-19.08.2.php +- Changes since 19.08.1: + * Fix UTC conversion during date/time parsing + * Add another date format fallback for a new Lufthansa date format + * Add unit test for JSON-LD date/time parsing + * Fix date parsing in SNCF confirmation emails + * QLatin1Literal => QLatin1String to fix compilation with Qt 5.14 + +------------------------------------------------------------------- Old: ---- kitinerary-19.08.1.tar.xz kitinerary-19.08.1.tar.xz.sig New: ---- kitinerary-19.08.2.tar.xz kitinerary-19.08.2.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kitinerary.spec ++++++ --- /var/tmp/diff_new_pack.vywS5U/_old 2019-10-14 13:27:50.455533734 +0200 +++ /var/tmp/diff_new_pack.vywS5U/_new 2019-10-14 13:27:50.455533734 +0200 @@ -18,7 +18,7 @@ %bcond_without lang Name: kitinerary -Version: 19.08.1 +Version: 19.08.2 Release: 0 Summary: Data model and extraction system for travel reservations License: LGPL-2.1-or-later ++++++ kitinerary-19.08.1.tar.xz -> kitinerary-19.08.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-19.08.1/CMakeLists.txt new/kitinerary-19.08.2/CMakeLists.txt --- old/kitinerary-19.08.1/CMakeLists.txt 2019-09-03 03:50:49.000000000 +0200 +++ new/kitinerary-19.08.2/CMakeLists.txt 2019-10-08 02:30:45.000000000 +0200 @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.5) -set(PIM_VERSION "5.12.1") +set(PIM_VERSION "5.12.2") project(KItinerary VERSION ${PIM_VERSION}) set(CMAKE_CXX_STANDARD 14) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-19.08.1/autotests/jsonlddocumenttest.cpp new/kitinerary-19.08.2/autotests/jsonlddocumenttest.cpp --- old/kitinerary-19.08.1/autotests/jsonlddocumenttest.cpp 2019-08-30 09:27:33.000000000 +0200 +++ new/kitinerary-19.08.2/autotests/jsonlddocumenttest.cpp 2019-09-30 07:37:37.000000000 +0200 @@ -43,7 +43,7 @@ private Q_SLOTS: void initTestCase() { - qputenv("TZ", "GMT"); + qputenv("TZ", "America/Chicago"); } void testSerialization() @@ -382,6 +382,33 @@ QCOMPARE(f1.airline().iataCode(), QLatin1String("AB")); QCOMPARE(f1.airline().name(), QLatin1String("Air Berlin")); } + + void testDateTimeParsing_data() + { + QTest::addColumn<QByteArray>("dtStr"); + QTest::addColumn<QDateTime>("result"); + + QTest::newRow("iso") << QByteArray("2018-08-15T22:00:00+02:00") << QDateTime({2018, 8, 15}, {22 ,00}, Qt::OffsetFromUTC, 7200); + QTest::newRow("weird LH format") << QByteArray("20200826T200000Z") << QDateTime({2020, 8, 26}, {20 ,00}, Qt::UTC); + } + + void testDateTimeParsing() + { + QFETCH(QByteArray, dtStr); + QFETCH(QDateTime, result); + + const auto b = QByteArray("[{" + "\"@context\": \"http://schema.org\"," + "\"@type\": \"Flight\"," + "\"departureTime\": \"" + dtStr + "\"" + "}]"); + const auto array = QJsonDocument::fromJson(b).array(); + const auto data = JsonLdDocument::fromJson(array); + QCOMPARE(data.size(), 1); + const auto flight = data[0].value<Flight>(); + QCOMPARE(flight.departureTime(), result); + QCOMPARE(flight.departureTime().timeSpec(), result.timeSpec()); + } }; QTEST_APPLESS_MAIN(JsonLdDocumentTest) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-19.08.1/po/cs/kitinerary.po new/kitinerary-19.08.2/po/cs/kitinerary.po --- old/kitinerary-19.08.1/po/cs/kitinerary.po 2019-09-03 03:50:49.000000000 +0200 +++ new/kitinerary-19.08.2/po/cs/kitinerary.po 2019-10-08 02:30:34.000000000 +0200 @@ -1,10 +1,10 @@ -# Vit Pelcak <[email protected]>, 2017, 2018. +# Vit Pelcak <[email protected]>, 2017, 2018, 2019. msgid "" msgstr "" "Project-Id-Version: desktop files\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-08-30 07:48+0200\n" -"PO-Revision-Date: 2018-08-30 16:51+0100\n" +"PO-Revision-Date: 2019-09-10 11:33+0200\n" "Last-Translator: Vit Pelcak <[email protected]>\n" "Language-Team: Czech <[email protected]>\n" "Language: cs\n" @@ -12,7 +12,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Lokalize 2.0\n" +"X-Generator: Lokalize 19.08.0\n" #: calendarhandler.cpp:179 #, kde-format @@ -58,7 +58,7 @@ #: calendarhandler.cpp:240 #, kde-format msgid "Train %1 from %2 to %3" -msgstr "" +msgstr "Vlak %1 z %2 do %3" #: calendarhandler.cpp:249 #, kde-format @@ -106,7 +106,7 @@ #: calendarhandler.cpp:389 #, kde-format msgid "Number Of People: %1" -msgstr "" +msgstr "Počet lidí: %1" #: calendarhandler.cpp:392 #, kde-format @@ -116,7 +116,7 @@ #: calendarhandler.cpp:396 #, kde-format msgid "Under name: %1" -msgstr "" +msgstr "Na jméno: %1" #: calendarhandler.cpp:406 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-19.08.1/po/zh_CN/kitinerary.po new/kitinerary-19.08.2/po/zh_CN/kitinerary.po --- old/kitinerary-19.08.1/po/zh_CN/kitinerary.po 2019-09-03 03:50:49.000000000 +0200 +++ new/kitinerary-19.08.2/po/zh_CN/kitinerary.po 2019-10-08 02:30:45.000000000 +0200 @@ -8,7 +8,7 @@ "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-08-30 07:48+0200\n" -"PO-Revision-Date: 2019-08-16 17:08\n" +"PO-Revision-Date: 2019-09-05 09:51\n" "Last-Translator: Guo Yunhe (guoyunhe)\n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-19.08.1/src/cli/org.kde.kitinerary-extractor.appdata.xml new/kitinerary-19.08.2/src/cli/org.kde.kitinerary-extractor.appdata.xml --- old/kitinerary-19.08.1/src/cli/org.kde.kitinerary-extractor.appdata.xml 2019-08-30 09:27:33.000000000 +0200 +++ new/kitinerary-19.08.2/src/cli/org.kde.kitinerary-extractor.appdata.xml 2019-09-30 07:37:37.000000000 +0200 @@ -47,7 +47,7 @@ <p xml:lang="es">Extractor de línea de órdenes para datos de itinerario. para integración en aplicaciones de terceros.</p> <p xml:lang="fi">Komentorivijäsennin varaustiedoille kolmannen osapuolen sovelluksia varten.</p> <p xml:lang="fr">Extracteur en ligne de commande pour les données d'itinéraires, afin de les intégrer à des applications tierces.</p> - <p xml:lang="gl">Extractor de liña de ordes de datos de itinerarios, para integrar con aplicativos de terceiros.</p> + <p xml:lang="gl">Extractor de liña de ordes de datos de itinerarios, para integrar con aplicacións de terceiros.</p> <p xml:lang="id">Pengekstrak baris data untuk data rencana perjalanan, untuk pengintegrasian ke dalam aplikasi pihak ketiga.</p> <p xml:lang="it">Estrattore a riga di comando per dati di itinerari, per l'integrazione con applicazioni di terze parti.</p> <p xml:lang="nl">Extractor van reisgegevens op de opdrachtregel, voor integratie in toepassingen van derden.</p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-19.08.1/src/datatypes/ticket.cpp new/kitinerary-19.08.2/src/datatypes/ticket.cpp --- old/kitinerary-19.08.1/src/datatypes/ticket.cpp 2019-08-30 09:27:33.000000000 +0200 +++ new/kitinerary-19.08.2/src/datatypes/ticket.cpp 2019-09-30 07:37:37.000000000 +0200 @@ -54,7 +54,7 @@ Ticket::TicketTokenType Ticket::ticketTokenType() const { - if (d->ticketToken.startsWith(QLatin1Literal("qrcode:"), Qt::CaseInsensitive)) { + if (d->ticketToken.startsWith(QLatin1String("qrcode:"), Qt::CaseInsensitive)) { return QRCode; } else if (d->ticketToken.startsWith(QLatin1String("aztec"), Qt::CaseInsensitive)) { return AztecCode; @@ -68,7 +68,7 @@ QString Ticket::ticketTokenData() const { - if (d->ticketToken.startsWith(QLatin1Literal("qrcode:"), Qt::CaseInsensitive)) { + if (d->ticketToken.startsWith(QLatin1String("qrcode:"), Qt::CaseInsensitive)) { return ticketToken().mid(7); } else if (d->ticketToken.startsWith(QLatin1String("azteccode:"), Qt::CaseInsensitive)) { return ticketToken().mid(10); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-19.08.1/src/extractors/sncf.js new/kitinerary-19.08.2/src/extractors/sncf.js --- old/kitinerary-19.08.1/src/extractors/sncf.js 2019-08-30 09:27:33.000000000 +0200 +++ new/kitinerary-19.08.2/src/extractors/sncf.js 2019-09-30 07:37:37.000000000 +0200 @@ -151,12 +151,12 @@ res.reservationNumber = pnr[0].content; } - res.reservationFor.departureTime = JsonLd.toDateTime(dt + segmentDetail.content, "dd MMMMhh'h'mm", "fr"); + res.reservationFor.departureTime = JsonLd.toDateTime(dt + segmentDetail.content, "d MMMMhh'h'mm", "fr"); segmentDetail = segmentDetail.nextSibling; res.reservationFor.departureStation.name = segmentDetail.content; } else if (cls.includes("segment-arrival")) { - res.reservationFor.arrivalTime = JsonLd.toDateTime(dt + segmentDetail.content, "dd MMMMhh'h'mm", "fr"); + res.reservationFor.arrivalTime = JsonLd.toDateTime(dt + segmentDetail.content, "d MMMMhh'h'mm", "fr"); segmentDetail = segmentDetail.nextSibling; res.reservationFor.arrivalStation.name = segmentDetail.content; reservations.push(res); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-19.08.1/src/jsonlddocument.cpp new/kitinerary-19.08.2/src/jsonlddocument.cpp --- old/kitinerary-19.08.1/src/jsonlddocument.cpp 2019-08-30 09:27:33.000000000 +0200 +++ new/kitinerary-19.08.2/src/jsonlddocument.cpp 2019-09-30 07:37:37.000000000 +0200 @@ -54,7 +54,8 @@ static const char *fallbackDateTimePattern[] = { "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", - "MM-dd-yyyy HH:mm" // yes, seriously ;( + "MM-dd-yyyy HH:mm", // yes, seriously ;( + "yyyyMMddTHHmmsst" }; static const auto fallbackDateTimePatternCount = sizeof(fallbackDateTimePattern) / sizeof(const char *); @@ -88,6 +89,10 @@ for (unsigned int i = 0; i < fallbackDateTimePatternCount && dt.isNull(); ++i) { dt = QDateTime::fromString(str, QString::fromLatin1(fallbackDateTimePattern[i])); } + // HACK QDateTimeParser handles 't' in the format but then forces it back to LocalTime in the end... + if (dt.isValid() && dt.timeSpec() == Qt::LocalTime && str.endsWith(QLatin1Char('Z'))) { + dt = dt.toTimeSpec(Qt::UTC); + } if (dt.isNull()) { qCDebug(Log) << "Datetime parsing failed for" << str; }
