mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-08 00:08:49 +00:00
error message for 'invalid date'
git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@158 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
parent
33494f42c4
commit
1855b76d9a
6 changed files with 26 additions and 13 deletions
|
@ -168,7 +168,7 @@ public final class BahnProvider implements NetworkProvider
|
||||||
"<select name=\"(REQ0JourneyStopsS0K|REQ0JourneyStopsZ0K|REQ0JourneyStops1\\.0K)\" class=\"nofullwidth\">(.*?)</select>", Pattern.DOTALL);
|
"<select name=\"(REQ0JourneyStopsS0K|REQ0JourneyStopsZ0K|REQ0JourneyStops1\\.0K)\" class=\"nofullwidth\">(.*?)</select>", Pattern.DOTALL);
|
||||||
private static final Pattern P_ADDRESSES = Pattern.compile("<option.*?>\\s*(.*?)\\s*</option>", Pattern.DOTALL);
|
private static final Pattern P_ADDRESSES = Pattern.compile("<option.*?>\\s*(.*?)\\s*</option>", Pattern.DOTALL);
|
||||||
private static final Pattern P_CHECK_CONNECTIONS_ERROR = Pattern
|
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,
|
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
|
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;
|
return QueryConnectionsResult.TOO_CLOSE;
|
||||||
if (mError.group(2) != null)
|
if (mError.group(2) != null)
|
||||||
return QueryConnectionsResult.NO_CONNECTIONS;
|
return QueryConnectionsResult.NO_CONNECTIONS;
|
||||||
|
if (mError.group(3) != null)
|
||||||
|
return QueryConnectionsResult.INVALID_DATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> fromAddresses = null;
|
List<String> fromAddresses = null;
|
||||||
|
|
|
@ -121,7 +121,8 @@ public class OebbProvider implements NetworkProvider
|
||||||
private static final Pattern P_PRE_ADDRESS = Pattern.compile(
|
private static final Pattern P_PRE_ADDRESS = Pattern.compile(
|
||||||
"<select.*? name=\"(REQ0JourneyStopsS0K|REQ0JourneyStopsZ0K|REQ0JourneyStops1\\.0K)\".*?>(.*?)</select>", Pattern.DOTALL);
|
"<select.*? name=\"(REQ0JourneyStopsS0K|REQ0JourneyStopsZ0K|REQ0JourneyStops1\\.0K)\".*?>(.*?)</select>", Pattern.DOTALL);
|
||||||
private static final Pattern P_ADDRESSES = Pattern.compile("<option.*?>\\s*(.*?)\\s*</option>", Pattern.DOTALL);
|
private static final Pattern P_ADDRESSES = Pattern.compile("<option.*?>\\s*(.*?)\\s*</option>", 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,
|
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
|
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)
|
if (mError.group(1) != null)
|
||||||
return QueryConnectionsResult.NO_CONNECTIONS;
|
return QueryConnectionsResult.NO_CONNECTIONS;
|
||||||
|
if (mError.group(2) != null)
|
||||||
|
return QueryConnectionsResult.INVALID_DATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> fromAddresses = null;
|
List<String> fromAddresses = null;
|
||||||
|
@ -192,9 +195,9 @@ public class OebbProvider implements NetworkProvider
|
||||||
+ "</table>\n<div.*?" //
|
+ "</table>\n<div.*?" //
|
||||||
, Pattern.DOTALL);
|
, Pattern.DOTALL);
|
||||||
private static final Pattern P_CONNECTIONS_HEAD = Pattern.compile(".*?" //
|
private static final Pattern P_CONNECTIONS_HEAD = Pattern.compile(".*?" //
|
||||||
+ "von:.*?<td .*?>\\s*(.*?)\\s*</td>.*?" // from
|
+ "von:.*?<td [^>]*>\\s*(.*?)\\s*</td>.*?" // from
|
||||||
+ "Datum:.*?<td .*?>.., (\\d{2}\\.\\d{2}\\.\\d{2})</td>.*?" // date
|
+ "Datum:.*?<td [^>]*>.., (\\d{2}\\.\\d{2}\\.\\d{2})</td>.*?" // date
|
||||||
+ "nach:.*?<td .*?>\\s*(.*?)\\s*</td>.*?" // to
|
+ "nach:.*?<td [^>]*>\\s*(.*?)\\s*</td>.*?" // to
|
||||||
+ "(?:\"(REQ0HafasScrollDir=2&guiVCtrl_connection_detailsOut_add_selection&)\".*?)?" // linkEarlier
|
+ "(?:\"(REQ0HafasScrollDir=2&guiVCtrl_connection_detailsOut_add_selection&)\".*?)?" // linkEarlier
|
||||||
+ "(?:\"(REQ0HafasScrollDir=1&guiVCtrl_connection_detailsOut_add_selection&)\".*?)?" // linkLater
|
+ "(?:\"(REQ0HafasScrollDir=1&guiVCtrl_connection_detailsOut_add_selection&)\".*?)?" // linkLater
|
||||||
, Pattern.DOTALL);
|
, Pattern.DOTALL);
|
||||||
|
|
|
@ -28,11 +28,12 @@ public final class QueryConnectionsResult implements Serializable
|
||||||
{
|
{
|
||||||
public enum Status
|
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 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 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;
|
public final Status status;
|
||||||
|
|
||||||
|
|
|
@ -186,7 +186,7 @@ public class RmvProvider implements NetworkProvider
|
||||||
private static final Pattern P_ADDRESSES = Pattern.compile(
|
private static final Pattern P_ADDRESSES = Pattern.compile(
|
||||||
"<span class=\"tplight\">.*?<a href=\"http://www.rmv.de/auskunft/bin/jp/query.exe/dox.*?\">\\s*(.*?)\\s*</a>.*?</span>", Pattern.DOTALL);
|
"<span class=\"tplight\">.*?<a href=\"http://www.rmv.de/auskunft/bin/jp/query.exe/dox.*?\">\\s*(.*?)\\s*</a>.*?</span>", Pattern.DOTALL);
|
||||||
private static final Pattern P_CHECK_CONNECTIONS_ERROR = Pattern.compile(
|
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,
|
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
|
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;
|
return QueryConnectionsResult.TOO_CLOSE;
|
||||||
if (mError.group(2) != null)
|
if (mError.group(2) != null)
|
||||||
return QueryConnectionsResult.NO_CONNECTIONS;
|
return QueryConnectionsResult.NO_CONNECTIONS;
|
||||||
|
if (mError.group(3) != null)
|
||||||
|
return QueryConnectionsResult.INVALID_DATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> fromAddresses = null;
|
List<String> fromAddresses = null;
|
||||||
|
|
|
@ -137,7 +137,7 @@ public class SbbProvider implements NetworkProvider
|
||||||
"<select name=\"(REQ0JourneyStopsS0K|REQ0JourneyStopsZ0K|REQ0JourneyStops1\\.0K)\" accesskey=\"f\".*?>(.*?)</select>", Pattern.DOTALL);
|
"<select name=\"(REQ0JourneyStopsS0K|REQ0JourneyStopsZ0K|REQ0JourneyStops1\\.0K)\" accesskey=\"f\".*?>(.*?)</select>", Pattern.DOTALL);
|
||||||
private static final Pattern P_ADDRESSES = Pattern.compile("<option.*?>\\s*(.*?)\\s*</option>", Pattern.DOTALL);
|
private static final Pattern P_ADDRESSES = Pattern.compile("<option.*?>\\s*(.*?)\\s*</option>", Pattern.DOTALL);
|
||||||
private static final Pattern P_CHECK_CONNECTIONS_ERROR = Pattern
|
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,
|
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
|
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;
|
return QueryConnectionsResult.TOO_CLOSE;
|
||||||
if (mError.group(2) != null)
|
if (mError.group(2) != null)
|
||||||
return QueryConnectionsResult.NO_CONNECTIONS;
|
return QueryConnectionsResult.NO_CONNECTIONS;
|
||||||
|
if (mError.group(3) != null)
|
||||||
|
return QueryConnectionsResult.INVALID_DATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> fromAddresses = null;
|
List<String> fromAddresses = null;
|
||||||
|
@ -197,9 +199,9 @@ public class SbbProvider implements NetworkProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Pattern P_CONNECTIONS_HEAD = Pattern.compile(".*?" //
|
private static final Pattern P_CONNECTIONS_HEAD = Pattern.compile(".*?" //
|
||||||
+ "Von:.*?<td .*?>(?:<a.*?/a>)?(.*?)</td>.*?" // from
|
+ "Von:.*?<td [^>]*>(?:<a.*?/a>)?(.*?)</td>.*?" // from
|
||||||
+ "Datum:.*?<td .*?>.., (\\d{2}\\.\\d{2}\\.\\d{2})</td>.*?" // date
|
+ "Datum:.*?<td [^>]*>.., (\\d{2}\\.\\d{2}\\.\\d{2})</td>.*?" // date
|
||||||
+ "Nach:.*?<td .*?>(?:<a.*?/a>)?(.*?)</td>.*?" // to
|
+ "Nach:.*?<td [^>]*>(?:<a.*?/a>)?(.*?)</td>.*?" // to
|
||||||
+ "(?:<a href=\"(http://fahrplan.sbb.ch/bin/query.exe/dn[^\"]*?&REQ0HafasScrollDir=2)\".*?)?" // linkEarlier
|
+ "(?:<a href=\"(http://fahrplan.sbb.ch/bin/query.exe/dn[^\"]*?&REQ0HafasScrollDir=2)\".*?)?" // linkEarlier
|
||||||
+ "(?:<a href=\"(http://fahrplan.sbb.ch/bin/query.exe/dn[^\"]*?&REQ0HafasScrollDir=1)\".*?)?" // linkLater
|
+ "(?:<a href=\"(http://fahrplan.sbb.ch/bin/query.exe/dn[^\"]*?&REQ0HafasScrollDir=1)\".*?)?" // linkLater
|
||||||
, Pattern.DOTALL);
|
, Pattern.DOTALL);
|
||||||
|
|
|
@ -241,7 +241,7 @@ public final class VbbProvider implements NetworkProvider
|
||||||
private static final Pattern P_CHECK_FROM = Pattern.compile("Von:");
|
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_TO = Pattern.compile("Nach:");
|
||||||
private static final Pattern P_CHECK_CONNECTIONS_ERROR = Pattern
|
private static final Pattern P_CHECK_CONNECTIONS_ERROR = Pattern
|
||||||
.compile("(zu dicht beieinander|mehrfach vorhanden oder identisch)|(keine Verbindung gefunden)");
|
.compile("(zu dicht beieinander|mehrfach vorhanden oder identisch)|(keine Verbindung gefunden)|(derzeit nur Auskünfte vom)");
|
||||||
|
|
||||||
public QueryConnectionsResult queryConnections(final LocationType fromType, final String from, final LocationType viaType, final String via,
|
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
|
final LocationType toType, final String to, final Date date, final boolean dep, final WalkSpeed walkSpeed) throws IOException
|
||||||
|
@ -256,6 +256,8 @@ public final class VbbProvider implements NetworkProvider
|
||||||
return QueryConnectionsResult.TOO_CLOSE;
|
return QueryConnectionsResult.TOO_CLOSE;
|
||||||
if (mError.group(2) != null)
|
if (mError.group(2) != null)
|
||||||
return QueryConnectionsResult.NO_CONNECTIONS;
|
return QueryConnectionsResult.NO_CONNECTIONS;
|
||||||
|
if (mError.group(3) != null)
|
||||||
|
return QueryConnectionsResult.INVALID_DATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Matcher mAddress = P_CHECK_ADDRESS.matcher(page);
|
final Matcher mAddress = P_CHECK_ADDRESS.matcher(page);
|
||||||
|
@ -454,7 +456,8 @@ public final class VbbProvider implements NetworkProvider
|
||||||
{
|
{
|
||||||
final int arrivalId = mDetFine.group(12) != null ? Integer.parseInt(mDetFine.group(12)) : 0;
|
final int arrivalId = mDetFine.group(12) != null ? Integer.parseInt(mDetFine.group(12)) : 0;
|
||||||
|
|
||||||
final String arrival = ParserUtils.resolveEntities(ParserUtils.selectNotNull(mDetFine.group(13), mDetFine.group(16), mDetFine.group(17)));
|
final String arrival = ParserUtils.resolveEntities(ParserUtils.selectNotNull(mDetFine.group(13), mDetFine.group(16), mDetFine
|
||||||
|
.group(17)));
|
||||||
|
|
||||||
final double arrivalLon = mDetFine.group(14) != null ? latLonToDouble(Integer.parseInt(mDetFine.group(14))) : 0;
|
final double arrivalLon = mDetFine.group(14) != null ? latLonToDouble(Integer.parseInt(mDetFine.group(14))) : 0;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue