Allow specifying time when querying for departures.

This commit is contained in:
Andreas Schildbach 2014-08-28 10:22:05 +02:00
parent 110f48ac81
commit 6e2aa29eca
76 changed files with 224 additions and 206 deletions

View file

@ -1416,23 +1416,21 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
+ "' trainType='" + trainType + "' trainNum='" + trainNum + "' trainName='" + trainName + "'"); + "' trainType='" + trainType + "' trainNum='" + trainNum + "' trainName='" + trainName + "'");
} }
public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures, final boolean equivs) throws IOException public QueryDeparturesResult queryDepartures(final String stationId, final Date time, final int maxDepartures, final boolean equivs)
throws IOException
{ {
final StringBuilder parameters = xsltDepartureMonitorRequestParameters(stationId, maxDepartures, equivs); return xsltDepartureMonitorRequest(stationId, time, maxDepartures, equivs);
final StringBuilder uri = new StringBuilder(departureMonitorEndpoint);
if (!httpPost)
uri.append(parameters);
return xsltDepartureMonitorRequest(stationId, maxDepartures, equivs);
} }
protected StringBuilder xsltDepartureMonitorRequestParameters(final String stationId, final int maxDepartures, final boolean equivs) protected StringBuilder xsltDepartureMonitorRequestParameters(final String stationId, final Date time, final int maxDepartures,
final boolean equivs)
{ {
final StringBuilder parameters = new StringBuilder(); final StringBuilder parameters = new StringBuilder();
appendCommonRequestParams(parameters, "XML"); appendCommonRequestParams(parameters, "XML");
parameters.append("&type_dm=stop"); parameters.append("&type_dm=stop");
parameters.append("&name_dm=").append(normalizeStationId(stationId)); parameters.append("&name_dm=").append(normalizeStationId(stationId));
if (time != null)
appendItdDateTimeParameters(parameters, time);
if (useRealtime) if (useRealtime)
parameters.append("&useRealtime=1"); parameters.append("&useRealtime=1");
parameters.append("&mode=direct"); parameters.append("&mode=direct");
@ -1447,10 +1445,23 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
return parameters; return parameters;
} }
private QueryDeparturesResult xsltDepartureMonitorRequest(final String stationId, final int maxDepartures, final boolean equivs) private final void appendItdDateTimeParameters(final StringBuilder uri, final Date time)
{
final Calendar c = new GregorianCalendar(timeZone);
c.setTime(time);
final int year = c.get(Calendar.YEAR);
final int month = c.get(Calendar.MONTH) + 1;
final int day = c.get(Calendar.DAY_OF_MONTH);
final int hour = c.get(Calendar.HOUR_OF_DAY);
final int minute = c.get(Calendar.MINUTE);
uri.append("&itdDate=").append(ParserUtils.urlEncode(String.format(Locale.ENGLISH, "%04d%02d%02d", year, month, day)));
uri.append("&itdTime=").append(ParserUtils.urlEncode(String.format(Locale.ENGLISH, "%02d%02d", hour, minute)));
}
private QueryDeparturesResult xsltDepartureMonitorRequest(final String stationId, final Date time, final int maxDepartures, final boolean equivs)
throws IOException throws IOException
{ {
final StringBuilder parameters = xsltDepartureMonitorRequestParameters(stationId, maxDepartures, equivs); final StringBuilder parameters = xsltDepartureMonitorRequestParameters(stationId, time, maxDepartures, equivs);
final StringBuilder uri = new StringBuilder(departureMonitorEndpoint); final StringBuilder uri = new StringBuilder(departureMonitorEndpoint);
if (!httpPost) if (!httpPost)
@ -1662,9 +1673,10 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
} }
} }
protected QueryDeparturesResult queryDeparturesMobile(final String stationId, final int maxDepartures, final boolean equivs) throws IOException protected QueryDeparturesResult queryDeparturesMobile(final String stationId, final Date time, final int maxDepartures, final boolean equivs)
throws IOException
{ {
final StringBuilder parameters = xsltDepartureMonitorRequestParameters(stationId, maxDepartures, equivs); final StringBuilder parameters = xsltDepartureMonitorRequestParameters(stationId, time, maxDepartures, equivs);
final StringBuilder uri = new StringBuilder(departureMonitorEndpoint); final StringBuilder uri = new StringBuilder(departureMonitorEndpoint);
if (!httpPost) if (!httpPost)
@ -2022,7 +2034,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
return (double) value / 1000000; return (double) value / 1000000;
} }
protected String xsltTripRequestParameters(final Location from, final Location via, final Location to, final Date date, final boolean dep, protected String xsltTripRequestParameters(final Location from, final Location via, final Location to, final Date time, final boolean dep,
final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility, final Set<Option> options) final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility, final Set<Option> options)
{ {
final StringBuilder uri = new StringBuilder(); final StringBuilder uri = new StringBuilder();
@ -2039,15 +2051,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
if (via != null) if (via != null)
appendLocation(uri, via, "via"); appendLocation(uri, via, "via");
final Calendar c = new GregorianCalendar(timeZone); appendItdDateTimeParameters(uri, time);
c.setTime(date);
final int year = c.get(Calendar.YEAR);
final int month = c.get(Calendar.MONTH) + 1;
final int day = c.get(Calendar.DAY_OF_MONTH);
final int hour = c.get(Calendar.HOUR_OF_DAY);
final int minute = c.get(Calendar.MINUTE);
uri.append("&itdDate=").append(ParserUtils.urlEncode(String.format(Locale.ENGLISH, "%04d%02d%02d", year, month, day)));
uri.append("&itdTime=").append(ParserUtils.urlEncode(String.format(Locale.ENGLISH, "%02d%02d", hour, minute)));
uri.append("&itdTripDateTimeDepArr=").append(dep ? "dep" : "arr"); uri.append("&itdTripDateTimeDepArr=").append(dep ? "dep" : "arr");

View file

@ -441,26 +441,46 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
} }
} }
public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures, final boolean equivs) throws IOException public QueryDeparturesResult queryDepartures(final String stationId, final Date time, final int maxDepartures, final boolean equivs)
throws IOException
{ {
final StringBuilder uri = new StringBuilder(stationBoardEndpoint); final StringBuilder uri = new StringBuilder(stationBoardEndpoint);
appendXmlStationBoardParameters(uri, stationId, maxDepartures); appendXmlStationBoardParameters(uri, time, stationId, maxDepartures, "vs_java3");
return xmlStationBoard(uri.toString(), stationId); return xmlStationBoard(uri.toString(), stationId);
} }
protected void appendXmlStationBoardParameters(final StringBuilder uri, final String stationId, final int maxDepartures) protected void appendXmlStationBoardParameters(final StringBuilder uri, final Date time, final String stationId, final int maxDepartures,
final String styleSheet)
{ {
uri.append("?productsFilter=").append(allProductsString()); uri.append("?productsFilter=").append(allProductsString());
uri.append("&boardType=dep"); uri.append("&boardType=dep");
if (stationBoardCanDoEquivs) if (stationBoardCanDoEquivs)
uri.append("&disableEquivs=yes"); // don't use nearby stations uri.append("&disableEquivs=yes"); // don't use nearby stations
uri.append("&maxJourneys=").append(maxDepartures > 0 ? maxDepartures : DEFAULT_MAX_DEPARTURES); uri.append("&maxJourneys=").append(maxDepartures > 0 ? maxDepartures : DEFAULT_MAX_DEPARTURES);
uri.append("&start=yes");
uri.append("&L=vs_java3");
uri.append("&input=").append(normalizeStationId(stationId)); uri.append("&input=").append(normalizeStationId(stationId));
appendDateTimeParameters(uri, time, "date", "time");
if (clientType != null) if (clientType != null)
uri.append("&clientType=").append(ParserUtils.urlEncode(clientType)); uri.append("&clientType=").append(ParserUtils.urlEncode(clientType));
if (styleSheet != null)
uri.append("&L=").append(styleSheet);
uri.append("&start=yes");
}
protected void appendDateTimeParameters(final StringBuilder uri, final Date time, final String dateParamName, final String timeParamName)
{
final Calendar c = new GregorianCalendar(timeZone);
c.setTime(time);
final int year = c.get(Calendar.YEAR);
final int month = c.get(Calendar.MONTH) + 1;
final int day = c.get(Calendar.DAY_OF_MONTH);
final int hour = c.get(Calendar.HOUR_OF_DAY);
final int minute = c.get(Calendar.MINUTE);
uri.append('&').append(dateParamName).append('=');
uri.append(ParserUtils.urlEncode(useIso8601 ? String.format(Locale.ENGLISH, "%04d-%02d-%02d", year, month, day) : String.format(
Locale.ENGLISH, "%02d.%02d.%02d", day, month, year - 2000)));
uri.append('&').append(timeParamName).append('=');
uri.append(ParserUtils.urlEncode(String.format(Locale.ENGLISH, "%02d:%02d", hour, minute)));
} }
private static final Pattern P_XML_STATION_BOARD_DELAY = Pattern.compile("(?:-|k\\.A\\.?|cancel|\\+?\\s*(\\d+))"); private static final Pattern P_XML_STATION_BOARD_DELAY = Pattern.compile("(?:-|k\\.A\\.?|cancel|\\+?\\s*(\\d+))");
@ -1358,17 +1378,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
uri.append("&REQ0HafasSearchForw=").append(dep ? "1" : "0"); uri.append("&REQ0HafasSearchForw=").append(dep ? "1" : "0");
final Calendar c = new GregorianCalendar(timeZone); appendDateTimeParameters(uri, date, "REQ0JourneyDate", "REQ0JourneyTime");
c.setTime(date);
final int year = c.get(Calendar.YEAR);
final int month = c.get(Calendar.MONTH) + 1;
final int day = c.get(Calendar.DAY_OF_MONTH);
final int hour = c.get(Calendar.HOUR_OF_DAY);
final int minute = c.get(Calendar.MINUTE);
uri.append("&REQ0JourneyDate=").append(
ParserUtils.urlEncode(useIso8601 ? String.format(Locale.ENGLISH, "%04d-%02d-%02d", year, month, day) : String.format(Locale.ENGLISH,
"%02d.%02d.%02d", day, month, year - 2000)));
uri.append("&REQ0JourneyTime=").append(ParserUtils.urlEncode(String.format(Locale.ENGLISH, "%02d:%02d", hour, minute)));
final StringBuilder productsStr = new StringBuilder(numProductBits); final StringBuilder productsStr = new StringBuilder(numProductBits);
if (products != null) if (products != null)

View file

@ -605,7 +605,8 @@ public abstract class AbstractTsiProvider extends AbstractNetworkProvider
return new Location(locType, id, latInt, lonInt, place, name); return new Location(locType, id, latInt, lonInt, place, name);
} }
public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures, final boolean equivs) throws IOException public QueryDeparturesResult queryDepartures(final String stationId, final Date time, final int maxDepartures, final boolean equivs)
throws IOException
{ {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }

View file

@ -110,9 +110,10 @@ public class BayernProvider extends AbstractEfaProvider
} }
@Override @Override
public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures, final boolean equivs) throws IOException public QueryDeparturesResult queryDepartures(final String stationId, final Date time, final int maxDepartures, final boolean equivs)
throws IOException
{ {
return queryDeparturesMobile(stationId, maxDepartures, equivs); return queryDeparturesMobile(stationId, time, maxDepartures, equivs);
} }
@Override @Override

View file

@ -62,8 +62,9 @@ public final class BvgProvider extends AbstractHafasProvider
{ {
super(API_BASE + "stboard.bin/dn", API_BASE + "ajax-getstop.bin/dny", API_BASE + "query.bin/dn", 8, UTF_8); super(API_BASE + "stboard.bin/dn", API_BASE + "ajax-getstop.bin/dny", API_BASE + "query.bin/dn", 8, UTF_8);
setStyles(STYLES);
setJsonGetStopsUseWeight(false); setJsonGetStopsUseWeight(false);
setStationBoardCanDoEquivs(false);
setStyles(STYLES);
this.additionalQueryParameter = additionalQueryParameter; this.additionalQueryParameter = additionalQueryParameter;
} }
@ -258,11 +259,13 @@ public final class BvgProvider extends AbstractHafasProvider
private static final String DEPARTURE_URL_PLAN = DEPARTURE_URL + "/Fahrinfo/bin/stboard.bin/dox?boardType=dep&disableEquivs=yes&start=yes"; private static final String DEPARTURE_URL_PLAN = DEPARTURE_URL + "/Fahrinfo/bin/stboard.bin/dox?boardType=dep&disableEquivs=yes&start=yes";
private String departuresQueryPlanUri(final String stationId, final int maxDepartures) private String departuresQueryPlanUri(final String stationId, final Date time, final int maxDepartures)
{ {
final StringBuilder uri = new StringBuilder(); final StringBuilder uri = new StringBuilder();
uri.append(DEPARTURE_URL_PLAN); uri.append(DEPARTURE_URL_PLAN);
uri.append("&input=").append(normalizeStationId(stationId)); uri.append("&input=").append(normalizeStationId(stationId));
if (time != null)
appendDateTimeParameters(uri, time, "date", "time");
uri.append("&maxJourneys=").append(maxDepartures != 0 ? maxDepartures : DEFAULT_MAX_DEPARTURES); uri.append("&maxJourneys=").append(maxDepartures != 0 ? maxDepartures : DEFAULT_MAX_DEPARTURES);
if (additionalQueryParameter != null) if (additionalQueryParameter != null)
uri.append('&').append(additionalQueryParameter); uri.append('&').append(additionalQueryParameter);
@ -308,7 +311,8 @@ public final class BvgProvider extends AbstractHafasProvider
Pattern.CASE_INSENSITIVE); Pattern.CASE_INSENSITIVE);
@Override @Override
public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures, final boolean equivs) throws IOException public QueryDeparturesResult queryDepartures(final String stationId, final Date time, final int maxDepartures, final boolean equivs)
throws IOException
{ {
final ResultHeader header = new ResultHeader(SERVER_PRODUCT); final ResultHeader header = new ResultHeader(SERVER_PRODUCT);
final QueryDeparturesResult result = new QueryDeparturesResult(header); final QueryDeparturesResult result = new QueryDeparturesResult(header);
@ -415,7 +419,7 @@ public final class BvgProvider extends AbstractHafasProvider
else else
{ {
// scrape page // scrape page
final String uri = departuresQueryPlanUri(stationId, maxDepartures); final String uri = departuresQueryPlanUri(stationId, time, maxDepartures);
final CharSequence page = ParserUtils.scrape(uri); final CharSequence page = ParserUtils.scrape(uri);
final Matcher mError = P_DEPARTURES_PLAN_ERRORS.matcher(page); final Matcher mError = P_DEPARTURES_PLAN_ERRORS.matcher(page);

View file

@ -61,6 +61,7 @@ public class InvgProvider extends AbstractHafasProvider
{ {
super(API_BASE + "stboard.exe/dn", API_BASE + "ajax-getstop.exe/dn", API_BASE + "query.exe/dn", 10, UTF_8); super(API_BASE + "stboard.exe/dn", API_BASE + "ajax-getstop.exe/dn", API_BASE + "query.exe/dn", 10, UTF_8);
setStationBoardCanDoEquivs(false);
setStyles(STYLES); setStyles(STYLES);
setExtXmlEndpoint(API_BASE + "extxml.exe"); setExtXmlEndpoint(API_BASE + "extxml.exe");
} }
@ -119,19 +120,6 @@ public class InvgProvider extends AbstractHafasProvider
} }
} }
private String departuresQueryUri(final String stationId, final int maxDepartures)
{
final StringBuilder uri = new StringBuilder(stationBoardEndpoint);
uri.append("?input=").append(normalizeStationId(stationId));
uri.append("&boardType=dep");
uri.append("&productsFilter=").append(allProductsString());
uri.append("&maxJourneys=").append(maxDepartures != 0 ? maxDepartures : DEFAULT_MAX_DEPARTURES);
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 private static final Pattern P_DEPARTURES_HEAD_COARSE = Pattern
.compile( .compile(
".*?" // ".*?" //
@ -163,14 +151,19 @@ public class InvgProvider extends AbstractHafasProvider
, Pattern.DOTALL); , Pattern.DOTALL);
@Override @Override
public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures, final boolean equivs) throws IOException public QueryDeparturesResult queryDepartures(final String stationId, final Date time, final int maxDepartures, final boolean equivs)
throws IOException
{ {
final ResultHeader header = new ResultHeader(SERVER_PRODUCT); final ResultHeader header = new ResultHeader(SERVER_PRODUCT);
final QueryDeparturesResult result = new QueryDeparturesResult(header); final QueryDeparturesResult result = new QueryDeparturesResult(header);
// scrape page // scrape page
final String uri = departuresQueryUri(stationId, maxDepartures); final StringBuilder uri = new StringBuilder(stationBoardEndpoint);
final CharSequence page = ParserUtils.scrape(uri); appendXmlStationBoardParameters(uri, time, stationId, maxDepartures, null);
final CharSequence page = ParserUtils.scrape(uri.toString());
// System.out.println(uri);
// System.out.println(page);
// parse page // parse page
final Matcher mHeadCoarse = P_DEPARTURES_HEAD_COARSE.matcher(page); final Matcher mHeadCoarse = P_DEPARTURES_HEAD_COARSE.matcher(page);

View file

@ -89,6 +89,8 @@ public interface NetworkProvider
* *
* @param stationId * @param stationId
* id of the station * id of the station
* @param time
* desired time for departing, optional
* @param maxDepartures * @param maxDepartures
* maximum number of departures to get or {@code 0} * maximum number of departures to get or {@code 0}
* @param equivs * @param equivs
@ -96,7 +98,7 @@ public interface NetworkProvider
* @return result object containing the departures * @return result object containing the departures
* @throws IOException * @throws IOException
*/ */
QueryDeparturesResult queryDepartures(String stationId, int maxDepartures, boolean equivs) throws IOException; QueryDeparturesResult queryDepartures(String stationId, Date time, int maxDepartures, boolean equivs) throws IOException;
/** /**
* Meant for auto-completion of location names, like in an {@link android.widget.AutoCompleteTextView} * Meant for auto-completion of location names, like in an {@link android.widget.AutoCompleteTextView}

View file

@ -59,6 +59,7 @@ public class SeptaProvider extends AbstractHafasProvider
{ {
super(API_BASE + "stboard.exe/en", API_BASE + "ajax-getstop.exe/dny", API_BASE + "query.exe/en", 4); super(API_BASE + "stboard.exe/en", API_BASE + "ajax-getstop.exe/dny", API_BASE + "query.exe/en", 4);
setStationBoardCanDoEquivs(false);
setTimeZone("EST"); setTimeZone("EST");
} }
@ -128,24 +129,21 @@ public class SeptaProvider extends AbstractHafasProvider
} }
} }
private String departuresQueryUri(final String stationId, final int maxDepartures) @Override
protected void appendDateTimeParameters(final StringBuilder uri, final Date time, final String dateParamName, final String timeParamName)
{ {
final Calendar now = new GregorianCalendar(timeZone); final Calendar c = new GregorianCalendar(timeZone);
c.setTime(time);
final StringBuilder uri = new StringBuilder(stationBoardEndpoint); final int year = c.get(Calendar.YEAR);
uri.append("?input=").append(normalizeStationId(stationId)); final int month = c.get(Calendar.MONTH) + 1;
uri.append("&boardType=dep"); final int day = c.get(Calendar.DAY_OF_MONTH);
uri.append("&time="); final int hour = c.get(Calendar.HOUR);
uri.append(ParserUtils.urlEncode(String.format(Locale.ENGLISH, "%02d:%02d %s", now.get(Calendar.HOUR), now.get(Calendar.MINUTE), final int minute = c.get(Calendar.MINUTE);
now.get(Calendar.AM_PM) == Calendar.AM ? "am" : "pm"))); final String amPm = c.get(Calendar.AM_PM) == Calendar.AM ? "am" : "pm";
uri.append("&date="); uri.append('&').append(dateParamName).append('=');
uri.append(String.format(Locale.ENGLISH, "%02d%02d%04d", now.get(Calendar.MONTH) + 1, now.get(Calendar.DAY_OF_MONTH), now.get(Calendar.YEAR))); uri.append(ParserUtils.urlEncode(String.format(Locale.ENGLISH, "%02d%02d%04d", month, day, year)));
uri.append("&productsFilter=").append(allProductsString()); uri.append('&').append(timeParamName).append('=');
uri.append("&maxJourneys=").append(maxDepartures != 0 ? maxDepartures : DEFAULT_MAX_DEPARTURES); uri.append(ParserUtils.urlEncode(String.format(Locale.ENGLISH, "%02d:%02d %s", hour, minute, amPm)));
uri.append("&disableEquivs=yes"); // don't use nearby stations
uri.append("&start=yes");
return uri.toString();
} }
private static final Pattern P_DEPARTURES_PAGE_COARSE = Pattern private static final Pattern P_DEPARTURES_PAGE_COARSE = Pattern
@ -175,14 +173,19 @@ public class SeptaProvider extends AbstractHafasProvider
, Pattern.DOTALL); , Pattern.DOTALL);
@Override @Override
public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures, final boolean equivs) throws IOException public QueryDeparturesResult queryDepartures(final String stationId, final Date time, final int maxDepartures, final boolean equivs)
throws IOException
{ {
final ResultHeader header = new ResultHeader(SERVER_PRODUCT); final ResultHeader header = new ResultHeader(SERVER_PRODUCT);
final QueryDeparturesResult result = new QueryDeparturesResult(header); final QueryDeparturesResult result = new QueryDeparturesResult(header);
// scrape page // scrape page
final String uri = departuresQueryUri(stationId, maxDepartures); final StringBuilder uri = new StringBuilder(stationBoardEndpoint);
final CharSequence page = ParserUtils.scrape(uri); appendXmlStationBoardParameters(uri, time, stationId, maxDepartures, null);
final CharSequence page = ParserUtils.scrape(uri.toString());
// System.out.println(uri);
// System.out.println(page);
// parse page // parse page
final Matcher mPageCoarse = P_DEPARTURES_PAGE_COARSE.matcher(page); final Matcher mPageCoarse = P_DEPARTURES_PAGE_COARSE.matcher(page);

View file

@ -21,6 +21,7 @@ import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Collections; import java.util.Collections;
import java.util.Date;
import java.util.GregorianCalendar; import java.util.GregorianCalendar;
import java.util.List; import java.util.List;
import java.util.regex.Matcher; import java.util.regex.Matcher;
@ -52,6 +53,8 @@ public class ShProvider extends AbstractHafasProvider
public ShProvider() public ShProvider()
{ {
super(API_BASE + "stboard.exe/dn", API_BASE + "ajax-getstop.exe/dn", API_BASE + "query.exe/dn", 10, UTF_8); super(API_BASE + "stboard.exe/dn", API_BASE + "ajax-getstop.exe/dn", API_BASE + "query.exe/dn", 10, UTF_8);
setStationBoardCanDoEquivs(false);
} }
public NetworkId id() public NetworkId id()
@ -164,19 +167,6 @@ public class ShProvider extends AbstractHafasProvider
} }
} }
private String departuresQueryUri(final String stationId, final int maxDepartures)
{
final StringBuilder uri = new StringBuilder(stationBoardEndpoint);
uri.append("?input=").append(normalizeStationId(stationId));
uri.append("&boardType=dep");
uri.append("&productsFilter=").append(allProductsString());
uri.append("&maxJourneys=").append(maxDepartures != 0 ? maxDepartures : DEFAULT_MAX_DEPARTURES);
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(".*?" // private static final Pattern P_DEPARTURES_HEAD_COARSE = Pattern.compile(".*?" //
+ "(?:" // + "(?:" //
+ "Bhf\\./Haltest\\.:</span>\\n<span class=\"output\">([^<]*)<.*?" // location + "Bhf\\./Haltest\\.:</span>\\n<span class=\"output\">([^<]*)<.*?" // location
@ -199,14 +189,19 @@ public class ShProvider extends AbstractHafasProvider
, Pattern.DOTALL); , Pattern.DOTALL);
@Override @Override
public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures, final boolean equivs) throws IOException public QueryDeparturesResult queryDepartures(final String stationId, final Date time, final int maxDepartures, final boolean equivs)
throws IOException
{ {
final ResultHeader header = new ResultHeader(SERVER_PRODUCT); final ResultHeader header = new ResultHeader(SERVER_PRODUCT);
final QueryDeparturesResult result = new QueryDeparturesResult(header); final QueryDeparturesResult result = new QueryDeparturesResult(header);
// scrape page // scrape page
final String uri = departuresQueryUri(stationId, maxDepartures); final StringBuilder uri = new StringBuilder(stationBoardEndpoint);
final CharSequence page = ParserUtils.scrape(uri); appendXmlStationBoardParameters(uri, time, stationId, maxDepartures, null);
final CharSequence page = ParserUtils.scrape(uri.toString());
// System.out.println(uri);
// System.out.println(page);
// parse page // parse page
final Matcher mHeadCoarse = P_DEPARTURES_HEAD_COARSE.matcher(page); final Matcher mHeadCoarse = P_DEPARTURES_HEAD_COARSE.matcher(page);

View file

@ -68,6 +68,11 @@ public abstract class AbstractProviderLiveTest
System.out.println(result); System.out.println(result);
} }
protected final QueryDeparturesResult queryDepartures(final String stationId, boolean equivs) throws IOException
{
return provider.queryDepartures(stationId, new Date(), 0, equivs);
}
protected final QueryTripsResult queryTrips(final Location from, final Location via, final Location to, final Date date, final boolean dep, protected final QueryTripsResult queryTrips(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility) throws IOException final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility) throws IOException
{ {

View file

@ -62,7 +62,7 @@ public class AtcProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("740", 0, false); final QueryDeparturesResult result = queryDepartures("740", false);
print(result); print(result);
} }

View file

@ -64,7 +64,7 @@ public class AvvProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("100", 0, false); final QueryDeparturesResult result = queryDepartures("100", false);
print(result); print(result);
} }

View file

@ -63,7 +63,7 @@ public class BahnProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("692991", 0, false); final QueryDeparturesResult result = queryDepartures("692991", false);
print(result); print(result);
} }
@ -71,7 +71,7 @@ public class BahnProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult resultLive = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult resultLive = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, resultLive.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, resultLive.status);
} }

View file

@ -63,13 +63,13 @@ public class BayernProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult munichOstbahnhof = provider.queryDepartures("80000793", 0, false); final QueryDeparturesResult munichOstbahnhof = queryDepartures("80000793", false);
print(munichOstbahnhof); print(munichOstbahnhof);
final QueryDeparturesResult munichHauptbahnhof = provider.queryDepartures("80000689", 0, false); final QueryDeparturesResult munichHauptbahnhof = queryDepartures("80000689", false);
print(munichHauptbahnhof); print(munichHauptbahnhof);
final QueryDeparturesResult nurembergHauptbahnhof = provider.queryDepartures("80001020", 0, false); final QueryDeparturesResult nurembergHauptbahnhof = queryDepartures("80001020", false);
print(nurembergHauptbahnhof); print(nurembergHauptbahnhof);
} }

View file

@ -66,7 +66,7 @@ public class BsvagProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("26000256", 0, false); final QueryDeparturesResult result = queryDepartures("26000256", false);
print(result); print(result);
} }

View file

@ -64,7 +64,7 @@ public class BvbProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("10000", 0, false); final QueryDeparturesResult result = queryDepartures("10000", false);
print(result); print(result);
} }

View file

@ -71,11 +71,11 @@ public class BvgProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult resultLive = provider.queryDepartures("309557", 0, false); final QueryDeparturesResult resultLive = queryDepartures("309557", false);
assertEquals(QueryDeparturesResult.Status.OK, resultLive.status); assertEquals(QueryDeparturesResult.Status.OK, resultLive.status);
print(resultLive); print(resultLive);
final QueryDeparturesResult resultPlan = provider.queryDepartures("9100003", 0, false); final QueryDeparturesResult resultPlan = queryDepartures("9100003", false);
assertEquals(QueryDeparturesResult.Status.OK, resultPlan.status); assertEquals(QueryDeparturesResult.Status.OK, resultPlan.status);
print(resultPlan); print(resultPlan);
} }
@ -83,10 +83,10 @@ public class BvgProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult resultLive = provider.queryDepartures("111111", 0, false); final QueryDeparturesResult resultLive = queryDepartures("111111", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, resultLive.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, resultLive.status);
final QueryDeparturesResult resultPlan = provider.queryDepartures("2449475", 0, false); final QueryDeparturesResult resultPlan = queryDepartures("2449475", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, resultPlan.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, resultPlan.status);
} }

View file

@ -64,7 +64,7 @@ public class DingProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("90001611", 0, false); final QueryDeparturesResult result = queryDepartures("90001611", false);
print(result); print(result);
} }

View file

@ -63,7 +63,7 @@ public class DsbProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("8600858", 0, false); final QueryDeparturesResult result = queryDepartures("8600858", false);
print(result); print(result);
} }
@ -71,7 +71,7 @@ public class DsbProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -63,7 +63,7 @@ public class EireannProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("8013500", 0, false); final QueryDeparturesResult result = queryDepartures("8013500", false);
print(result); print(result);
} }
@ -71,7 +71,7 @@ public class EireannProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -74,7 +74,7 @@ public class GvhProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("25000031", 0, false); final QueryDeparturesResult result = queryDepartures("25000031", false);
print(result); print(result);
} }

View file

@ -63,7 +63,7 @@ public class InvgProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("80301", 0, false); final QueryDeparturesResult result = queryDepartures("80301", false);
print(result); print(result);
} }
@ -71,7 +71,7 @@ public class InvgProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -64,7 +64,7 @@ public class IvbProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("60401187", 0, false); final QueryDeparturesResult result = queryDepartures("60401187", false);
print(result); print(result);
} }

View file

@ -63,20 +63,20 @@ public class JetProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result1 = provider.queryDepartures("568", 0, false); final QueryDeparturesResult result1 = queryDepartures("568", false);
print(result1); print(result1);
final QueryDeparturesResult result2 = provider.queryDepartures("1055", 0, false); final QueryDeparturesResult result2 = queryDepartures("1055", false);
print(result2); print(result2);
final QueryDeparturesResult result3 = provider.queryDepartures("90010", 0, false); final QueryDeparturesResult result3 = queryDepartures("90010", false);
print(result3); print(result3);
} }
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -64,7 +64,7 @@ public class KvvProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("7000090", 0, false); final QueryDeparturesResult result = queryDepartures("7000090", false);
print(result); print(result);
} }

View file

@ -64,7 +64,7 @@ public class LinzProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("60501720", 0, false); final QueryDeparturesResult result = queryDepartures("60501720", false);
print(result); print(result);
} }

View file

@ -63,7 +63,7 @@ public class LuProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("200501001", 0, false); final QueryDeparturesResult result = queryDepartures("200501001", false);
print(result); print(result);
} }
@ -71,7 +71,7 @@ public class LuProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -64,7 +64,7 @@ public class MetProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("10001167", 0, false); final QueryDeparturesResult result = queryDepartures("10001167", false);
print(result); print(result);
} }

View file

@ -66,7 +66,7 @@ public class MvgProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("3", 0, false); final QueryDeparturesResult result = queryDepartures("3", false);
print(result); print(result);
} }

View file

@ -65,7 +65,7 @@ public class MvvProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("2", 0, false); final QueryDeparturesResult result = queryDepartures("2", false);
assertEquals(QueryDeparturesResult.Status.OK, result.status); assertEquals(QueryDeparturesResult.Status.OK, result.status);
print(result); print(result);
@ -74,7 +74,7 @@ public class MvvProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -64,7 +64,7 @@ public class NaldoProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("53019174", 0, false); final QueryDeparturesResult result = queryDepartures("53019174", false);
print(result); print(result);
} }

View file

@ -66,7 +66,7 @@ public class NasaProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("13000", 0, false); final QueryDeparturesResult result = queryDepartures("13000", false);
print(result); print(result);
} }
@ -74,7 +74,7 @@ public class NasaProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -63,7 +63,7 @@ public class NriProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("6735", 0, false); final QueryDeparturesResult result = queryDepartures("6735", false);
print(result); print(result);
} }
@ -71,7 +71,7 @@ public class NriProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -62,7 +62,7 @@ public class NsProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("8800004", 0, false); final QueryDeparturesResult result = queryDepartures("8800004", false);
print(result); print(result);
} }
@ -70,7 +70,7 @@ public class NsProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -66,7 +66,7 @@ public class NvbwProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("6900001", 0, false); final QueryDeparturesResult result = queryDepartures("6900001", false);
print(result); print(result);
} }

View file

@ -73,23 +73,23 @@ public class NvvProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("3000408", 0, false); final QueryDeparturesResult result = queryDepartures("3000408", false);
print(result); print(result);
final QueryDeparturesResult result2 = provider.queryDepartures("3000010", 0, false); final QueryDeparturesResult result2 = queryDepartures("3000010", false);
print(result2); print(result2);
final QueryDeparturesResult result3 = provider.queryDepartures("3015989", 0, false); final QueryDeparturesResult result3 = queryDepartures("3015989", false);
print(result3); print(result3);
final QueryDeparturesResult result4 = provider.queryDepartures("3000139", 0, false); final QueryDeparturesResult result4 = queryDepartures("3000139", false);
print(result4); print(result4);
} }
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -66,7 +66,7 @@ public class OebbProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("902006", 0, false); final QueryDeparturesResult result = queryDepartures("902006", false);
print(result); print(result);
assertEquals(QueryDeparturesResult.Status.OK, result.status); assertEquals(QueryDeparturesResult.Status.OK, result.status);
@ -76,7 +76,7 @@ public class OebbProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -63,7 +63,7 @@ public class PlProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("5100065", 0, false); final QueryDeparturesResult result = queryDepartures("5100065", false);
print(result); print(result);
} }
@ -71,7 +71,7 @@ public class PlProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -65,7 +65,7 @@ public class RsagProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("8010304", 0, false); final QueryDeparturesResult result = queryDepartures("8010304", false);
print(result); print(result);
} }
@ -73,7 +73,7 @@ public class RsagProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -63,7 +63,7 @@ public class RtProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("8588344", 0, false); final QueryDeparturesResult result = queryDepartures("8588344", false);
print(result); print(result);
} }
@ -71,7 +71,7 @@ public class RtProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -63,7 +63,7 @@ public class SbbProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("8500010", 0, false); final QueryDeparturesResult result = queryDepartures("8500010", false);
print(result); print(result);
} }
@ -71,7 +71,7 @@ public class SbbProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -63,7 +63,7 @@ public class SeProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("7414867", 0, false); final QueryDeparturesResult result = queryDepartures("7414867", false);
print(result); print(result);
} }
@ -71,7 +71,7 @@ public class SeProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -63,7 +63,7 @@ public class SeptaProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("2090227", 0, false); final QueryDeparturesResult result = queryDepartures("2090227", false);
print(result); print(result);
} }
@ -71,7 +71,7 @@ public class SeptaProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -64,7 +64,7 @@ public class SfProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("10001017", 0, false); final QueryDeparturesResult result = queryDepartures("10001017", false);
print(result); print(result);
} }

View file

@ -55,7 +55,7 @@ public class ShProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("8002547", 0, false); final QueryDeparturesResult result = queryDepartures("8002547", false);
print(result); print(result);
} }
@ -63,7 +63,7 @@ public class ShProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -63,7 +63,7 @@ public class SncbProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("8813003", 0, false); final QueryDeparturesResult result = queryDepartures("8813003", false);
print(result); print(result);
} }
@ -71,7 +71,7 @@ public class SncbProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -63,7 +63,7 @@ public class StockholmProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("301109600", 0, false); final QueryDeparturesResult result = queryDepartures("301109600", false);
print(result); print(result);
} }
@ -71,7 +71,7 @@ public class StockholmProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -66,7 +66,7 @@ public class StvProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("63203040", 0, false); final QueryDeparturesResult result = queryDepartures("63203040", false);
print(result); print(result);
} }

View file

@ -66,7 +66,7 @@ public class SvvProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("60650002", 0, false); final QueryDeparturesResult result = queryDepartures("60650002", false);
print(result); print(result);
} }

View file

@ -64,7 +64,7 @@ public class SydneyProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("10101101", 0, false); final QueryDeparturesResult result = queryDepartures("10101101", false);
print(result); print(result);
} }

View file

@ -64,7 +64,7 @@ public class TfiProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("51013670", 0, false); final QueryDeparturesResult result = queryDepartures("51013670", false);
print(result); print(result);
} }

View file

@ -64,7 +64,7 @@ public class TflProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("1000086", 0, false); final QueryDeparturesResult result = queryDepartures("1000086", false);
print(result); print(result);
} }

View file

@ -64,7 +64,7 @@ public class TlemProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("1001003", 0, false); final QueryDeparturesResult result = queryDepartures("1001003", false);
print(result); print(result);
} }

View file

@ -64,7 +64,7 @@ public class TlswProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("247616", 0, false); final QueryDeparturesResult result = queryDepartures("247616", false);
print(result); print(result);
} }

View file

@ -64,7 +64,7 @@ public class TlwmProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("1001003", 0, false); final QueryDeparturesResult result = queryDepartures("1001003", false);
print(result); print(result);
} }

View file

@ -66,7 +66,7 @@ public class VagfrProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("6930112", 0, false); final QueryDeparturesResult result = queryDepartures("6930112", false);
print(result); print(result);
} }

View file

@ -71,7 +71,7 @@ public class VbbProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("9007102", 0, false); final QueryDeparturesResult result = queryDepartures("9007102", false);
print(result); print(result);
} }
@ -79,10 +79,10 @@ public class VbbProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult resultLive = provider.queryDepartures("111111", 0, false); final QueryDeparturesResult resultLive = queryDepartures("111111", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, resultLive.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, resultLive.status);
final QueryDeparturesResult resultPlan = provider.queryDepartures("2449475", 0, false); final QueryDeparturesResult resultPlan = queryDepartures("2449475", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, resultPlan.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, resultPlan.status);
} }

View file

@ -64,7 +64,7 @@ public class VblProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("717", 0, false); final QueryDeparturesResult result = queryDepartures("717", false);
print(result); print(result);
} }

View file

@ -63,7 +63,7 @@ public class VbnProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("8000110", 0, false); final QueryDeparturesResult result = queryDepartures("8000110", false);
print(result); print(result);
} }
@ -71,7 +71,7 @@ public class VbnProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -61,7 +61,7 @@ public class VgnProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("3000510", 0, false); final QueryDeparturesResult result = queryDepartures("3000510", false);
print(result); print(result);
} }

View file

@ -71,7 +71,7 @@ public class VgsProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("8000244", 0, false); final QueryDeparturesResult result = queryDepartures("8000244", false);
print(result); print(result);
} }
@ -79,7 +79,7 @@ public class VgsProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -64,7 +64,7 @@ public class VmobilProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("60001296", 0, false); final QueryDeparturesResult result = queryDepartures("60001296", false);
print(result); print(result);
} }

View file

@ -64,7 +64,7 @@ public class VmsProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("36030062", 0, false); final QueryDeparturesResult result = queryDepartures("36030062", false);
print(result); print(result);
} }

View file

@ -64,7 +64,7 @@ public class VmvProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("80001834", 0, false); final QueryDeparturesResult result = queryDepartures("80001834", false);
print(result); print(result);
} }

View file

@ -66,7 +66,7 @@ public class VorProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("60203090", 0, false); final QueryDeparturesResult result = queryDepartures("60203090", false);
print(result); print(result);
} }

View file

@ -64,7 +64,7 @@ public class VrnProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("6032236", 0, false); final QueryDeparturesResult result = queryDepartures("6032236", false);
print(result); print(result);
} }

View file

@ -70,23 +70,23 @@ public class VrrProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("1007258", 0, false); final QueryDeparturesResult result = queryDepartures("1007258", false);
print(result); print(result);
final QueryDeparturesResult result2 = provider.queryDepartures("20019904", 0, false); final QueryDeparturesResult result2 = queryDepartures("20019904", false);
print(result2); print(result2);
// Bonn // Bonn
provider.queryDepartures("22000687", 0, false); // Hauptbahnhof queryDepartures("22000687", false); // Hauptbahnhof
provider.queryDepartures("22001374", 0, false); // Suedwache queryDepartures("22001374", false); // Suedwache
} }
@Test @Test
public void queryManyDeparturesWithEquivs() throws Exception public void queryManyDeparturesWithEquivs() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("20018235", 200, true); final QueryDeparturesResult result = queryDepartures("20018235", true);
print(result); print(result);
} }

View file

@ -64,7 +64,7 @@ public class VrtProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("17001301", 0, false); final QueryDeparturesResult result = queryDepartures("17001301", false);
print(result); print(result);
} }

View file

@ -63,7 +63,7 @@ public class VsnProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("8000128", 0, false); final QueryDeparturesResult result = queryDepartures("8000128", false);
print(result); print(result);
} }
@ -71,7 +71,7 @@ public class VsnProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }

View file

@ -64,7 +64,7 @@ public class VvmProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("3000510", 0, false); final QueryDeparturesResult result = queryDepartures("3000510", false);
print(result); print(result);
} }

View file

@ -66,7 +66,7 @@ public class VvoProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("100", 0, false); final QueryDeparturesResult result = queryDepartures("100", false);
print(result); print(result);
} }

View file

@ -64,7 +64,7 @@ public class VvsProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("6118", 0, false); final QueryDeparturesResult result = queryDepartures("6118", false);
print(result); print(result);
} }

View file

@ -64,7 +64,7 @@ public class VvtProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("60101187", 0, false); final QueryDeparturesResult result = queryDepartures("60101187", false);
print(result); print(result);
} }

View file

@ -64,7 +64,7 @@ public class VvvProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("80007271", 0, false); final QueryDeparturesResult result = queryDepartures("80007271", false);
print(result); print(result);
} }

View file

@ -66,7 +66,7 @@ public class WienProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("60203090", 0, false); final QueryDeparturesResult result = queryDepartures("60203090", false);
print(result); print(result);
} }

View file

@ -63,7 +63,7 @@ public class ZvvProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDepartures() throws Exception public void queryDepartures() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("8503000", 0, false); final QueryDeparturesResult result = queryDepartures("8503000", false);
print(result); print(result);
} }
@ -71,7 +71,7 @@ public class ZvvProviderLiveTest extends AbstractProviderLiveTest
@Test @Test
public void queryDeparturesInvalidStation() throws Exception public void queryDeparturesInvalidStation() throws Exception
{ {
final QueryDeparturesResult result = provider.queryDepartures("999999", 0, false); final QueryDeparturesResult result = queryDepartures("999999", false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
} }