mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-08 21:08:48 +00:00
locationId in QueryDeparturesResult
git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@17 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
parent
1315484d07
commit
f505d2eda8
5 changed files with 34 additions and 7 deletions
|
@ -413,11 +413,17 @@ public final class BahnProvider implements NetworkProvider
|
||||||
private static final Pattern P_DEPARTURES_COARSE = Pattern.compile("<div class=\"sqdetailsDep trow\">(.+?)</div>", Pattern.DOTALL);
|
private static final Pattern P_DEPARTURES_COARSE = Pattern.compile("<div class=\"sqdetailsDep trow\">(.+?)</div>", Pattern.DOTALL);
|
||||||
private static final Pattern P_DEPARTURES_FINE = Pattern.compile(".*?<span class=\"bold\">(.*?)</span>.*?"
|
private static final Pattern P_DEPARTURES_FINE = Pattern.compile(".*?<span class=\"bold\">(.*?)</span>.*?"
|
||||||
+ ">>\\n?\\s*(.+?)\\s*\\n?<br />\\n?<span class=\"bold\">(\\d+:\\d+)</span>.*?", Pattern.DOTALL);
|
+ ">>\\n?\\s*(.+?)\\s*\\n?<br />\\n?<span class=\"bold\">(\\d+:\\d+)</span>.*?", Pattern.DOTALL);
|
||||||
|
private static final Pattern P_DEPARTURES_URI_STATION_ID = Pattern.compile("input=(\\d+)");
|
||||||
|
|
||||||
public QueryDeparturesResult queryDepartures(final String uri) throws IOException
|
public QueryDeparturesResult queryDepartures(final String uri) throws IOException
|
||||||
{
|
{
|
||||||
final CharSequence page = ParserUtils.scrape(uri);
|
final CharSequence page = ParserUtils.scrape(uri);
|
||||||
|
|
||||||
|
final Matcher mStationId = P_DEPARTURES_URI_STATION_ID.matcher(uri);
|
||||||
|
if (!mStationId.find())
|
||||||
|
throw new IllegalStateException(uri);
|
||||||
|
final int stationId = Integer.parseInt(mStationId.group(1));
|
||||||
|
|
||||||
// parse page
|
// parse page
|
||||||
final Matcher mHead = P_DEPARTURES_HEAD.matcher(page);
|
final Matcher mHead = P_DEPARTURES_HEAD.matcher(page);
|
||||||
if (mHead.matches())
|
if (mHead.matches())
|
||||||
|
@ -443,7 +449,7 @@ public final class BahnProvider implements NetworkProvider
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new QueryDeparturesResult(uri, location, currentTime, departures);
|
return new QueryDeparturesResult(uri, stationId, location, currentTime, departures);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -474,11 +474,17 @@ public class MvvProvider implements NetworkProvider
|
||||||
+ "<td width=\"100\">\\s*([^<]*?)[\\xa0\\s]*(?:<a .*?</a>.*?)?" // line
|
+ "<td width=\"100\">\\s*([^<]*?)[\\xa0\\s]*(?:<a .*?</a>.*?)?" // line
|
||||||
+ "<br />\\s*(.*?)\\s*<br />.*?" // destination
|
+ "<br />\\s*(.*?)\\s*<br />.*?" // destination
|
||||||
+ "</td>.*?", Pattern.DOTALL);
|
+ "</td>.*?", Pattern.DOTALL);
|
||||||
|
private static final Pattern P_DEPARTURES_URI_STATION_ID = Pattern.compile("nameInfo_dm=(\\d+)");
|
||||||
|
|
||||||
public QueryDeparturesResult queryDepartures(final String uri) throws IOException
|
public QueryDeparturesResult queryDepartures(final String uri) throws IOException
|
||||||
{
|
{
|
||||||
final CharSequence page = ParserUtils.scrape(uri);
|
final CharSequence page = ParserUtils.scrape(uri);
|
||||||
|
|
||||||
|
final Matcher mStationId = P_DEPARTURES_URI_STATION_ID.matcher(uri);
|
||||||
|
if (!mStationId.find())
|
||||||
|
throw new IllegalStateException(uri);
|
||||||
|
final int stationId = Integer.parseInt(mStationId.group(1));
|
||||||
|
|
||||||
final Matcher mHead = P_DEPARTURES_HEAD.matcher(page);
|
final Matcher mHead = P_DEPARTURES_HEAD.matcher(page);
|
||||||
if (mHead.matches())
|
if (mHead.matches())
|
||||||
{
|
{
|
||||||
|
@ -514,7 +520,7 @@ public class MvvProvider implements NetworkProvider
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new QueryDeparturesResult(uri, location, currentTime, departures);
|
return new QueryDeparturesResult(uri, stationId, location, currentTime, departures);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,17 +25,20 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public final class QueryDeparturesResult
|
public final class QueryDeparturesResult
|
||||||
{
|
{
|
||||||
public static final QueryDeparturesResult NO_INFO = new QueryDeparturesResult(null, null, null, null);
|
public static final QueryDeparturesResult NO_INFO = new QueryDeparturesResult(null, 0, null, null, null);
|
||||||
public static final QueryDeparturesResult SERVICE_DOWN = new QueryDeparturesResult(null, null, null, null);
|
public static final QueryDeparturesResult SERVICE_DOWN = new QueryDeparturesResult(null, 0, null, null, null);
|
||||||
|
|
||||||
public final String uri;
|
public final String uri;
|
||||||
|
public final int locationId;
|
||||||
public final String location;
|
public final String location;
|
||||||
public final Date currentTime;
|
public final Date currentTime;
|
||||||
public final List<Departure> departures;
|
public final List<Departure> departures;
|
||||||
|
|
||||||
public QueryDeparturesResult(final String uri, final String location, final Date currentTime, final List<Departure> departures)
|
public QueryDeparturesResult(final String uri, final int locationId, final String location, final Date currentTime,
|
||||||
|
final List<Departure> departures)
|
||||||
{
|
{
|
||||||
this.uri = uri;
|
this.uri = uri;
|
||||||
|
this.locationId = locationId;
|
||||||
this.location = location;
|
this.location = location;
|
||||||
this.currentTime = currentTime;
|
this.currentTime = currentTime;
|
||||||
this.departures = departures;
|
this.departures = departures;
|
||||||
|
|
|
@ -387,11 +387,17 @@ public class RmvProvider implements NetworkProvider
|
||||||
+ "<br />.*?" //
|
+ "<br />.*?" //
|
||||||
+ "<b>(\\d+:\\d+)</b>.*?" // time
|
+ "<b>(\\d+:\\d+)</b>.*?" // time
|
||||||
+ "(?:Gl\\. (\\d+)<br />.*?)?", Pattern.DOTALL);
|
+ "(?:Gl\\. (\\d+)<br />.*?)?", Pattern.DOTALL);
|
||||||
|
private static final Pattern P_DEPARTURES_URI_STATION_ID = Pattern.compile("input=(\\d+)");
|
||||||
|
|
||||||
public QueryDeparturesResult queryDepartures(final String uri) throws IOException
|
public QueryDeparturesResult queryDepartures(final String uri) throws IOException
|
||||||
{
|
{
|
||||||
final CharSequence page = ParserUtils.scrape(uri);
|
final CharSequence page = ParserUtils.scrape(uri);
|
||||||
|
|
||||||
|
final Matcher mStationId = P_DEPARTURES_URI_STATION_ID.matcher(uri);
|
||||||
|
if (!mStationId.find())
|
||||||
|
throw new IllegalStateException(uri);
|
||||||
|
final int stationId = Integer.parseInt(mStationId.group(1));
|
||||||
|
|
||||||
// parse page
|
// parse page
|
||||||
final Matcher mHead = P_DEPARTURES_HEAD.matcher(page);
|
final Matcher mHead = P_DEPARTURES_HEAD.matcher(page);
|
||||||
if (mHead.matches())
|
if (mHead.matches())
|
||||||
|
@ -417,7 +423,7 @@ public class RmvProvider implements NetworkProvider
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new QueryDeparturesResult(uri, location, currentTime, departures);
|
return new QueryDeparturesResult(uri, stationId, location, currentTime, departures);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -401,11 +401,17 @@ public final class VbbProvider implements NetworkProvider
|
||||||
+ "<td>\\s*<strong>\\s*(.*?)[\\s\\*]*</strong>.*?</td>\\s*" //
|
+ "<td>\\s*<strong>\\s*(.*?)[\\s\\*]*</strong>.*?</td>\\s*" //
|
||||||
+ "<td>\\s*<a.*?>\\s*(.*?)\\s*</a>\\s*</td>", Pattern.DOTALL);
|
+ "<td>\\s*<a.*?>\\s*(.*?)\\s*</a>\\s*</td>", Pattern.DOTALL);
|
||||||
private static final Pattern P_DEPARTURES_SERVICE_DOWN = Pattern.compile("Wartungsarbeiten");
|
private static final Pattern P_DEPARTURES_SERVICE_DOWN = Pattern.compile("Wartungsarbeiten");
|
||||||
|
private static final Pattern P_DEPARTURES_URI_STATION_ID = Pattern.compile("input=(\\d+)");
|
||||||
|
|
||||||
public QueryDeparturesResult queryDepartures(final String uri) throws IOException
|
public QueryDeparturesResult queryDepartures(final String uri) throws IOException
|
||||||
{
|
{
|
||||||
final CharSequence page = ParserUtils.scrape(uri);
|
final CharSequence page = ParserUtils.scrape(uri);
|
||||||
|
|
||||||
|
final Matcher mStationId = P_DEPARTURES_URI_STATION_ID.matcher(uri);
|
||||||
|
if (!mStationId.find())
|
||||||
|
throw new IllegalStateException(uri);
|
||||||
|
final int stationId = Integer.parseInt(mStationId.group(1));
|
||||||
|
|
||||||
if (P_DEPARTURES_SERVICE_DOWN.matcher(page).find())
|
if (P_DEPARTURES_SERVICE_DOWN.matcher(page).find())
|
||||||
return QueryDeparturesResult.SERVICE_DOWN;
|
return QueryDeparturesResult.SERVICE_DOWN;
|
||||||
|
|
||||||
|
@ -435,7 +441,7 @@ public final class VbbProvider implements NetworkProvider
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new QueryDeparturesResult(uri, location, currentTime, departures);
|
return new QueryDeparturesResult(uri, stationId, location, currentTime, departures);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue