use calendar for query parameters

git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@538 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
andreas.schildbach@gmail.com 2011-03-28 23:03:51 +00:00
parent 5ce40b8a07
commit 952be53f5f
9 changed files with 58 additions and 80 deletions

View file

@ -19,8 +19,6 @@ package de.schildbach.pte;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
@ -228,14 +226,22 @@ public abstract class AbstractHafasProvider implements NetworkProvider
to = autocompletes.get(0); to = autocompletes.get(0);
} }
final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyyMMdd"); final Calendar c = new GregorianCalendar(timeZone());
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm"); c.setTime(date);
final String request = "<ConReq>" // final String request = "<ConReq>" //
+ "<Start>" + location(from) + "<Prod bike=\"0\" couchette=\"0\" direct=\"0\" sleeper=\"0\"/></Start>" // + "<Start>"
+ location(from)
+ "<Prod bike=\"0\" couchette=\"0\" direct=\"0\" sleeper=\"0\"/></Start>" //
+ (via != null ? "<Via>" + location(via) + "</Via>" : "") // + (via != null ? "<Via>" + location(via) + "</Via>" : "") //
+ "<Dest>" + location(to) + "</Dest>" // + "<Dest>"
+ "<ReqT a=\"" + (dep ? 0 : 1) + "\" date=\"" + DATE_FORMAT.format(date) + "\" time=\"" + TIME_FORMAT.format(date) + "\"/>" // + location(to)
+ "</Dest>" //
+ "<ReqT a=\"" + (dep ? 0 : 1)
+ "\" date=\""
+ String.format("%04d.%02d.%02d", c.get(Calendar.YEAR), c.get(Calendar.MONTH) + 1, c.get(Calendar.DAY_OF_MONTH))
+ "\" time=\""
+ String.format("%02d:%02d", c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE)) + "\"/>" //
+ "<RFlags b=\"0\" chExtension=\"0\" f=\"4\" sMode=\"N\"/>" // + "<RFlags b=\"0\" chExtension=\"0\" f=\"4\" sMode=\"N\"/>" //
+ "</ConReq>"; + "</ConReq>";
@ -855,11 +861,13 @@ public abstract class AbstractHafasProvider implements NetworkProvider
return 'I'; return 'I';
if (ucType.equals("EN")) // EuroNight if (ucType.equals("EN")) // EuroNight
return 'I'; return 'I';
if (ucType.equals("EIC")) // Ekspres InterCity, Polen
return 'I';
if (ucType.equals("ICE")) // InterCityExpress if (ucType.equals("ICE")) // InterCityExpress
return 'I'; return 'I';
if (ucType.equals("IC")) // InterCity if (ucType.equals("IC")) // InterCity
return 'I'; return 'I';
if (ucType.equals("EN")) // EuroNight if (ucType.equals("ICT")) // InterCity
return 'I'; return 'I';
if (ucType.equals("CNL")) // CityNightLine if (ucType.equals("CNL")) // CityNightLine
return 'I'; return 'I';
@ -890,7 +898,7 @@ public abstract class AbstractHafasProvider implements NetworkProvider
if (ucType.equals("IRX")) // IC if (ucType.equals("IRX")) // IC
return 'I'; return 'I';
// Regional Germany // Regional
if (ucType.equals("ZUG")) // Generic Train if (ucType.equals("ZUG")) // Generic Train
return 'R'; return 'R';
if (ucType.equals("R")) // Generic Regional Train if (ucType.equals("R")) // Generic Regional Train
@ -913,11 +921,9 @@ public abstract class AbstractHafasProvider implements NetworkProvider
return 'R'; return 'R';
if (ucType.equals("REX")) // RegionalExpress, Österreich if (ucType.equals("REX")) // RegionalExpress, Österreich
return 'R'; return 'R';
if (ucType.equals("OS")) // Osobný vlak, Slovakia oder Osobní vlak, Czech Republic
// Regional Poland
if (ucType.equals("OS")) // Chop-Cierna nas Tisou
return 'R'; return 'R';
if (ucType.equals("SP")) // Polen if (ucType.equals("SP")) // Spěšný vlak, Czech Republic
return 'R'; return 'R';
// Suburban Trains // Suburban Trains

View file

@ -18,8 +18,6 @@
package de.schildbach.pte; package de.schildbach.pte;
import java.io.IOException; import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Collections; import java.util.Collections;
@ -128,8 +126,9 @@ public final class BahnProvider extends AbstractHafasProvider
private String connectionsQueryUri(final Location from, final Location via, final Location to, final Date date, final boolean dep) private String connectionsQueryUri(final Location from, final Location via, final Location to, final Date date, final boolean dep)
{ {
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy"); final Calendar c = new GregorianCalendar(timeZone());
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm"); c.setTime(date);
final StringBuilder uri = new StringBuilder(); final StringBuilder uri = new StringBuilder();
uri.append(API_BASE).append("query.exe/dox"); uri.append(API_BASE).append("query.exe/dox");
@ -139,8 +138,9 @@ public final class BahnProvider extends AbstractHafasProvider
uri.append("&REQ0JourneyStops1.0ID=").append(ParserUtils.urlEncode(locationId(via))); uri.append("&REQ0JourneyStops1.0ID=").append(ParserUtils.urlEncode(locationId(via)));
uri.append("&REQ0JourneyStopsZ0ID=").append(ParserUtils.urlEncode(locationId(to))); uri.append("&REQ0JourneyStopsZ0ID=").append(ParserUtils.urlEncode(locationId(to)));
uri.append("&REQ0HafasSearchForw=").append(dep ? "1" : "0"); uri.append("&REQ0HafasSearchForw=").append(dep ? "1" : "0");
uri.append("&REQ0JourneyDate=").append(ParserUtils.urlEncode(DATE_FORMAT.format(date))); uri.append("&REQ0JourneyDate=").append(
uri.append("&REQ0JourneyTime=").append(ParserUtils.urlEncode(TIME_FORMAT.format(date))); String.format("%02d.%02d.%02d", c.get(Calendar.DAY_OF_MONTH), c.get(Calendar.MONTH) + 1, c.get(Calendar.YEAR) - 2000));
uri.append("&REQ0JourneyTime=").append(String.format("%02d:%02d", c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE)));
uri.append("&REQ0Tariff_Class=2"); uri.append("&REQ0Tariff_Class=2");
uri.append("&REQ0Tariff_TravellerAge.1=35"); uri.append("&REQ0Tariff_TravellerAge.1=35");
uri.append("&REQ0Tariff_TravellerReductionClass.1=0"); uri.append("&REQ0Tariff_TravellerReductionClass.1=0");

View file

@ -18,8 +18,6 @@
package de.schildbach.pte; package de.schildbach.pte;
import java.io.IOException; import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
@ -206,8 +204,9 @@ public final class BvgProvider extends AbstractHafasProvider
private String connectionsQueryUri(final Location from, final Location via, final Location to, final Date date, final boolean dep, private String connectionsQueryUri(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final String products) final String products)
{ {
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy"); final Calendar c = new GregorianCalendar(timeZone());
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm"); c.setTime(date);
final StringBuilder uri = new StringBuilder(); final StringBuilder uri = new StringBuilder();
uri.append("http://mobil.bvg.de/Fahrinfo/bin/query.bin/dox"); uri.append("http://mobil.bvg.de/Fahrinfo/bin/query.bin/dox");
@ -219,8 +218,9 @@ public final class BvgProvider extends AbstractHafasProvider
appendLocationBvg(uri, via, "1", null); appendLocationBvg(uri, via, "1", null);
uri.append("&REQ0HafasSearchForw=").append(dep ? "1" : "0"); uri.append("&REQ0HafasSearchForw=").append(dep ? "1" : "0");
uri.append("&REQ0JourneyDate=").append(ParserUtils.urlEncode(DATE_FORMAT.format(date))); uri.append("&REQ0JourneyDate=").append(
uri.append("&REQ0JourneyTime=").append(ParserUtils.urlEncode(TIME_FORMAT.format(date))); String.format("%02d.%02d.%02d", c.get(Calendar.DAY_OF_MONTH), c.get(Calendar.MONTH) + 1, c.get(Calendar.YEAR) - 2000));
uri.append("&REQ0JourneyTime=").append(String.format("%02d:%02d", c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE)));
for (final char p : products.toCharArray()) for (final char p : products.toCharArray())
{ {

View file

@ -18,12 +18,9 @@
package de.schildbach.pte; package de.schildbach.pte;
import java.io.IOException; import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
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.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -136,16 +133,11 @@ public class InvgProvider extends AbstractHafasProvider
private String departuresQueryUri(final String stationId, final int maxDepartures) private String departuresQueryUri(final String stationId, final int maxDepartures)
{ {
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy");
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
final Date now = new Date();
final StringBuilder uri = new StringBuilder(); final StringBuilder uri = new StringBuilder();
uri.append(API_BASE).append("stboard.exe/dn"); uri.append(API_BASE).append("stboard.exe/dn");
uri.append("?input=").append(stationId); uri.append("?input=").append(stationId);
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&time=").append(TIME_FORMAT.format(now));
uri.append("&date=").append(DATE_FORMAT.format(now));
uri.append("&productsFilter=1111111111"); uri.append("&productsFilter=1111111111");
if (maxDepartures != 0) if (maxDepartures != 0)
uri.append("&maxJourneys=").append(maxDepartures); uri.append("&maxJourneys=").append(maxDepartures);

View file

@ -18,8 +18,6 @@
package de.schildbach.pte; package de.schildbach.pte;
import java.io.IOException; import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Collections; import java.util.Collections;
@ -86,16 +84,11 @@ public class NasaProvider extends AbstractHafasProvider
private String departuresQueryUri(final String stationId, final int maxDepartures) private String departuresQueryUri(final String stationId, final int maxDepartures)
{ {
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy");
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
final Date now = new Date();
final StringBuilder uri = new StringBuilder(); final StringBuilder uri = new StringBuilder();
uri.append(API_BASE).append("stboard.exe/dn"); uri.append(API_BASE).append("stboard.exe/dn");
uri.append("?input=").append(stationId); uri.append("?input=").append(stationId);
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&time=").append(TIME_FORMAT.format(now));
uri.append("&date=").append(DATE_FORMAT.format(now));
uri.append("&productsFilter=11111111"); uri.append("&productsFilter=11111111");
if (maxDepartures != 0) if (maxDepartures != 0)
uri.append("&maxJourneys=").append(maxDepartures); uri.append("&maxJourneys=").append(maxDepartures);

View file

@ -18,8 +18,6 @@
package de.schildbach.pte; package de.schildbach.pte;
import java.io.IOException; import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
@ -164,8 +162,9 @@ public class OebbProvider extends AbstractHafasProvider
private String connectionsQuery(final Location from, final Location via, final Location to, final Date date, final boolean dep, private String connectionsQuery(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final String products, final WalkSpeed walkSpeed) throws IOException final String products, final WalkSpeed walkSpeed) throws IOException
{ {
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy"); final Calendar c = new GregorianCalendar(timeZone());
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm"); c.setTime(date);
final StringBuilder uri = new StringBuilder(); final StringBuilder uri = new StringBuilder();
uri.append("queryPageDisplayed=yes"); uri.append("queryPageDisplayed=yes");
@ -174,9 +173,10 @@ public class OebbProvider extends AbstractHafasProvider
if (via != null) if (via != null)
uri.append("&REQ0JourneyStops1.0ID=").append(ParserUtils.urlEncode(locationId(via))); uri.append("&REQ0JourneyStops1.0ID=").append(ParserUtils.urlEncode(locationId(via)));
uri.append("&REQ0JourneyStopsZ0ID=").append(ParserUtils.urlEncode(locationId(to))); uri.append("&REQ0JourneyStopsZ0ID=").append(ParserUtils.urlEncode(locationId(to)));
uri.append("&REQ0JourneyDate=").append(ParserUtils.urlEncode(DATE_FORMAT.format(date))); uri.append("&REQ0JourneyDate=").append(
String.format("%02d.%02d.%02d", c.get(Calendar.DAY_OF_MONTH), c.get(Calendar.MONTH) + 1, c.get(Calendar.YEAR) - 2000));
uri.append("&wDayExt0=").append(ParserUtils.urlEncode("Mo|Di|Mi|Do|Fr|Sa|So")); uri.append("&wDayExt0=").append(ParserUtils.urlEncode("Mo|Di|Mi|Do|Fr|Sa|So"));
uri.append("&REQ0JourneyTime=").append(ParserUtils.urlEncode(TIME_FORMAT.format(date))); uri.append("&REQ0JourneyTime=").append(String.format("%02d:%02d", c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE)));
uri.append("&REQ0HafasSearchForw=").append(dep ? "1" : "0"); uri.append("&REQ0HafasSearchForw=").append(dep ? "1" : "0");
uri.append("&existHafasDemo3=yes"); uri.append("&existHafasDemo3=yes");
uri.append("&REQ0JourneyDep_Foot_speed=").append(WALKSPEED_MAP.get(walkSpeed)); uri.append("&REQ0JourneyDep_Foot_speed=").append(WALKSPEED_MAP.get(walkSpeed));
@ -512,21 +512,16 @@ public class OebbProvider extends AbstractHafasProvider
private String departuresQueryUri(final String stationId, final int maxDepartures) private String departuresQueryUri(final String stationId, final int maxDepartures)
{ {
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
final Date now = new Date();
final StringBuilder uri = new StringBuilder(); final StringBuilder uri = new StringBuilder();
uri.append(API_BASE); uri.append(API_BASE);
uri.append("stboard.exe/dn?L=vs_scotty.vs_stb"); uri.append("stboard.exe/dn?L=vs_scotty.vs_stb");
uri.append("&input=").append(stationId); uri.append("&input=").append(stationId);
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&time=").append(TIME_FORMAT.format(now));
uri.append("&productsFilter=111111111111"); uri.append("&productsFilter=111111111111");
uri.append("&additionalTime=0"); uri.append("&additionalTime=0");
uri.append("&maxJourneys=").append(maxDepartures != 0 ? maxDepartures : 20); uri.append("&maxJourneys=").append(maxDepartures != 0 ? maxDepartures : 20);
uri.append("&start=yes"); uri.append("&start=yes");
uri.append("&selectDate=today");
uri.append("&monitor=1"); uri.append("&monitor=1");
uri.append("&requestType=0"); uri.append("&requestType=0");
uri.append("&view=preview"); uri.append("&view=preview");

View file

@ -18,8 +18,6 @@
package de.schildbach.pte; package de.schildbach.pte;
import java.io.IOException; import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
@ -132,15 +130,17 @@ public class RmvProvider extends AbstractHafasProvider
private String connectionsQueryUri(final Location from, final Location via, final Location to, final Date date, final boolean dep, private String connectionsQueryUri(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final String products, final WalkSpeed walkSpeed) final String products, final WalkSpeed walkSpeed)
{ {
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy"); final Calendar c = new GregorianCalendar(timeZone());
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm"); c.setTime(date);
final StringBuilder uri = new StringBuilder(); final StringBuilder uri = new StringBuilder();
uri.append(API_BASE).append("query.exe/dox"); uri.append(API_BASE).append("query.exe/dox");
uri.append("?REQ0HafasInitialSelection=0"); uri.append("?REQ0HafasInitialSelection=0");
uri.append("&REQ0HafasSearchForw=").append(dep ? "1" : "0"); uri.append("&REQ0HafasSearchForw=").append(dep ? "1" : "0");
uri.append("&REQ0JourneyDate=").append(ParserUtils.urlEncode(DATE_FORMAT.format(date))); uri.append("&REQ0JourneyDate=").append(
uri.append("&REQ0JourneyTime=").append(ParserUtils.urlEncode(TIME_FORMAT.format(date))); String.format("%02d.%02d.%02d", c.get(Calendar.DAY_OF_MONTH), c.get(Calendar.MONTH) + 1, c.get(Calendar.YEAR) - 2000));
uri.append("&REQ0JourneyTime=").append(String.format("%02d:%02d", c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE)));
uri.append("&REQ0JourneyStopsS0ID=").append(ParserUtils.urlEncode(locationId(from))); uri.append("&REQ0JourneyStopsS0ID=").append(ParserUtils.urlEncode(locationId(from)));
if (via != null) if (via != null)
uri.append("&REQ0JourneyStops1.0ID=").append(ParserUtils.urlEncode(locationId(via))); uri.append("&REQ0JourneyStops1.0ID=").append(ParserUtils.urlEncode(locationId(via)));
@ -466,19 +466,20 @@ public class RmvProvider extends AbstractHafasProvider
private String departuresQueryUri(final String stationId, final int maxDepartures) private String departuresQueryUri(final String stationId, final int maxDepartures)
{ {
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy"); final Calendar c = new GregorianCalendar(timeZone());
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
final Date now = new Date();
final StringBuilder uri = new StringBuilder(); final StringBuilder uri = new StringBuilder();
uri.append(API_BASE).append("stboard.exe/dox"); uri.append(API_BASE).append("stboard.exe/dox");
uri.append("?input=").append(stationId); uri.append("?input=").append(stationId);
uri.append("&boardType=dep"); // show departures uri.append("&boardType=dep"); // show departures
uri.append("&maxJourneys=").append(maxDepartures != 0 ? maxDepartures : 50); // maximum taken from RMV site uri.append("&maxJourneys=").append(maxDepartures != 0 ? maxDepartures : 50); // maximum taken from RMV site
uri.append("&time=").append(TIME_FORMAT.format(now)); uri.append("&date=").append(
uri.append("&date=").append(DATE_FORMAT.format(now)); String.format("%02d.%02d.%02d", c.get(Calendar.DAY_OF_MONTH), c.get(Calendar.MONTH) + 1, c.get(Calendar.YEAR) - 2000));
uri.append("&time=").append(String.format("%02d:%02d", c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE)));
uri.append("&disableEquivs=yes"); // don't use nearby stations uri.append("&disableEquivs=yes"); // don't use nearby stations
uri.append("&start=yes"); uri.append("&start=yes");
return uri.toString(); return uri.toString();
} }

View file

@ -18,12 +18,9 @@
package de.schildbach.pte; package de.schildbach.pte;
import java.io.IOException; import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
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.TimeZone; import java.util.TimeZone;
@ -119,16 +116,17 @@ public class SeptaProvider extends AbstractHafasProvider
private String departuresQueryUri(final String stationId, final int maxDepartures) private String departuresQueryUri(final String stationId, final int maxDepartures)
{ {
final DateFormat DATE_FORMAT = new SimpleDateFormat("MM/dd/yyyy"); final Calendar now = new GregorianCalendar(timeZone());
final DateFormat TIME_FORMAT = new SimpleDateFormat("h:mm a");
final Date now = new Date();
final StringBuilder uri = new StringBuilder(); final StringBuilder uri = new StringBuilder();
uri.append(API_BASE).append("stboard.exe/en"); uri.append(API_BASE).append("stboard.exe/en");
uri.append("?input=").append(stationId); uri.append("?input=").append(stationId);
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&time=").append(ParserUtils.urlEncode(TIME_FORMAT.format(now))); uri.append("&time=").append(
uri.append("&date=").append(ParserUtils.urlEncode(DATE_FORMAT.format(now))); ParserUtils.urlEncode(String.format("%02d:%02d %s", now.get(Calendar.HOUR), now.get(Calendar.MINUTE),
now.get(Calendar.AM_PM) == Calendar.AM ? "am" : "pm")));
uri.append("&date=").append(
String.format("%02d%02d%04d", now.get(Calendar.MONTH) + 1, now.get(Calendar.DAY_OF_MONTH), now.get(Calendar.YEAR)));
uri.append("&productsFilter=1111"); uri.append("&productsFilter=1111");
if (maxDepartures != 0) if (maxDepartures != 0)
uri.append("&maxJourneys=").append(maxDepartures); uri.append("&maxJourneys=").append(maxDepartures);

View file

@ -18,8 +18,6 @@
package de.schildbach.pte; package de.schildbach.pte;
import java.io.IOException; import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Collections; import java.util.Collections;
@ -85,16 +83,11 @@ public class VgsProvider extends AbstractHafasProvider
private String departuresQueryUri(final String stationId, final int maxDepartures) private String departuresQueryUri(final String stationId, final int maxDepartures)
{ {
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy");
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
final Date now = new Date();
final StringBuilder uri = new StringBuilder(); final StringBuilder uri = new StringBuilder();
uri.append(API_BASE).append("stboard.exe/dn"); uri.append(API_BASE).append("stboard.exe/dn");
uri.append("?input=").append(stationId); uri.append("?input=").append(stationId);
uri.append("&boardType=dep"); uri.append("&boardType=dep");
uri.append("&time=").append(TIME_FORMAT.format(now));
uri.append("&date=").append(DATE_FORMAT.format(now));
uri.append("&productsFilter=11111111111"); uri.append("&productsFilter=11111111111");
if (maxDepartures != 0) if (maxDepartures != 0)
uri.append("&maxJourneys=").append(maxDepartures); uri.append("&maxJourneys=").append(maxDepartures);