From 1855b76d9ac974a0846936a48f509d1255b0e9ef Mon Sep 17 00:00:00 2001 From: "andreas.schildbach" Date: Mon, 13 Sep 2010 10:16:04 +0000 Subject: [PATCH] error message for 'invalid date' git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@158 0924bc21-9374-b0fa-ee44-9ff1593b38f0 --- src/de/schildbach/pte/BahnProvider.java | 4 +++- src/de/schildbach/pte/OebbProvider.java | 11 +++++++---- src/de/schildbach/pte/QueryConnectionsResult.java | 3 ++- src/de/schildbach/pte/RmvProvider.java | 4 +++- src/de/schildbach/pte/SbbProvider.java | 10 ++++++---- src/de/schildbach/pte/VbbProvider.java | 7 +++++-- 6 files changed, 26 insertions(+), 13 deletions(-) diff --git a/src/de/schildbach/pte/BahnProvider.java b/src/de/schildbach/pte/BahnProvider.java index 1d7c2cf4..44908ee1 100644 --- a/src/de/schildbach/pte/BahnProvider.java +++ b/src/de/schildbach/pte/BahnProvider.java @@ -168,7 +168,7 @@ public final class BahnProvider implements NetworkProvider "", Pattern.DOTALL); private static final Pattern P_ADDRESSES = Pattern.compile("\\s*(.*?)\\s*", Pattern.DOTALL); private static final Pattern P_CHECK_CONNECTIONS_ERROR = Pattern - .compile("(zu dicht beieinander|mehrfach vorhanden oder identisch)|(leider konnte zu Ihrer Anfrage keine Verbindung gefunden werden)"); + .compile("(zu dicht beieinander|mehrfach vorhanden oder identisch)|(leider konnte zu Ihrer Anfrage keine Verbindung gefunden werden)|(derzeit nur Auskünfte vom)"); public QueryConnectionsResult queryConnections(final LocationType fromType, final String from, final LocationType viaType, final String via, final LocationType toType, final String to, final Date date, final boolean dep, final WalkSpeed walkSpeed) throws IOException @@ -183,6 +183,8 @@ public final class BahnProvider implements NetworkProvider return QueryConnectionsResult.TOO_CLOSE; if (mError.group(2) != null) return QueryConnectionsResult.NO_CONNECTIONS; + if (mError.group(3) != null) + return QueryConnectionsResult.INVALID_DATE; } List fromAddresses = null; diff --git a/src/de/schildbach/pte/OebbProvider.java b/src/de/schildbach/pte/OebbProvider.java index ab21af93..d648bdb8 100644 --- a/src/de/schildbach/pte/OebbProvider.java +++ b/src/de/schildbach/pte/OebbProvider.java @@ -121,7 +121,8 @@ public class OebbProvider implements NetworkProvider private static final Pattern P_PRE_ADDRESS = Pattern.compile( "(.*?)", Pattern.DOTALL); private static final Pattern P_ADDRESSES = Pattern.compile("\\s*(.*?)\\s*", Pattern.DOTALL); - private static final Pattern P_CHECK_CONNECTIONS_ERROR = Pattern.compile("(keine Verbindung gefunden werden)"); + private static final Pattern P_CHECK_CONNECTIONS_ERROR = Pattern + .compile("(keine Verbindung gefunden werden)|(liegt nach dem Ende der Fahrplanperiode|liegt vor Beginn der Fahrplanperiode)"); public QueryConnectionsResult queryConnections(final LocationType fromType, final String from, final LocationType viaType, final String via, final LocationType toType, final String to, final Date date, final boolean dep, final WalkSpeed walkSpeed) throws IOException @@ -134,6 +135,8 @@ public class OebbProvider implements NetworkProvider { if (mError.group(1) != null) return QueryConnectionsResult.NO_CONNECTIONS; + if (mError.group(2) != null) + return QueryConnectionsResult.INVALID_DATE; } List fromAddresses = null; @@ -192,9 +195,9 @@ public class OebbProvider implements NetworkProvider + "\n\\s*(.*?)\\s*.*?" // from - + "Datum:.*?.., (\\d{2}\\.\\d{2}\\.\\d{2}).*?" // date - + "nach:.*?\\s*(.*?)\\s*.*?" // to + + "von:.*?]*>\\s*(.*?)\\s*.*?" // from + + "Datum:.*?]*>.., (\\d{2}\\.\\d{2}\\.\\d{2}).*?" // date + + "nach:.*?]*>\\s*(.*?)\\s*.*?" // to + "(?:\"(REQ0HafasScrollDir=2&guiVCtrl_connection_detailsOut_add_selection&)\".*?)?" // linkEarlier + "(?:\"(REQ0HafasScrollDir=1&guiVCtrl_connection_detailsOut_add_selection&)\".*?)?" // linkLater , Pattern.DOTALL); diff --git a/src/de/schildbach/pte/QueryConnectionsResult.java b/src/de/schildbach/pte/QueryConnectionsResult.java index e56ed371..d3b06974 100644 --- a/src/de/schildbach/pte/QueryConnectionsResult.java +++ b/src/de/schildbach/pte/QueryConnectionsResult.java @@ -28,11 +28,12 @@ public final class QueryConnectionsResult implements Serializable { public enum Status { - OK, AMBIGUOUS, TOO_CLOSE, NO_CONNECTIONS; + OK, AMBIGUOUS, TOO_CLOSE, NO_CONNECTIONS, INVALID_DATE; } public static final QueryConnectionsResult TOO_CLOSE = new QueryConnectionsResult(Status.TOO_CLOSE, null, null, null); public static final QueryConnectionsResult NO_CONNECTIONS = new QueryConnectionsResult(Status.NO_CONNECTIONS, null, null, null); + public static final QueryConnectionsResult INVALID_DATE = new QueryConnectionsResult(Status.INVALID_DATE, null, null, null); public final Status status; diff --git a/src/de/schildbach/pte/RmvProvider.java b/src/de/schildbach/pte/RmvProvider.java index 1be85e49..8a5ee10b 100644 --- a/src/de/schildbach/pte/RmvProvider.java +++ b/src/de/schildbach/pte/RmvProvider.java @@ -186,7 +186,7 @@ public class RmvProvider implements NetworkProvider private static final Pattern P_ADDRESSES = Pattern.compile( ".*?\\s*(.*?)\\s*.*?", Pattern.DOTALL); private static final Pattern P_CHECK_CONNECTIONS_ERROR = Pattern.compile( - "(?:(mehrfach vorhanden oder identisch)|(keine Verbindung gefunden werden))", Pattern.CASE_INSENSITIVE); + "(mehrfach vorhanden oder identisch)|(keine Verbindung gefunden werden)|(derzeit nur Auskünfte vom)", Pattern.CASE_INSENSITIVE); public QueryConnectionsResult queryConnections(final LocationType fromType, final String from, final LocationType viaType, final String via, final LocationType toType, final String to, final Date date, final boolean dep, final WalkSpeed walkSpeed) throws IOException @@ -201,6 +201,8 @@ public class RmvProvider implements NetworkProvider return QueryConnectionsResult.TOO_CLOSE; if (mError.group(2) != null) return QueryConnectionsResult.NO_CONNECTIONS; + if (mError.group(3) != null) + return QueryConnectionsResult.INVALID_DATE; } List fromAddresses = null; diff --git a/src/de/schildbach/pte/SbbProvider.java b/src/de/schildbach/pte/SbbProvider.java index df3888fe..729729ae 100644 --- a/src/de/schildbach/pte/SbbProvider.java +++ b/src/de/schildbach/pte/SbbProvider.java @@ -137,7 +137,7 @@ public class SbbProvider implements NetworkProvider "", Pattern.DOTALL); private static final Pattern P_ADDRESSES = Pattern.compile("\\s*(.*?)\\s*", Pattern.DOTALL); private static final Pattern P_CHECK_CONNECTIONS_ERROR = Pattern - .compile("(mehrfach vorhanden oder identisch)|(keine Verbindung gefunden werden)"); + .compile("(mehrfach vorhanden oder identisch)|(keine Verbindung gefunden werden)|(liegt nach dem Ende der Fahrplanperiode|liegt vor Beginn der Fahrplanperiode)"); public QueryConnectionsResult queryConnections(final LocationType fromType, final String from, final LocationType viaType, final String via, final LocationType toType, final String to, final Date date, final boolean dep, final WalkSpeed walkSpeed) throws IOException @@ -152,6 +152,8 @@ public class SbbProvider implements NetworkProvider return QueryConnectionsResult.TOO_CLOSE; if (mError.group(2) != null) return QueryConnectionsResult.NO_CONNECTIONS; + if (mError.group(3) != null) + return QueryConnectionsResult.INVALID_DATE; } List fromAddresses = null; @@ -197,9 +199,9 @@ public class SbbProvider implements NetworkProvider } private static final Pattern P_CONNECTIONS_HEAD = Pattern.compile(".*?" // - + "Von:.*?(?:)?(.*?).*?" // from - + "Datum:.*?.., (\\d{2}\\.\\d{2}\\.\\d{2}).*?" // date - + "Nach:.*?(?:)?(.*?).*?" // to + + "Von:.*?]*>(?:)?(.*?).*?" // from + + "Datum:.*?]*>.., (\\d{2}\\.\\d{2}\\.\\d{2}).*?" // date + + "Nach:.*?]*>(?:)?(.*?).*?" // to + "(?: