Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kitinerary for openSUSE:Factory checked in at 2025-05-09 18:43:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kitinerary (Old) and /work/SRC/openSUSE:Factory/.kitinerary.new.30101 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kitinerary" Fri May 9 18:43:58 2025 rev:85 rq:1275773 version:25.04.1 Changes: -------- --- /work/SRC/openSUSE:Factory/kitinerary/kitinerary.changes 2025-04-20 19:58:57.638390356 +0200 +++ /work/SRC/openSUSE:Factory/.kitinerary.new.30101/kitinerary.changes 2025-05-09 18:44:24.419661066 +0200 @@ -1,0 +2,24 @@ +Wed May 7 21:00:15 UTC 2025 - Christophe Marin <christo...@krop.fr> + +- Update to 25.04.1 + * New bugfix release + * For more details please see: + * https://kde.org/announcements/gear/25.04.1/ +- Changes since 25.04.0: + * Update static extractor build documentation + * Give published static extractor builds the release service version + * Use release branch for stable branch build dependencies + * Determine static extractor package version number from CMake + * Add checksum and basic smoke test for published static builds + * Less aggressively disable translations in the static build + * Don't build Qt::Network + * Remove conflicting CMake options for shared builds + * Publish static extractor builds + * Update static extractor dependencies + * Add extractor script for a&o hostels pkpass files + * Adapt test data in release branch after the UIC price extraction backport + * Add Gastronovi extractor + * Extract prices for generic UIC 918.3 tickets as well + * Find more seat/berth information in ÖBB NightJet tickets + +------------------------------------------------------------------- Old: ---- kitinerary-25.04.0.tar.xz kitinerary-25.04.0.tar.xz.sig New: ---- kitinerary-25.04.1.tar.xz kitinerary-25.04.1.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kitinerary.spec ++++++ --- /var/tmp/diff_new_pack.rxKK97/_old 2025-05-09 18:44:24.891680803 +0200 +++ /var/tmp/diff_new_pack.rxKK97/_new 2025-05-09 18:44:24.895680970 +0200 @@ -18,11 +18,11 @@ %define kf6_version 6.6.0 %define qt6_version 6.6.0 -%define kpim6_version 6.4.0 +%define kpim6_version 6.4.1 %bcond_without released Name: kitinerary -Version: 25.04.0 +Version: 25.04.1 Release: 0 Summary: Data model and extraction system for travel reservations License: LGPL-2.1-or-later ++++++ kitinerary-25.04.0.tar.xz -> kitinerary-25.04.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-25.04.0/.gitlab-ci.yml new/kitinerary-25.04.1/.gitlab-ci.yml --- old/kitinerary-25.04.0/.gitlab-ci.yml 2025-04-07 23:45:49.000000000 +0200 +++ new/kitinerary-25.04.1/.gitlab-ci.yml 2025-05-03 00:09:58.000000000 +0200 @@ -30,12 +30,32 @@ - scripts/build-iso-codes.sh - scripts/build-static-qt.sh - scripts/build-cmake-modules.sh - - scripts/collect-data-files.sh - - strip build/bin/kitinerary-extractor + - scripts/package.sh artifacts: expire_in: 1 week when: on_success paths: - - build/bin/kitinerary-extractor - - build/share - - /gitlab-templates/cppcheck.yml + - "kde-ci-packages/" + +# Publishing job for static extractor binaries +# This is separate as we need a newer Python than is easily available on the ancient +# CentOS image building this. +static-extractor-publish: + stage: deploy + image: invent-registry.kde.org/sysadmin/ci-images/sles15-craft:latest + tags: + - Linux + needs: + - static-extractor + interruptible: true + before_script: + - export LANG=en_US.UTF-8 + - git clone https://invent.kde.org/sysadmin/ci-utilities.git --depth=1 + - git clone https://invent.kde.org/sysadmin/ci-notary-service.git --depth=1 + script: + # basic smoke test + - mkdir $CI_PROJECT_DIR/tmp + - tar xv -C $CI_PROJECT_DIR/tmp -f $CI_PROJECT_DIR/kde-ci-packages/*.tgz + - $CI_PROJECT_DIR/tmp/bin/kitinerary-extractor $CI_PROJECT_DIR/autotests/extractordata/synthetic/iata-bcbp-demo.pdf | grep "FlightReservation" + # Publish + - python3 -u ci-notary-service/publishbuild.py --config ci-utilities/signing/publishbuild.ini --platform linux "$CI_PROJECT_DIR/kde-ci-packages/" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-25.04.0/CMakeLists.txt new/kitinerary-25.04.1/CMakeLists.txt --- old/kitinerary-25.04.0/CMakeLists.txt 2025-04-07 23:45:49.000000000 +0200 +++ new/kitinerary-25.04.1/CMakeLists.txt 2025-05-03 00:09:58.000000000 +0200 @@ -3,7 +3,7 @@ # SPDX-License-Identifier: BSD-3-Clause cmake_minimum_required(VERSION 3.16 FATAL_ERROR) -set(PIM_VERSION "6.4.0") +set(PIM_VERSION "6.4.1") project(KItinerary VERSION ${PIM_VERSION}) set(QT_REQUIRED_VERSION "6.7.0") @@ -42,8 +42,8 @@ find_package(SharedMimeInfo 1.3 REQUIRED) endif() -set(KMIME_VERSION "6.4.0") -set(PIM_PKPASS "6.4.0") +set(KMIME_VERSION "6.4.1") +set(PIM_PKPASS "6.4.1") find_package(KPim6Mime ${KMIME_VERSION} CONFIG REQUIRED) find_package(KPim6PkPass ${PIM_PKPASS} CONFIG REQUIRED) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-25.04.0/autotests/extractordata/deutschebahn/20230501-Deutschlandticket-FCB-TLB-RCT2-v1.01.bin.json new/kitinerary-25.04.1/autotests/extractordata/deutschebahn/20230501-Deutschlandticket-FCB-TLB-RCT2-v1.01.bin.json --- old/kitinerary-25.04.0/autotests/extractordata/deutschebahn/20230501-Deutschlandticket-FCB-TLB-RCT2-v1.01.bin.json 2025-04-07 23:45:49.000000000 +0200 +++ new/kitinerary-25.04.1/autotests/extractordata/deutschebahn/20230501-Deutschlandticket-FCB-TLB-RCT2-v1.01.bin.json 2025-05-03 00:09:58.000000000 +0200 @@ -8,12 +8,14 @@ "name": "DB AG" }, "name": "Deutschlandticket", + "priceCurrency": "EUR", "ticketNumber": "J7EJ5KNN", "ticketToken": "aztecbin:I1VUMDExMDgwVFQwMDUwLAIUP/mxp2V39hvTz76OYofP0x8Ijx0CFCupd/BViXc/b5hrwemuH/WXMnXRAAAAADA0MjV4nAuN93B1dDEwNDAwNTY0sDDwMnf1MvX282NAAkBZEyMDI2OgtIGJi6uLa2h8iI9jJFDY2NgoyDnEyMDA0BSILQwMgQIGBgaWbokZRdmJRSWpQGONgOosgYIGZv5F6Yl5iUAGXMjEJzUz0cAQohPoBkNzl9TSkuLkjJzEvJSSzOTs1BKg0SDlIGOBCoE8UyBlBuIYBKQWFefnaaTmaRoYA7lAV4LNBDvVDCxgChIAatADEmYG5ggRAz2Qg8AmI9SYAUUsECLGYDVmZjARQyNDsEtMQY4xNnc/vCenJDNdoSw/VwFsgx7IYoWkzGIw1wzMNTQG22EM0m/sGhoE5APNM4TYYGKpY2AQGu/m4xphaAzyZ9ImhraHvAdPuzeICnI0ssq1eOWLBUcWL1fgamzgmHHq0iGeeU/OHbpzaMbEhiY1hniGE4JKezlCsiOz5tiomcnKbH349LIGSwMLl0pADYMJf7eDEBNDl7L26sWzpZ2TuYuVF3tLR2svEJipwLmFgcE1Y+rMnQlnuwo+GHC2Ozhs+63VIKTgUHVR2zThYAMHBwcAqg6Oow==", "ticketedSeat": { "@type": "Seat", "seatingType": "2" }, + "totalPrice": 49, "underName": { "@type": "Person", "familyName": "Organa", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-25.04.0/autotests/extractordata/uic/uic-eurail-pass.bin.json new/kitinerary-25.04.1/autotests/extractordata/uic/uic-eurail-pass.bin.json --- old/kitinerary-25.04.0/autotests/extractordata/uic/uic-eurail-pass.bin.json 2025-04-07 23:45:49.000000000 +0200 +++ new/kitinerary-25.04.1/autotests/extractordata/uic/uic-eurail-pass.bin.json 2025-05-03 00:09:58.000000000 +0200 @@ -7,12 +7,14 @@ "identifier": "uic:5217" }, "name": "Fahrkarte", + "priceCurrency": "EUR", "ticketNumber": "DfYyVC", "ticketToken": "aztecbin:I1VUMDE1MjE3MDAwMDEwLQIVAKeVjrshByyTAYvvkipT9Zeq47XpAhRiUVfgpHfIlVv8LyiLRQ9auFAVkgAAADAyMzZ42lVPXUvDMBT9K3lUcOXc3CRtH2db9UFBRqvsaVRWXVmXQTcF/5tv/jFvUujwQrg5h/ORNJuHalmCAMtWU1q+r79fCvVvkCLV0Exgg7JSqtnUj8u1mFjrVVFrMiICZcLkkMnv2t24b8dzJ7EaRIEkPLXeq9d+GHqhREwm0KasF5Xf7j/9tlvcFqDgwGSRbe3sf+7G09Ffdf4aHCXBDxOeBufc7NKY7jYgsSfyASdnZpDIcrHnosmEyS4MJzFJcqRAWvj+92c49x/q63hQMTMJxeqtP0WYTXDycczmkMRVsxLs5mST3wB/PIFUwA==", "ticketedSeat": { "@type": "Seat", "seatingType": "2" }, + "totalPrice": 49, "underName": { "@type": "Person", "name": "Mann Willi" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-25.04.0/scripts/README.md new/kitinerary-25.04.1/scripts/README.md --- old/kitinerary-25.04.0/scripts/README.md 2025-04-07 23:45:49.000000000 +0200 +++ new/kitinerary-25.04.1/scripts/README.md 2025-05-03 00:09:58.000000000 +0200 @@ -32,6 +32,7 @@ export CI_PROJECT_PATH=pim/kitinerary export BUILD_ROOT=/builds export STAGING_ROOT=/builds/staging +export CI_PROJECT_DIR=$BUILD_ROOT/$CI_PROJECT_PATH ``` Optionally, map a local folder into `/builds` in the Docker image to retain the checkouts and build results. This diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-25.04.0/scripts/build-cmake-modules.sh new/kitinerary-25.04.1/scripts/build-cmake-modules.sh --- old/kitinerary-25.04.0/scripts/build-cmake-modules.sh 2025-04-07 23:45:49.000000000 +0200 +++ new/kitinerary-25.04.1/scripts/build-cmake-modules.sh 2025-05-03 00:09:58.000000000 +0200 @@ -5,12 +5,12 @@ set -x FREETYPE_VERSION="VER-2-13-2" -POPPLER_VERSION="poppler-25.02.0" +POPPLER_VERSION="poppler-25.04.0" LIBICAL_VERSION="v3.0.17" -LIBXML_VERSION="v2.12.2" -ZXING_VERSION="v2.1.0" -KF_VERSION="v6.11.0" -GEAR_VERSION="master" +LIBXML_VERSION="v2.12.7" +ZXING_VERSION="v2.3.0" +KF_VERSION="v6.13.0" +GEAR_VERSION="release/25.04" function build_cmake_module() { local repo=$1 @@ -31,13 +31,12 @@ mkdir build cd build - cmake -DBUILD_SHARED=ON \ - -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF \ + cmake -DBUILD_TESTING=OFF \ + -DBUILD_SHARED_LIBS=OFF \ -DCMAKE_PREFIX_PATH=$STAGING_ROOT \ -DCMAKE_INSTALL_PREFIX=$STAGING_ROOT \ -DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed" \ -DZLIB_USE_STATIC_LIBS=ON \ - -DKF_SKIP_PO_PROCESSING=ON \ -DUSE_DBUS=OFF \ $@ -DCMAKE_BUILD_TYPE=Release .. @@ -81,17 +80,17 @@ # KDE Frameworks build_kf_module frameworks/extra-cmake-modules -build_kf_module frameworks/karchive -DWITH_BZIP2=OFF -DWITH_LIBLZMA=OFF -DWITH_LIBZSTD=OFF -build_kf_module frameworks/kcodecs -build_kf_module frameworks/kconfig -DKCONFIG_USE_QML=OFF -build_kf_module frameworks/kcoreaddons -DKCOREADDONS_USE_QML=OFF -build_kf_module frameworks/ki18n -DBUILD_WITH_QML=OFF -DKI18N_EMBEDDED_ISO_CODES_CACHE=ON -build_kf_module frameworks/kcalendarcore -build_kf_module frameworks/kcontacts +build_kf_module frameworks/karchive -DWITH_BZIP2=OFF -DWITH_LIBLZMA=OFF -DWITH_LIBZSTD=OFF -DKF_SKIP_PO_PROCESSING=ON +build_kf_module frameworks/kcodecs -DKF_SKIP_PO_PROCESSING=ON +build_kf_module frameworks/kconfig -DKCONFIG_USE_QML=OFF -DKF_SKIP_PO_PROCESSING=ON +build_kf_module frameworks/kcoreaddons -DKCOREADDONS_USE_QML=OFF -DKF_SKIP_PO_PROCESSING=ON +build_kf_module frameworks/ki18n -DBUILD_WITH_QML=OFF -DKI18N_EMBEDDED_ISO_CODES_CACHE=ON -DKF_SKIP_PO_PROCESSING=ON +build_kf_module frameworks/kcalendarcore -DKF_SKIP_PO_PROCESSING=ON +build_kf_module frameworks/kcontacts -DKF_SKIP_PO_PROCESSING=ON # PIM -build_kde_module pim/kmime -build_kde_module pim/kpkpass +build_kde_module pim/kmime -DKF_SKIP_PO_PROCESSING=ON +build_kde_module pim/kpkpass -DKF_SKIP_PO_PROCESSING=ON export CXXFLAGS="-static-libstdc++ -static-libgcc" build_kde_module $CI_PROJECT_PATH -DKITINERARY_STANDALONE_CLI_EXTRACTOR=ON -DBUILD_TOOLS=OFF diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-25.04.0/scripts/build-openssl.sh new/kitinerary-25.04.1/scripts/build-openssl.sh --- old/kitinerary-25.04.0/scripts/build-openssl.sh 2025-04-07 23:45:49.000000000 +0200 +++ new/kitinerary-25.04.1/scripts/build-openssl.sh 2025-05-03 00:09:58.000000000 +0200 @@ -4,7 +4,7 @@ set -e set -x -OPENSSL_VERSION=3.2.3 +OPENSSL_VERSION=3.4.1 mkdir -p $BUILD_ROOT mkdir -p $STAGING_ROOT diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-25.04.0/scripts/build-static-qt.sh new/kitinerary-25.04.1/scripts/build-static-qt.sh --- old/kitinerary-25.04.0/scripts/build-static-qt.sh 2025-04-07 23:45:49.000000000 +0200 +++ new/kitinerary-25.04.1/scripts/build-static-qt.sh 2025-05-03 00:09:58.000000000 +0200 @@ -4,7 +4,7 @@ set -e set -x -QT_VERSION=6.8.2 +QT_VERSION=6.9.0 function build-static-qt-module() { local module=$1 @@ -37,6 +37,7 @@ -no-dbus \ -no-glib \ -no-xcb -no-opengl -no-feature-vulkan \ + -no-feature-network \ -no-feature-sql \ -no-widgets \ -no-feature-sha3-fast \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-25.04.0/scripts/collect-data-files.sh new/kitinerary-25.04.1/scripts/collect-data-files.sh --- old/kitinerary-25.04.0/scripts/collect-data-files.sh 2025-04-07 23:45:49.000000000 +0200 +++ new/kitinerary-25.04.1/scripts/collect-data-files.sh 1970-01-01 01:00:00.000000000 +0100 @@ -1,23 +0,0 @@ -#!/bin/bash -# SPDX-FileCopyrightText: 2019-2022 Volker Krause <vkra...@kde.org> -# SPDX-License-Identifier: BSD-2-Clause -set -e -set -x - -DEPLOY_ROOT=$BUILD_ROOT/$CI_PROJECT_PATH/build/ - -mkdir -p $DEPLOY_ROOT/share/ -cp -rv $STAGING_ROOT/share/locale $DEPLOY_ROOT/share/ - -# remove catalogs we don't use -for i in iso_15924.mo iso_3166.mo iso_3166_2.mo iso_3166-3.mo iso_4217.mo 'iso_639*.mo' karchive5_qt.qm kcodecs5_qt.qm kconfig5_qt.qm kcoreaddons5_qt.qm libkmime5.mo kcontacts5.mo ki18n5.mo LC_SCRIPTS; do - find $DEPLOY_ROOT -name $i | xargs rm -rf -done - -# remove languages we have no own translation for -for i in `ls $DEPLOY_ROOT/share/locale`; do - if ! [ -f $DEPLOY_ROOT/share/locale/$i/LC_MESSAGES/kitinerary.mo ]; then - echo "Dropping language $i" - rm -rf $DEPLOY_ROOT/share/locale/$i - fi -done diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-25.04.0/scripts/package.sh new/kitinerary-25.04.1/scripts/package.sh --- old/kitinerary-25.04.0/scripts/package.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/kitinerary-25.04.1/scripts/package.sh 2025-05-03 00:09:58.000000000 +0200 @@ -0,0 +1,38 @@ +#!/bin/bash +# SPDX-FileCopyrightText: Volker Krause <vkra...@kde.org> +# SPDX-License-Identifier: BSD-2-Clause +set -e +set -x + +DEPLOY_ROOT=$BUILD_ROOT/$CI_PROJECT_PATH/build/ + +mkdir -p $DEPLOY_ROOT/share/ +cp -rv $STAGING_ROOT/share/locale $DEPLOY_ROOT/share/ + +# remove catalogs we don't use +for i in iso_15924.mo iso_3166.mo iso_3166_2.mo iso_3166-3.mo iso_4217.mo 'iso_639*.mo' karchive5_qt.qm kcodecs5_qt.qm kconfig5_qt.qm kcoreaddons5_qt.qm libkmime5.mo kcontacts5.mo ki18n5.mo LC_SCRIPTS; do + find $DEPLOY_ROOT -name $i | xargs rm -rf +done + +# remove languages we have no own translation for +for i in `ls $DEPLOY_ROOT/share/locale`; do + if ! [ -f $DEPLOY_ROOT/share/locale/$i/LC_MESSAGES/kitinerary6.mo ]; then + echo "Dropping language $i" + rm -rf $DEPLOY_ROOT/share/locale/$i + fi +done + +# strip binary +strip $DEPLOY_ROOT/bin/kitinerary-extractor + +# determing version +# VERSION=$CI_COMMIT_REF_SLUG +VERSION=`cat $BUILD_ROOT/$CI_PROJECT_PATH/CMakeLists.txt | grep "set(PIM_VERSION" | sed -e 's/")//' | sed -e 's/.*"//'` + +# prepare output for publishing +PACKAGE_ROOT=$CI_PROJECT_DIR/kde-ci-packages/ +mkdir -p $PACKAGE_ROOT + +OUTPUT_FILE=$PACKAGE_ROOT/kitinerary-extractor-x86_64-$VERSION.tgz +tar cvz -C $DEPLOY_ROOT -f $OUTPUT_FILE bin/kitinerary-extractor share +sha256sum $OUTPUT_FILE | head -c 66 > $OUTPUT_FILE.sha256 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-25.04.0/src/cli/org.kde.kitinerary-extractor.appdata.xml new/kitinerary-25.04.1/src/cli/org.kde.kitinerary-extractor.appdata.xml --- old/kitinerary-25.04.0/src/cli/org.kde.kitinerary-extractor.appdata.xml 2025-04-07 23:45:49.000000000 +0200 +++ new/kitinerary-25.04.1/src/cli/org.kde.kitinerary-extractor.appdata.xml 2025-05-03 00:09:58.000000000 +0200 @@ -133,6 +133,7 @@ </categories> <launchable type="desktop-id">org.kde.kitinerary-extractor.desktop</launchable> <releases> + <release version="6.4.1" date="2025-05-08"/> <release version="6.4.0" date="2025-04-17"/> <release version="6.3.3" date="2025-03-06"/> <release version="6.3.2" date="2025-02-06"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-25.04.0/src/lib/processors/uic9183documentprocessor.cpp new/kitinerary-25.04.1/src/lib/processors/uic9183documentprocessor.cpp --- old/kitinerary-25.04.0/src/lib/processors/uic9183documentprocessor.cpp 2025-04-07 23:45:49.000000000 +0200 +++ new/kitinerary-25.04.1/src/lib/processors/uic9183documentprocessor.cpp 2025-05-03 00:09:58.000000000 +0200 @@ -353,6 +353,10 @@ ticket.setUnderName(p.person()); ticket.setValidFrom(p.validFrom()); ticket.setValidUntil(p.validUntil()); + if (const auto currency = rct2.currency(); !currency.isEmpty()) { + ticket.setPriceCurrency(currency); + ticket.setTotalPrice(rct2.price()); + } node.addResult(QList<QVariant>({ticket})); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-25.04.0/src/lib/scripts/aohostels.js new/kitinerary-25.04.1/src/lib/scripts/aohostels.js --- old/kitinerary-25.04.0/src/lib/scripts/aohostels.js 2025-04-07 23:45:49.000000000 +0200 +++ new/kitinerary-25.04.1/src/lib/scripts/aohostels.js 2025-05-03 00:09:58.000000000 +0200 @@ -59,3 +59,18 @@ return res; } + +function extractPass(pass, node) { + let res = JsonLd.newLodgingReservation(); + res.reservedTicket = node.result[0].reservedTicket; + res.reservationNumber = pass.field['bookingref'].value; + res.underName.name = pass.field['passenger'].value; + res.reservationFor.name = pass.field['destination'].value; + res.checkinTime = pass.field['arrival'].value; + res.checkoutTime = pass.field['departure'].value; + res.reservationFor.address.addressLocality = pass.field['hotel-city'].value; + res.reservationFor.address.streetAddress = pass.field['address-of-hotel'].value; + res.reservationFor.telephone = pass.field['phone-of-hotel'].value; + res.reservationFor.email = pass.field['email-of-hotel'].value; + return res; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-25.04.0/src/lib/scripts/aohostels.json new/kitinerary-25.04.1/src/lib/scripts/aohostels.json --- old/kitinerary-25.04.0/src/lib/scripts/aohostels.json 2025-04-07 23:45:49.000000000 +0200 +++ new/kitinerary-25.04.1/src/lib/scripts/aohostels.json 2025-05-03 00:09:58.000000000 +0200 @@ -1,7 +1,20 @@ -{ +[{ "filter": [ { "field": "From", "match": "@aohostels.com", "mimeType": "message/rfc822", "scope": "Ancestors" } ], "script": "aohostels.js", "mimeType": "text/plain" -} +}, +{ + "filter": [ + { + "field": "passTypeIdentifier", + "match": "pass.com.aohostels.officeaccess", + "mimeType": "application/vnd.apple.pkpass", + "scope": "Current" + } + ], + "function": "extractPass", + "mimeType": "application/vnd.apple.pkpass", + "script": "aohostels.js" +}] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-25.04.0/src/lib/scripts/extractors.qrc new/kitinerary-25.04.1/src/lib/scripts/extractors.qrc --- old/kitinerary-25.04.0/src/lib/scripts/extractors.qrc 2025-04-07 23:45:49.000000000 +0200 +++ new/kitinerary-25.04.1/src/lib/scripts/extractors.qrc 2025-05-03 00:09:58.000000000 +0200 @@ -147,6 +147,8 @@ <file>flibco.js</file> <file>flixbus.json</file> <file>flixbus.js</file> + <file>gastronovi.json</file> + <file>gastronovi.js</file> <file>generic.js</file> <file>georgian-railway.json</file> <file>georgian-railway.js</file> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-25.04.0/src/lib/scripts/gastronovi.js new/kitinerary-25.04.1/src/lib/scripts/gastronovi.js --- old/kitinerary-25.04.0/src/lib/scripts/gastronovi.js 1970-01-01 01:00:00.000000000 +0100 +++ new/kitinerary-25.04.1/src/lib/scripts/gastronovi.js 2025-05-03 00:09:58.000000000 +0200 @@ -0,0 +1,19 @@ +/* + SPDX-FileCopyrightText: 2025 Kai Uwe Broulik <k...@broulik.de> + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +function parseReservation(pass, node) { + let res = node.result[0]; + res.reservationFor.name = pass.organizationName; + res.underName = JsonLd.newObject("Person"); + res.underName.name = pass.field["person"].value; + res.reservationNumber = pass.field["code"].value; + + const linkField = pass.field["link"]; + if (linkField) { + res.potentialAction = JsonLd.newObject("UpdateAction"); + res.potentialAction.url = linkField.value; + } + return res; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-25.04.0/src/lib/scripts/gastronovi.json new/kitinerary-25.04.1/src/lib/scripts/gastronovi.json --- old/kitinerary-25.04.0/src/lib/scripts/gastronovi.json 1970-01-01 01:00:00.000000000 +0100 +++ new/kitinerary-25.04.1/src/lib/scripts/gastronovi.json 2025-05-03 00:09:58.000000000 +0200 @@ -0,0 +1,13 @@ +{ + "filter": [ + { + "field": "passTypeIdentifier", + "match": "pass.com.gastronovi.office", + "mimeType": "application/vnd.apple.pkpass", + "scope": "Current" + } + ], + "function": "parseReservation", + "mimeType": "application/vnd.apple.pkpass", + "script": "gastronovi.js" +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kitinerary-25.04.0/src/lib/uic9183/rct2ticket.cpp new/kitinerary-25.04.1/src/lib/uic9183/rct2ticket.cpp --- old/kitinerary-25.04.0/src/lib/uic9183/rct2ticket.cpp 2025-04-07 23:45:49.000000000 +0200 +++ new/kitinerary-25.04.1/src/lib/uic9183/rct2ticket.cpp 2025-05-03 00:09:58.000000000 +0200 @@ -354,7 +354,7 @@ return row8; } // rows 9/10 can contain seating details, let's use those as fallback if we don't find a number in the right field - return d->layout.text(9, 32, 19, 2).simplified(); + return d->layout.text(9, 32, 39, 2).simplified(); } return {}; }