@@ -24,9 +24,9 @@
ParserResRobot::ParserResRobot(QObject *parent) :
ParserAbstract(parent),
- timetableAPIKey(QLatin1String("75d0c2b5-c179-489c-90c2-eb6d2bc8970c")),
- journeyAPIKey(QLatin1String("c8436ea6-3c7e-489f-93b1-5b636fc55f2e")),
- baseURL(QLatin1String("https://api.resrobot.se/v2"))
+ timetableAPIKey(QLatin1String("d60211b4-50f6-4edd-acfa-d3654fec2fa3")),
+ journeyAPIKey(QLatin1String("d60211b4-50f6-4edd-acfa-d3654fec2fa3")),
+ baseURL(QLatin1String("https://api.resrobot.se/v2.1"))
{
#ifdef Q_OS_SYMBIAN
// Symbian doesn't support SNI - ignore hostname mismatch
@@ -182,7 +182,7 @@
#else
QUrl query;
#endif
- query.addQueryItem("key", journeyAPIKey);
+ query.addQueryItem("accessId", journeyAPIKey);
query.addQueryItem("input", stationName);
query.addQueryItem("maxNo", "30"); // Max number of results
if (QLocale().language() == QLocale::Swedish)
@@ -196,7 +196,9 @@
url.setQuery(query);
#else
url.setQueryItems(query.queryItems());
+
#endif
+ qDebug() << "Searching for stations:" << url.toString();
sendHttpRequest(url);
}
@@ -212,7 +214,7 @@
#else
QUrl query;
#endif
- query.addQueryItem("key", journeyAPIKey);
+ query.addQueryItem("accessId", journeyAPIKey);
query.addQueryItem("originCoordLat", QString::number(latitude));
query.addQueryItem("originCoordLong", QString::number(longitude));
query.addQueryItem("r", "1000"); // Radius in meters
@@ -254,13 +256,12 @@
#else
QUrl query;
#endif
- query.addQueryItem("key", timetableAPIKey);
+ query.addQueryItem("accessId", timetableAPIKey);
query.addQueryItem("id", stationIDv2(currentStation.id.toString()));
if (directionStation.valid)
query.addQueryItem("direction", stationIDv2(directionStation.id.toString()));
query.addQueryItem("date", dateTime.toString("yyyy-MM-dd"));
query.addQueryItem("time", dateTime.toString("hh:mm"));
- query.addQueryItem("maxJourneys", "30"); // Max number of results
query.addQueryItem("passlist", "0"); // We don't need any intermediate stops in the result
QString formattedRestrictions(formatRestrictions(trainrestrictions));
if (!formattedRestrictions.isEmpty())
@@ -345,7 +346,7 @@
QUrl url = baseURL + QLatin1String("/trip");
if (lastJourneySearch.mode == Arrival)
query.addQueryItem("searchForArrival", "1");
- query.addQueryItem("key", journeyAPIKey);
+ query.addQueryItem("accessId", journeyAPIKey);
query.addQueryItem("originId", lastJourneySearch.from.id.toString());
if (lastJourneySearch.via.valid)
query.addQueryItem("viaId", lastJourneySearch.via.id.toString());
@@ -444,12 +445,14 @@
emit errorOccured(tr("Cannot parse reply from the server"));
return;
}
- QVariantList stations = doc.value("StopLocation").toList();
+
+ QVariantList stations = doc.value("stopLocationOrCoordLocation").toList();
StationsList result;
foreach (QVariant stationData, stations) {
- const QVariantMap& station = stationData.toMap();
+ const QVariantMap& ss = stationData.toMap();
+ QVariantMap station = ss["StopLocation"].toMap() ;
Station s;
- s.id = station.value("id").toString();
+ s.id = station.value("extId").toString();
s.name = station.value("name").toString();
s.latitude = station.value("lat").toDouble();
s.longitude = station.value("lon").toDouble();
@@ -470,12 +473,14 @@
return;
}
- QVariantList stations = doc.value("StopLocation").toList();
+ QVariantList stations = doc.value("stopLocationOrCoordLocation").toList();
+ //QVariantList stations = doc.value("StopLocation").toList();
StationsList result;
foreach (QVariant stationData, stations) {
- const QVariantMap& station = stationData.toMap();
+ const QVariantMap& ss = stationData.toMap();
+ QVariantMap station = ss["StopLocation"].toMap() ;
Station s;
- s.id = station.value("id").toString();
+ s.id = station.value("extId").toString();
s.name = station.value("name").toString();
s.latitude = station.value("lat").toDouble();
s.longitude = station.value("lon").toDouble();
@@ -498,8 +503,16 @@
searchEarlierReference = doc.value("scrB").toString();
searchLaterReference = doc.value("scrF").toString();
+
QVariantList journeyListData = doc.value("Trip").toList();
+/* The meta Origina and dest are now here as of 2.1 vers.
+ QVariantMap dest =journeyListData[0].toMap() ;
+ QVariantList segments = journeyData.value("LegList").toMap().value("Leg").toList();
+ qDebug() << "Trip 0 Orig:\n" << dest.value("Origin").toMap().value("name").toString() ;
+ qDebug() << "Trip 0 Dest:\n" << dest.value("Destination").toMap().value("name").toString() ;
+*/
+
cachedResults.clear();
JourneyResultList *journeyList = new JourneyResultList();
@@ -631,14 +644,16 @@
QString distance;
QString operatorInfo;
QString transportMainType = segment.value("type").toString();
+
if (transportMainType == "WALK" || transportMainType == "TRSF") {
distance = segment.value("dist").toString();
resultItem->setInternalData1("WALK");
resultItem->setTrain(tr("Walk"));
} else if (transportMainType == "JNY") {
- QVariantMap product = segment.value("Product").toMap();
+ QVariantMap product = segment.value("Product").toList()[0].toMap();
QString transportType = transportMode(product.value("catOutS").toString(),
product.value("catOutL").toString());
+
QString lineNumber = product.value("num").toString();
if (!lineNumber.isEmpty())
transportType += " " + lineNumber;
|