From 1de712233d3a9ecbe027076baae2ced0c7f52cea Mon Sep 17 00:00:00 2001 From: "andreas.schildbach@gmail.com" Date: Mon, 7 Feb 2011 10:50:00 +0000 Subject: [PATCH] detection for private wlan git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@483 0924bc21-9374-b0fa-ee44-9ff1593b38f0 --- src/de/schildbach/pte/BvgProvider.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/de/schildbach/pte/BvgProvider.java b/src/de/schildbach/pte/BvgProvider.java index 8024e67d..02df8f2e 100644 --- a/src/de/schildbach/pte/BvgProvider.java +++ b/src/de/schildbach/pte/BvgProvider.java @@ -302,8 +302,6 @@ public final class BvgProvider extends AbstractHafasProvider private static final Pattern P_CHECK_ADDRESS = Pattern.compile("]*>\\s*(.*?)\\s*", Pattern.DOTALL); private static final Pattern P_CHECK_FROM = Pattern.compile("Von:"); private static final Pattern P_CHECK_TO = Pattern.compile("Nach:"); - private static final Pattern P_CHECK_CONNECTIONS_ERROR = Pattern - .compile("(zu dicht beieinander|mehrfach vorhanden oder identisch)|(keine geeigneten Haltestellen)|(keine Verbindung gefunden)|(derzeit nur Auskünfte vom)|(zwischenzeitlich nicht mehr gespeichert)"); @Override public QueryConnectionsResult queryConnections(final Location from, final Location via, final Location to, final Date date, final boolean dep, @@ -373,6 +371,9 @@ public final class BvgProvider extends AbstractHafasProvider + "(\\d\\d:\\d\\d)-(\\d\\d:\\d\\d)  " // departureTime, arrivalTime + "(?:\\d+ Umst\\.|([\\w\\d ]+)).*?" // line , Pattern.DOTALL); + private static final Pattern P_CHECK_CONNECTIONS_ERROR = Pattern.compile("(zu dicht beieinander|mehrfach vorhanden oder identisch)|" + + "(keine geeigneten Haltestellen)|(keine Verbindung gefunden)|" + + "(derzeit nur Auskünfte vom)|(zwischenzeitlich nicht mehr gespeichert)|(http-equiv=\"refresh\")", Pattern.CASE_INSENSITIVE); private QueryConnectionsResult queryConnections(final String uri, final CharSequence page, final Location originalFrom, final Location originalTo) throws IOException @@ -390,6 +391,8 @@ public final class BvgProvider extends AbstractHafasProvider return QueryConnectionsResult.INVALID_DATE; if (mError.group(5) != null) throw new SessionExpiredException(); + if (mError.group(6) != null) + throw new IOException("connected to private wlan"); } final Matcher mHead = P_CONNECTIONS_HEAD.matcher(page); @@ -620,8 +623,10 @@ public final class BvgProvider extends AbstractHafasProvider + "]*>" // destinationId + "\\s*(.*?)\\s*.*?" // destination , Pattern.DOTALL); - private static final Pattern P_DEPARTURES_LIVE_ERRORS = Pattern.compile("(Haltestelle:)|(Wartungsgründen)"); - private static final Pattern P_DEPARTURES_PLAN_ERRORS = Pattern.compile("(derzeit leider nicht bearbeitet werden)|(Wartungsarbeiten)"); + private static final Pattern P_DEPARTURES_LIVE_ERRORS = Pattern.compile("(Haltestelle:)|(Wartungsgründen)|(http-equiv=\"refresh\")", + Pattern.CASE_INSENSITIVE); + private static final Pattern P_DEPARTURES_PLAN_ERRORS = Pattern.compile("(derzeit leider nicht bearbeitet werden)|(Wartungsarbeiten)|" + + "(http-equiv=\"refresh\")", Pattern.CASE_INSENSITIVE); public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures) throws IOException { @@ -637,6 +642,8 @@ public final class BvgProvider extends AbstractHafasProvider return new QueryDeparturesResult(Status.INVALID_STATION, Integer.parseInt(stationId)); if (mError.group(2) != null) return new QueryDeparturesResult(Status.SERVICE_DOWN, Integer.parseInt(stationId)); + if (mError.group(3) != null) + throw new IOException("connected to private wlan"); } // parse page @@ -711,6 +718,8 @@ public final class BvgProvider extends AbstractHafasProvider return new QueryDeparturesResult(Status.INVALID_STATION, Integer.parseInt(stationId)); if (mError.group(2) != null) return new QueryDeparturesResult(Status.SERVICE_DOWN, Integer.parseInt(stationId)); + if (mError.group(3) != null) + throw new IOException("connected to private wlan"); } // parse page