Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kitinerary for openSUSE:Factory 
checked in at 2021-11-06 18:14:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kitinerary (Old)
 and      /work/SRC/openSUSE:Factory/.kitinerary.new.1890 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kitinerary"

Sat Nov  6 18:14:10 2021 rev:41 rq:929327 version:21.08.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/kitinerary/kitinerary.changes    2021-10-13 
18:03:02.754988622 +0200
+++ /work/SRC/openSUSE:Factory/.kitinerary.new.1890/kitinerary.changes  
2021-11-06 18:15:28.768805322 +0100
@@ -1,0 +2,10 @@
+Tue Nov  2 21:34:03 UTC 2021 - Christophe Giboudeaux <christo...@krop.fr>
+
+- Update to 21.08.3
+  * New bugfix release
+  * For more details please see:
+  * https://kde.org/announcements/gear/21.08.3/
+- Too many changes since 21.08.2, only listing bugfixes:
+  * Handle English language M??V ticket date formats (kde#444550)
+
+-------------------------------------------------------------------

Old:
----
  kitinerary-21.08.2.tar.xz
  kitinerary-21.08.2.tar.xz.sig

New:
----
  kitinerary-21.08.3.tar.xz
  kitinerary-21.08.3.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kitinerary.spec ++++++
--- /var/tmp/diff_new_pack.JLwrzj/_old  2021-11-06 18:15:30.480806209 +0100
+++ /var/tmp/diff_new_pack.JLwrzj/_new  2021-11-06 18:15:30.480806209 +0100
@@ -18,7 +18,7 @@
 
 %bcond_without lang
 Name:           kitinerary
-Version:        21.08.2
+Version:        21.08.3
 Release:        0
 Summary:        Data model and extraction system for travel reservations
 License:        LGPL-2.1-or-later


++++++ kitinerary-21.08.2.tar.xz -> kitinerary-21.08.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kitinerary-21.08.2/CMakeLists.txt 
new/kitinerary-21.08.3/CMakeLists.txt
--- old/kitinerary-21.08.2/CMakeLists.txt       2021-10-05 00:32:51.000000000 
+0200
+++ new/kitinerary-21.08.3/CMakeLists.txt       2021-11-01 16:12:32.000000000 
+0100
@@ -3,7 +3,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 
 cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
-set(PIM_VERSION "5.18.2")
+set(PIM_VERSION "5.18.3")
 project(KItinerary VERSION ${PIM_VERSION})
 
 set(CMAKE_CXX_STANDARD 17)
@@ -37,8 +37,8 @@
     find_package(SharedMimeInfo 1.3 REQUIRED)
 endif()
 
-set(KMIME_VERSION "5.18.2")
-set(PIM_PKPASS "5.18.2")
+set(KMIME_VERSION "5.18.3")
+set(PIM_PKPASS "5.18.3")
 
 find_package(KF5Mime ${KMIME_VERSION} CONFIG REQUIRED)
 find_package(KF5CalendarCore ${KF5_MIN_VERSION} CONFIG)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kitinerary-21.08.2/autotests/pkpassdata/eurowings.json 
new/kitinerary-21.08.3/autotests/pkpassdata/eurowings.json
--- old/kitinerary-21.08.2/autotests/pkpassdata/eurowings.json  2021-10-05 
00:32:51.000000000 +0200
+++ new/kitinerary-21.08.3/autotests/pkpassdata/eurowings.json  2021-11-01 
16:12:32.000000000 +0100
@@ -58,7 +58,7 @@
             "@type": "Person",
             "familyName": "KRAUSE",
             "givenName": "VOLKER",
-            "name": "VOLKER KRAUSE"
+            "name": "Volker Krause"
         }
     }
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kitinerary-21.08.2/autotests/pkpassdata/lufthansa-with-timezone.json 
new/kitinerary-21.08.3/autotests/pkpassdata/lufthansa-with-timezone.json
--- old/kitinerary-21.08.2/autotests/pkpassdata/lufthansa-with-timezone.json    
2021-10-05 00:32:51.000000000 +0200
+++ new/kitinerary-21.08.3/autotests/pkpassdata/lufthansa-with-timezone.json    
2021-11-01 16:12:32.000000000 +0100
@@ -58,7 +58,7 @@
             "@type": "Person",
             "familyName": "JOHN",
             "givenName": "DOE",
-            "name": "DOE JOHN"
+            "name": "Doe, John"
         }
     }
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kitinerary-21.08.2/autotests/pkpassdata/lufthansa.json 
new/kitinerary-21.08.3/autotests/pkpassdata/lufthansa.json
--- old/kitinerary-21.08.2/autotests/pkpassdata/lufthansa.json  2021-10-05 
00:32:51.000000000 +0200
+++ new/kitinerary-21.08.3/autotests/pkpassdata/lufthansa.json  2021-11-01 
16:12:32.000000000 +0100
@@ -59,7 +59,7 @@
             "@type": "Person",
             "familyName": "DOE",
             "givenName": "JOHN",
-            "name": "JOHN DOE"
+            "name": "Doe, John"
         }
     }
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kitinerary-21.08.2/po/ca/kitinerary.po 
new/kitinerary-21.08.3/po/ca/kitinerary.po
--- old/kitinerary-21.08.2/po/ca/kitinerary.po  2021-10-05 07:46:55.000000000 
+0200
+++ new/kitinerary-21.08.3/po/ca/kitinerary.po  2021-11-02 01:19:56.000000000 
+0100
@@ -4,7 +4,7 @@
 # version 3 or later versions approved by the membership of KDE e.V.
 #
 # Antoni Bella P??rez <antonibel...@yahoo.com>, 2018, 2020, 2021.
-# Josep Ma. Ferrer <txe...@gmail.com>, 2018, 2019, 2020.
+# Josep M. Ferrer <txe...@gmail.com>, 2018, 2019, 2020.
 msgid ""
 msgstr ""
 "Project-Id-Version: kitinerary\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kitinerary-21.08.2/po/ca@valencia/kitinerary.po 
new/kitinerary-21.08.3/po/ca@valencia/kitinerary.po
--- old/kitinerary-21.08.2/po/ca@valencia/kitinerary.po 2021-10-05 
07:46:55.000000000 +0200
+++ new/kitinerary-21.08.3/po/ca@valencia/kitinerary.po 2021-11-02 
01:19:56.000000000 +0100
@@ -4,7 +4,7 @@
 # version 3 or later versions approved by the membership of KDE e.V.
 #
 # Antoni Bella P??rez <antonibel...@yahoo.com>, 2018, 2020, 2021.
-# Josep Ma. Ferrer <txe...@gmail.com>, 2018, 2019, 2020.
+# Josep M. Ferrer <txe...@gmail.com>, 2018, 2019, 2020.
 msgid ""
 msgstr ""
 "Project-Id-Version: kitinerary\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kitinerary-21.08.2/po/zh_CN/kitinerary.po 
new/kitinerary-21.08.3/po/zh_CN/kitinerary.po
--- old/kitinerary-21.08.2/po/zh_CN/kitinerary.po       2021-10-05 
07:46:55.000000000 +0200
+++ new/kitinerary-21.08.3/po/zh_CN/kitinerary.po       2021-11-02 
01:19:56.000000000 +0100
@@ -8,7 +8,7 @@
 "Project-Id-Version: kdeorg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2021-05-24 00:17+0000\n"
-"PO-Revision-Date: 2021-09-27 13:10\n"
+"PO-Revision-Date: 2021-10-29 13:27\n"
 "Last-Translator: \n"
 "Language-Team: Chinese Simplified\n"
 "Language: zh_CN\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kitinerary-21.08.2/src/cli/org.kde.kitinerary-extractor.appdata.xml 
new/kitinerary-21.08.3/src/cli/org.kde.kitinerary-extractor.appdata.xml
--- old/kitinerary-21.08.2/src/cli/org.kde.kitinerary-extractor.appdata.xml     
2021-10-05 00:32:51.000000000 +0200
+++ new/kitinerary-21.08.3/src/cli/org.kde.kitinerary-extractor.appdata.xml     
2021-11-01 16:12:32.000000000 +0100
@@ -101,9 +101,9 @@
     <binary>kitinerary-extractor</binary>
   </provides>
   <releases>
+    <release version="5.18.3" date="2021-11-04"/>
     <release version="5.18.2" date="2021-10-07"/>
     <release version="5.18.1" date="2021-09-02"/>
     <release version="5.18.0" date="2021-08-12"/>
-    <release version="5.17.3" date="2021-07-08"/>
   </releases>
 </component>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kitinerary-21.08.2/src/lib/mergeutil.cpp 
new/kitinerary-21.08.3/src/lib/mergeutil.cpp
--- old/kitinerary-21.08.2/src/lib/mergeutil.cpp        2021-10-05 
00:32:51.000000000 +0200
+++ new/kitinerary-21.08.3/src/lib/mergeutil.cpp        2021-11-01 
16:12:32.000000000 +0100
@@ -320,6 +320,8 @@
     if (!lhs.departureTime().isValid() && !rhs.departureTime().isValid()) {
         qCDebug(CompareLog) << "unbound trip" << lhs.departureStation().name() 
<< rhs.departureStation().name() << lhs.arrivalStation().name() << 
rhs.arrivalStation().name();
         return lhs.departureStation().name() == rhs.departureStation().name() 
&& lhs.arrivalStation().name() == rhs.arrivalStation().name();
+    } else if (!equalAndPresent(lhs.departureTime(), rhs.departureTime())) {
+        return false;
     }
 
     if (lhs.trainNumber().isEmpty() || rhs.trainNumber().isEmpty()) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kitinerary-21.08.2/src/lib/processors/pkpassdocumentprocessor.cpp 
new/kitinerary-21.08.3/src/lib/processors/pkpassdocumentprocessor.cpp
--- old/kitinerary-21.08.2/src/lib/processors/pkpassdocumentprocessor.cpp       
2021-10-05 00:32:51.000000000 +0200
+++ new/kitinerary-21.08.3/src/lib/processors/pkpassdocumentprocessor.cpp       
2021-11-01 16:12:32.000000000 +0100
@@ -215,6 +215,12 @@
     // "relevantDate" is the best guess for the start time
     if (pass->relevantDate().isValid() && !event.startDate().isValid()) {
         event.setStartDate(pass->relevantDate());
+
+        // "expirationDate" is the best guess for the end time
+        if (pass->expirationDate().isValid() && pass->relevantDate().date() == 
pass->expirationDate().date() &&
+            pass->expirationDate() > pass->relevantDate() && 
!event.endDate().isValid()) {
+            event.setEndDate(pass->expirationDate());
+        }
     }
 
     // location is the best guess for the venue
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kitinerary-21.08.2/src/lib/scripts/eurowings-pkpass.js 
new/kitinerary-21.08.3/src/lib/scripts/eurowings-pkpass.js
--- old/kitinerary-21.08.2/src/lib/scripts/eurowings-pkpass.js  2021-10-05 
00:32:51.000000000 +0200
+++ new/kitinerary-21.08.3/src/lib/scripts/eurowings-pkpass.js  2021-11-01 
16:12:32.000000000 +0100
@@ -12,5 +12,17 @@
     if (pass.field["operatingcarrier"])
         res.reservationFor.airline.name = pass.field["operatingcarrier"].value;
 
+    const secondary = pass.secondaryFields;
+    const nameField = secondary.find(item => item.key === "name");
+    if (nameField) {
+        res.underName = JsonLd.newObject("Person");
+        res.underName.name = nameField.value;
+    }
+
+    const boardingGroup = secondary.find(item => item.key === "boardinggroup");
+    if (boardingGroup) {
+        res.boardingGroup = boardingGroup.value;
+    }
+
     return res;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kitinerary-21.08.2/src/lib/scripts/eurowings.js 
new/kitinerary-21.08.3/src/lib/scripts/eurowings.js
--- old/kitinerary-21.08.2/src/lib/scripts/eurowings.js 2021-10-05 
00:32:51.000000000 +0200
+++ new/kitinerary-21.08.3/src/lib/scripts/eurowings.js 2021-11-01 
16:12:32.000000000 +0100
@@ -6,11 +6,11 @@
 
 function main(text) {
     var reservations = new Array();
-    var bookingRef = text.match(/Individual reservation code:\s*\*\* 
([A-Z0-9]{6})/);
+    var bookingRef = text.match(/(?:Individual reservation code|Individueller 
Buchungscode):\s*\*\* ([A-Z0-9]{6})/);
 
     var pos = 0;
     while (true) {
-        var flightLine = text.substr(pos).match(/Flight: 
([0-9]{2}\.[0-9]{2}\.[0-9]{4})\s*\|\s*([A-Z0-9]{2}) ([0-9]{3,4}).*\n/);
+        var flightLine = text.substr(pos).match(/(?:Flight|Flug): 
([0-9]{2}\.[0-9]{2}\.[0-9]{4})\s*\|\s*([A-Z0-9]{2}) ([0-9]{3,4}).*\n/);
         if (!flightLine)
             break;
         var idx = flightLine.index + flightLine[0].length;
@@ -21,20 +21,20 @@
 
         res.reservationFor.airline.iataCode = flightLine[2];
 
-        var opByLine = text.substr(pos + idx).match(/^\s*\* operated by 
(.*)\n/);
+        var opByLine = text.substr(pos + idx).match(/^\s*\* (?:operated 
by|durchgef??hrt von) (.*)\n/);
         if (opByLine) {
             idx += opByLine.index + opByLine[0].length;
             res.reservationFor.airline.name = opByLine[1];
         }
 
-        var depLine = text.substr(pos + 
idx).match(/Departure:\s*([0-9]{2}:[0-9]{2})\s+(.*)\n/);
+        var depLine = text.substr(pos + 
idx).match(/(?:Departure|Abflug):\s*([0-9]{2}:[0-9]{2})\s+(.*)\n/);
         if (!depLine)
             break;
         idx += depLine.index + depLine[0].length;
         res.reservationFor.departureTime = JsonLd.toDateTime(flightLine[1] + ' 
' + depLine[1], "dd.MM.yyyy hh:mm", "en");
         res.reservationFor.departureAirport.name = depLine[2];
 
-        var arrLine = text.substr(pos + 
idx).match(/Arrival:\s*([0-9]{2}:[0-9]{2})\s+(.*)\n/);
+        var arrLine = text.substr(pos + 
idx).match(/(?:Arrival|Ankunft):\s*([0-9]{2}:[0-9]{2})\s+(.*)\n/);
         if (!arrLine)
             break;
         idx += arrLine.index + arrLine[0].length;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kitinerary-21.08.2/src/lib/scripts/eventbrite.js 
new/kitinerary-21.08.3/src/lib/scripts/eventbrite.js
--- old/kitinerary-21.08.2/src/lib/scripts/eventbrite.js        2021-10-05 
00:32:51.000000000 +0200
+++ new/kitinerary-21.08.3/src/lib/scripts/eventbrite.js        2021-11-01 
16:12:32.000000000 +0100
@@ -7,9 +7,19 @@
     if (node.result.length != 1) {
         return;
     }
+    var res = node.result[0];
+    // location can be a string rather than a place object
+    if (typeof res.reservationFor.location === "string") {
+        var place = JsonLd.newObject("Place");
+        place.name = res.reservationFor.location;
+        res.reservationFor.location = place;
+    }
+
     // streetAddress duplicates city and zip code without proper separation in
     // about half their emails...
-    var res = node.result[0];
+    if (!res.reservationFor.location.address) {
+        return res;
+    }
     var addr = res.reservationFor.location.address;
     if (addr.streetAddress.endsWith(addr.addressLocality)) {
         addr.streetAddress = addr.streetAddress.substr(0, 
addr.streetAddress.length - addr.addressLocality.length).trim();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kitinerary-21.08.2/src/lib/scripts/extractors.qrc 
new/kitinerary-21.08.3/src/lib/scripts/extractors.qrc
--- old/kitinerary-21.08.2/src/lib/scripts/extractors.qrc       2021-10-05 
00:32:51.000000000 +0200
+++ new/kitinerary-21.08.3/src/lib/scripts/extractors.qrc       2021-11-01 
16:12:32.000000000 +0100
@@ -58,6 +58,8 @@
         <file>feratel-card.js</file>
         <file>flixbus.json</file>
         <file>flixbus.js</file>
+        <file>gomus.json</file>
+        <file>gomus.js</file>
         <file>hertz.js</file>
         <file>hertz.json</file>
         <file>hotels.com.json</file>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kitinerary-21.08.2/src/lib/scripts/gomus.js 
new/kitinerary-21.08.3/src/lib/scripts/gomus.js
--- old/kitinerary-21.08.2/src/lib/scripts/gomus.js     1970-01-01 
01:00:00.000000000 +0100
+++ new/kitinerary-21.08.3/src/lib/scripts/gomus.js     2021-11-01 
16:12:32.000000000 +0100
@@ -0,0 +1,14 @@
+/*
+   SPDX-FileCopyrightText: 2021 Volker Krause <vkra...@kde.org>
+   SPDX-License-Identifier: LGPL-2.0-or-later
+*/
+
+function parsePass(pass, node) {
+    var event = node.result[0];
+    event.reservationFor.name = pass.field['event-name'].value;
+    event.reservationFor.location.name = pass.field['location'].value;
+    event.reservationFor.location.address = JsonLd.newObject('PostalAddress');
+    event.reservationFor.location.address.streetAddress = 
pass.locations[0].relevantText.match(/ in (.*)\.$/)[1];
+    event.reservedTicket.name = pass.description;
+    return event;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kitinerary-21.08.2/src/lib/scripts/gomus.json 
new/kitinerary-21.08.3/src/lib/scripts/gomus.json
--- old/kitinerary-21.08.2/src/lib/scripts/gomus.json   1970-01-01 
01:00:00.000000000 +0100
+++ new/kitinerary-21.08.3/src/lib/scripts/gomus.json   2021-11-01 
16:12:32.000000000 +0100
@@ -0,0 +1,13 @@
+{
+    "filter": [
+        {
+            "field": "passTypeIdentifier",
+            "match": "pass.de.gomus",
+            "mimeType": "application/vnd.apple.pkpass",
+            "scope": "Current"
+        }
+    ],
+    "function": "parsePass",
+    "mimeType": "application/vnd.apple.pkpass",
+    "script": "gomus.js"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kitinerary-21.08.2/src/lib/scripts/lufthansa-pkpass.js 
new/kitinerary-21.08.3/src/lib/scripts/lufthansa-pkpass.js
--- old/kitinerary-21.08.2/src/lib/scripts/lufthansa-pkpass.js  2021-10-05 
00:32:51.000000000 +0200
+++ new/kitinerary-21.08.3/src/lib/scripts/lufthansa-pkpass.js  2021-11-01 
16:12:32.000000000 +0100
@@ -14,5 +14,22 @@
     res.reservationFor.departureAirport.name = pass.field["origin"].label;
     res.reservationFor.arrivalAirport.name = pass.field["destination"].label;
 
+    const secondary = pass.secondaryFields;
+    const passengerName = secondary.find(item => item.key === "passenger");
+    if (passengerName) {
+        res.underName = JsonLd.newObject("Person");
+        res.underName.name = passengerName.value;
+    }
+
+    const back = pass.backFields;
+    const cancelLink = back.find(item => item.key === "cancel");
+    if (cancelLink) {
+        const cancelUrl = 
cancelLink.value.match(/https:\/\/mobile.lufthansa.com\/service\/checkin\?[A-Z0-9=&]*[A-Z0-9=&]/i);
+        if (cancelUrl) {
+            res.potentialAction = JsonLd.newObject("CancelAction");
+            res.potentialAction.url = cancelUrl[1];
+        }
+    }
+
     return res;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kitinerary-21.08.2/src/lib/scripts/mav.js 
new/kitinerary-21.08.3/src/lib/scripts/mav.js
--- old/kitinerary-21.08.2/src/lib/scripts/mav.js       2021-10-05 
00:32:51.000000000 +0200
+++ new/kitinerary-21.08.3/src/lib/scripts/mav.js       2021-11-01 
16:12:32.000000000 +0100
@@ -8,7 +8,7 @@
     const text = pdf.pages[triggerNode.location].text;
     var idx = 0;
     while (true) {
-        var trip = text.substr(idx).match(/(\d{4}\.\d{2}\.\d{2})\. 
*(\d{2}:\d{2}) *(.*) *-> *(.*) *(\d{2}:\d{2}) *(.*) *(\d)\./);
+        var trip = text.substr(idx).match(/(\d{2,4}\.\d{2}\.\d{2,4})\. 
*(\d{2}:\d{2}) *(.*) *-> *(.*) *(\d{2}:\d{2}) *(.*) *(\d)\./);
         if (!trip) {
             break;
         }
@@ -16,8 +16,8 @@
         var res = JsonLd.newTrainReservation();
         res.reservationFor.departureStation.name = trip[3];
         res.reservationFor.arrivalStation.name = trip[4];
-        res.reservationFor.departureTime = JsonLd.toDateTime(trip[1] + 
trip[2], "yyyy.MM.ddhh:mm", "hu");
-        res.reservationFor.arrivalTime = JsonLd.toDateTime(trip[1] + trip[5], 
"yyyy.MM.ddhh:mm", "hu");
+        res.reservationFor.departureTime = JsonLd.toDateTime(trip[1] + 
trip[2], ["yyyy.MM.ddhh:mm", "dd.MM.yyyyhh:mm"], "hu");
+        res.reservationFor.arrivalTime = JsonLd.toDateTime(trip[1] + trip[5], 
["yyyy.MM.ddhh:mm", "dd.MM.yyyyhh:mm"], "hu");
         res.reservationFor.trainNumber = trip[6];
         res.reservedTicket.ticketedSeat.seatingType = trip[7];
         res.reservedTicket.ticketToken = "pdf417bin:" + 
Barcode.toBase64(triggerNode.content);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kitinerary-21.08.2/src/lib/sortutil.cpp 
new/kitinerary-21.08.3/src/lib/sortutil.cpp
--- old/kitinerary-21.08.2/src/lib/sortutil.cpp 2021-10-05 00:32:51.000000000 
+0200
+++ new/kitinerary-21.08.3/src/lib/sortutil.cpp 2021-11-01 16:12:32.000000000 
+0100
@@ -18,6 +18,8 @@
 #include <KItinerary/TrainTrip>
 #include <KItinerary/Visit>
 
+#include "knowledgedb/airportdb.h"
+
 #include <QDateTime>
 #include <QTimeZone>
 
@@ -61,7 +63,9 @@
         if (flight.boardingTime().isValid()) {
             return flight.boardingTime();
         }
-        return QDateTime(flight.departureDay(), QTime(23, 59, 59));
+        QDateTime dt(flight.departureDay(), QTime(23, 59, 59));
+        
dt.setTimeZone(KnowledgeDb::timezoneForAirport(KnowledgeDb::IataCode{flight.departureAirport().iataCode()}));
+        return dt;
     }
     if (JsonLd::isA<TrainTrip>(elem)) {
         const auto trip = elem.value<TrainTrip>();
@@ -119,7 +123,9 @@
         if (flight.arrivalTime().isValid()) {
             return flight.arrivalTime();
         }
-        return QDateTime(flight.departureDay(), QTime(23, 59, 59));
+        QDateTime dt(flight.departureDay(), QTime(23, 59, 59));
+        
dt.setTimeZone(KnowledgeDb::timezoneForAirport(KnowledgeDb::IataCode{flight.arrivalAirport().iataCode()}));
+        return dt;
     }
     if (JsonLd::isA<TrainTrip>(elem)) {
         const auto trip = elem.value<TrainTrip>();

Reply via email to