diff --git a/enabler/src/de/schildbach/pte/VgsProvider.java b/enabler/src/de/schildbach/pte/VgsProvider.java
index bfc3c80f..2124ee9a 100644
--- a/enabler/src/de/schildbach/pte/VgsProvider.java
+++ b/enabler/src/de/schildbach/pte/VgsProvider.java
@@ -18,24 +18,17 @@
package de.schildbach.pte;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.GregorianCalendar;
+import java.util.Date;
import java.util.List;
import java.util.Locale;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+import java.util.Set;
-import de.schildbach.pte.dto.Departure;
-import de.schildbach.pte.dto.Line;
import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.dto.NearbyStationsResult;
+import de.schildbach.pte.dto.QueryConnectionsContext;
+import de.schildbach.pte.dto.QueryConnectionsResult;
import de.schildbach.pte.dto.QueryDeparturesResult;
-import de.schildbach.pte.dto.QueryDeparturesResult.Status;
-import de.schildbach.pte.dto.ResultHeader;
-import de.schildbach.pte.dto.StationDepartures;
import de.schildbach.pte.util.ParserUtils;
/**
@@ -43,9 +36,7 @@ import de.schildbach.pte.util.ParserUtils;
*/
public class VgsProvider extends AbstractHafasProvider
{
- private static final String API_BASE = "http://www.vgs-online.de/cgi-bin/"; // "http://www.saarfahrplan.de/cgi-bin/";
-
- private static final long PARSER_DAY_ROLLOVER_THRESHOLD_MS = 12 * 60 * 60 * 1000;
+ private static final String API_BASE = "http://www.saarfahrplan.de/cgi-bin/"; // http://www.vgs-online.de/cgi-bin/
public VgsProvider()
{
@@ -113,6 +104,22 @@ public class VgsProvider extends AbstractHafasProvider
}
}
+ private static final String[] PLACES = { "Saarbrücken" };
+
+ @Override
+ protected String[] splitPlaceAndName(final String name)
+ {
+ for (final String place : PLACES)
+ {
+ if (name.endsWith(", " + place))
+ return new String[] { place, name.substring(0, name.length() - place.length() - 2) };
+ else if (name.startsWith(place + " ") || name.startsWith(place + "-"))
+ return new String[] { place, name.substring(place.length() + 1) };
+ }
+
+ return super.splitPlaceAndName(name);
+ }
+
public NearbyStationsResult queryNearbyStations(final Location location, final int maxDistance, final int maxStations) throws IOException
{
final StringBuilder uri = new StringBuilder(API_BASE);
@@ -143,164 +150,22 @@ public class VgsProvider extends AbstractHafasProvider
}
}
- private String departuresQueryUri(final int stationId, final int maxDepartures)
- {
- final StringBuilder uri = new StringBuilder();
-
- uri.append(API_BASE).append("stboard.exe/dn");
- uri.append("?input=").append(stationId);
- uri.append("&boardType=dep");
- uri.append("&productsFilter=").append(allProductsString());
- if (maxDepartures != 0)
- uri.append("&maxJourneys=").append(maxDepartures);
- uri.append("&disableEquivs=yes"); // don't use nearby stations
- uri.append("&start=yes");
-
- return uri.toString();
- }
-
- private static final Pattern P_DEPARTURES_HEAD_COARSE = Pattern
- .compile(
- ".*?" //
- + "(?:" //
- + "
]*>(.+?)
.*?" //
- + "(?:
]*>(.+?)
|(verkehren an dieser Haltestelle keine))"//
- + "|(Eingabe kann nicht interpretiert)|(Verbindung zum Server konnte leider nicht hergestellt werden|kann vom Server derzeit leider nicht bearbeitet werden))" //
- + ".*?" //
- , Pattern.DOTALL);
- private static final Pattern P_DEPARTURES_HEAD_FINE = Pattern.compile(".*?" //
- + "
\\s*(.*?)\\s*<.*?" // location
- + "(\\d{2}\\.\\d{2}\\.\\d{2}).*?" // date
- + "Abfahrt (\\d{1,2}:\\d{2}).*?" // time
- , Pattern.DOTALL);
- private static final Pattern P_DEPARTURES_COARSE = Pattern.compile("