From 77b80edd5574b67fca75aada3185dd589e2922a0 Mon Sep 17 00:00:00 2001 From: "andreas.schildbach@gmail.com" Date: Sat, 14 May 2011 11:00:46 +0000 Subject: [PATCH] adapt to changes to Frankfurt git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@642 0924bc21-9374-b0fa-ee44-9ff1593b38f0 --- src/de/schildbach/pte/RmvProvider.java | 8 ++++---- test/de/schildbach/pte/live/RmvProviderLiveTest.java | 8 ++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/de/schildbach/pte/RmvProvider.java b/src/de/schildbach/pte/RmvProvider.java index 5d362dfb..4aca3e43 100644 --- a/src/de/schildbach/pte/RmvProvider.java +++ b/src/de/schildbach/pte/RmvProvider.java @@ -186,7 +186,7 @@ public class RmvProvider extends AbstractHafasProvider private static final Pattern P_PRE_ADDRESS = Pattern.compile("(?:Geben Sie einen (Startort|Zielort) an.*?)?Bitte wählen Sie aus der Liste", Pattern.DOTALL); private static final Pattern P_ADDRESSES = Pattern.compile( - ".*?\\s*(.*?)\\s*.*?", Pattern.DOTALL); + ".*?\\s*(.*?)\\s*.*?", Pattern.DOTALL); private static final Pattern P_CHECK_CONNECTIONS_ERROR = Pattern.compile( "(mehrfach vorhanden oder identisch)|(keine geeigneten Haltestellen)|(keine Verbindung gefunden)|(derzeit nur Auskünfte vom)", Pattern.CASE_INSENSITIVE); @@ -254,7 +254,7 @@ public class RmvProvider extends AbstractHafasProvider , Pattern.DOTALL); private static final Pattern P_CONNECTIONS_COARSE = Pattern.compile("

(.+?)

", Pattern.DOTALL); private static final Pattern P_CONNECTIONS_FINE = Pattern.compile(".*?" // - + "" // link + + "" // link + "(\\d+:\\d+)-(\\d+:\\d+)" // departureTime, arrivalTime + "(?: (.+?))?" // line , Pattern.DOTALL); @@ -287,7 +287,7 @@ public class RmvProvider extends AbstractHafasProvider final Matcher mConFine = P_CONNECTIONS_FINE.matcher(mConCoarse.group(1)); if (mConFine.matches()) { - final String link = ParserUtils.resolveEntities(mConFine.group(1)); + final String link = "http://www.rmv.de" + ParserUtils.resolveEntities(mConFine.group(1)); final Calendar departureTime = new GregorianCalendar(timeZone()); departureTime.setTimeInMillis(currentDate.getTimeInMillis()); ParserUtils.parseEuropeanTime(departureTime, mConFine.group(2)); @@ -330,7 +330,7 @@ public class RmvProvider extends AbstractHafasProvider , Pattern.DOTALL); private static final Pattern P_CONNECTION_DETAILS_COARSE = Pattern.compile("/b> -\n(.*?- [^<]*)<", Pattern.DOTALL); private static final Pattern P_CONNECTION_DETAILS_FINE = Pattern.compile("
\n" // - + "(?:(.*?) nach (.*?)\n" // line, destination + + "(?:(.*?) nach ([^\n]*)\n" // line, destination + "
\n" // + "ab (\\d{1,2}:\\d{2})\n" // plannedDepartureTime + "(?:\nca\\.(\\d{1,2}:\\d{2})\n\n)?" // predictedDepartureTime diff --git a/test/de/schildbach/pte/live/RmvProviderLiveTest.java b/test/de/schildbach/pte/live/RmvProviderLiveTest.java index f6ec9b9f..231d598e 100644 --- a/test/de/schildbach/pte/live/RmvProviderLiveTest.java +++ b/test/de/schildbach/pte/live/RmvProviderLiveTest.java @@ -82,4 +82,12 @@ public class RmvProviderLiveTest provider.getConnectionDetails(connection.link); System.out.println(moreResult); } + + @Test + public void shortConnectionByName() throws Exception + { + final QueryConnectionsResult result = provider.queryConnections(new Location(LocationType.ANY, 0, null, "Hanau Hauptbahnhof"), null, + new Location(LocationType.ANY, 0, null, "Frankfurt Hauptbahnhof"), new Date(), true, ALL_PRODUCTS, WalkSpeed.NORMAL); + System.out.println(result); + } }