diff --git a/src/cli/org.kde.kitinerary-extractor.appdata.xml b/src/cli/org.kde.kitinerary-extractor.appdata.xml index e79f512..dade36b 100644 --- a/src/cli/org.kde.kitinerary-extractor.appdata.xml +++ b/src/cli/org.kde.kitinerary-extractor.appdata.xml @@ -1,74 +1,75 @@ org.kde.kitinerary-extractor CC0-1.0 LGPL-2.0+ KItinerary Command Line Extractor Extractor de la línia d'ordres del KItinerary KItinerary Command Line Extractor Extractor de línea de órdenes de KItinerary KItinerary käsurea hankija KItineraryn komentorivijäsennin Extracteur KItinerary en ligne de commande Extractor de liña de ordes de KItinerary KItinerary Command Line Extractor Estrattore a riga di comando di KItinerary Extractor van opdrachtregel van KItinerary Wydobywane danych z wiersza poleceń KItinerary Extracção da Linha de Comandos do KItinerary Extrator em linha de comando do KItinerary Extraktor cez príkazový riadok pre KItinerary Kitinerary extrahering på kommandoraden Командний засіб видобування KItinerary xxKItinerary Command Line Extractorxx Command line reservation data extractor. Extractor de dades de reserves de la línia d'ordres. Extraktor dat rezervací v příkazové řádce. Command line reservation data extractor. Extractor de línea de órdenes de reserva de datos. Käsurea reserveerimisandmete hankija. Komentorivin varaustietojäsennin. Extracteur de données de réservation en ligne de commande. Extractor de datos de reservas de liña de ordes. Pengekstrak data reservasi baris perintah. Estrattore di dati di prenotazioni a riga di comando. Gegevensextractor van reservering op de opdrachtregel. Wydobywane danych o rezerwacji z wiersza poleceń. Extracção de dados de reservas na linha de comandos. Extrator em linha de comando de dados de reservas. Extraktor dát pre rezerváciu cez príkazový riadok. Extrahering av reservationsdata på kommandoraden Програма для видобування даних бронювання, керування якою відбувається з командного рядка. xxCommand line reservation data extractor.xx

Command line extractor for itinerary data, for integrating into 3rd party applications.

Extractor de dades d'itineraris de la línia d'ordres, per a la integració en aplicacions de tercers.

Command line extractor for itinerary data, for integrating into 3rd party applications.

Extractor de línea de órdenes para datos de itinerario. para integración en aplicaciones de terceros.

Käsurea reisiandmete hankija, mida lõimida kolmanda poole rakendustega.

Komentorivijäsennin varaustiedoille kolmannen osapuolen sovelluksia varten.

Extracteur en ligne de commande pour les données d'itinéraires, afin de les intégrer à des applications tierces.

Extractor de liña de ordes de datos de itinerarios, para integrar con aplicacións de terceiros.

Pengekstrak baris data untuk data rencana perjalanan, untuk pengintegrasian ke dalam aplikasi pihak ketiga.

Estrattore a riga di comando per dati di itinerari, per l'integrazione con applicazioni di terze parti.

Extractor van reisgegevens op de opdrachtregel, voor integratie in toepassingen van derden.

Wydobywane danych z wiersza poleceń dla planu podróży, do zszywania z aplikacjami osób trzecich.

Extracção pela linha de comandos de dados de itinerários, para se integrar com aplicações de terceiros.

Extrator em linha de comando para dados de itinerários, para integração em aplicativos de terceiros.

Extraktor cez príkazový riadok pre dáta itinerára na integráciu do aplikácií tretích strán.

Extrahering av reseinformation på kommandoraden, för att integrera med tredjepartsprogram.

Програма, керування якою відбувається з командного рядка, для видобування даних бронювання. Призначено для інтеграції зі сторонніми програмами.

xxCommand line extractor for itinerary data, for integrating into 3rd party applications.xx

https://community.kde.org/KDE_PIM/KItinerary https://bugs.kde.org/enter_bug.cgi?format=guided&product=KDE+Itinerary KDE kitinerary-extractor +
diff --git a/src/extractors/nh-hotels.js b/src/extractors/nh-hotels.js index 20809b1..7e51fdc 100644 --- a/src/extractors/nh-hotels.js +++ b/src/extractors/nh-hotels.js @@ -1,72 +1,72 @@ /* Copyright (c) 2019 Volker Krause This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ function lastChild(elem) { var child = elem.firstChild; while (!child.nextSibling.isNull) { child = child.nextSibling; } return child; } function parseHtml(doc) { var res = JsonLd.newObject("LodgingReservation"); res.reservationFor = JsonLd.newObject("LodgingBusiness"); var nameElem = doc.eval("//td[@class=\"title-hotel\"]")[0]; res.reservationFor.name = nameElem.content; var addrElem = nameElem.parent.nextSibling.nextSibling.nextSibling.firstChild; - var addr = addrElem.content.match(/([^,]*), (.*)/); + var addr = addrElem.content.match(/(.*), ?([^,]*)/); res.reservationFor.address = JsonLd.newObject("PostalAddress"); res.reservationFor.address.streetAddress = addr[1]; res.reservationFor.address.addressLocality = addr[2]; res.reservationFor.url = lastChild(addrElem).attribute("href"); var linkRoot = addrElem.parent.nextSibling.nextSibling; var links = linkRoot.eval(".//a"); for (var i = 0; i < links.length; ++i) { var url = links[i].attribute("href"); if (url.startsWith("tel:")) res.reservationFor.telephone = url.substr(4); else if (url.startsWith("mailto:")) res.reservationFor.email = url.substr(7); } var bookingRef = doc.eval("//table//tr/td/table//tr/td[2]")[0]; res.reservationNumber = bookingRef.content; var bookingRow = bookingRef.parent.nextSibling.nextSibling; res.underName = JsonLd.newObject("Person"); res.underName.name = bookingRow.firstChild.nextSibling.content; bookingRow = bookingRow.nextSibling.nextSibling; res.underName.email = bookingRow.firstChild.nextSibling.recursiveContent; bookingRow = bookingRow.nextSibling.nextSibling.nextSibling; var dt = bookingRow.firstChild.nextSibling.content.match(/([\d/]+).*?([\d:]+)/); res.checkinTime = JsonLd.toDateTime(dt[1] + dt[2], "dd/MM/yyyyhh:mm", "en"); bookingRow = bookingRow.nextSibling.nextSibling; dt = bookingRow.firstChild.nextSibling.content.match(/([\d/]+).*?([\d:]+)/); res.checkoutTime = JsonLd.toDateTime(dt[1] + dt[2], "dd/MM/yyyyhh:mm", "en"); return res; }