mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-12 20:08:49 +00:00
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:
parent
5ce40b8a07
commit
952be53f5f
9 changed files with 58 additions and 80 deletions
|
@ -19,8 +19,6 @@ package de.schildbach.pte;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
|
@ -228,14 +226,22 @@ public abstract class AbstractHafasProvider implements NetworkProvider
|
|||
to = autocompletes.get(0);
|
||||
}
|
||||
|
||||
final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyyMMdd");
|
||||
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
|
||||
final Calendar c = new GregorianCalendar(timeZone());
|
||||
c.setTime(date);
|
||||
|
||||
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>" : "") //
|
||||
+ "<Dest>" + location(to) + "</Dest>" //
|
||||
+ "<ReqT a=\"" + (dep ? 0 : 1) + "\" date=\"" + DATE_FORMAT.format(date) + "\" time=\"" + TIME_FORMAT.format(date) + "\"/>" //
|
||||
+ "<Dest>"
|
||||
+ 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\"/>" //
|
||||
+ "</ConReq>";
|
||||
|
||||
|
@ -855,11 +861,13 @@ public abstract class AbstractHafasProvider implements NetworkProvider
|
|||
return 'I';
|
||||
if (ucType.equals("EN")) // EuroNight
|
||||
return 'I';
|
||||
if (ucType.equals("EIC")) // Ekspres InterCity, Polen
|
||||
return 'I';
|
||||
if (ucType.equals("ICE")) // InterCityExpress
|
||||
return 'I';
|
||||
if (ucType.equals("IC")) // InterCity
|
||||
return 'I';
|
||||
if (ucType.equals("EN")) // EuroNight
|
||||
if (ucType.equals("ICT")) // InterCity
|
||||
return 'I';
|
||||
if (ucType.equals("CNL")) // CityNightLine
|
||||
return 'I';
|
||||
|
@ -890,7 +898,7 @@ public abstract class AbstractHafasProvider implements NetworkProvider
|
|||
if (ucType.equals("IRX")) // IC
|
||||
return 'I';
|
||||
|
||||
// Regional Germany
|
||||
// Regional
|
||||
if (ucType.equals("ZUG")) // Generic Train
|
||||
return 'R';
|
||||
if (ucType.equals("R")) // Generic Regional Train
|
||||
|
@ -913,11 +921,9 @@ public abstract class AbstractHafasProvider implements NetworkProvider
|
|||
return 'R';
|
||||
if (ucType.equals("REX")) // RegionalExpress, Österreich
|
||||
return 'R';
|
||||
|
||||
// Regional Poland
|
||||
if (ucType.equals("OS")) // Chop-Cierna nas Tisou
|
||||
if (ucType.equals("OS")) // Osobný vlak, Slovakia oder Osobní vlak, Czech Republic
|
||||
return 'R';
|
||||
if (ucType.equals("SP")) // Polen
|
||||
if (ucType.equals("SP")) // Spěšný vlak, Czech Republic
|
||||
return 'R';
|
||||
|
||||
// Suburban Trains
|
||||
|
|
|
@ -18,8 +18,6 @@
|
|||
package de.schildbach.pte;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
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)
|
||||
{
|
||||
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy");
|
||||
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
|
||||
final Calendar c = new GregorianCalendar(timeZone());
|
||||
c.setTime(date);
|
||||
|
||||
final StringBuilder uri = new StringBuilder();
|
||||
|
||||
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("&REQ0JourneyStopsZ0ID=").append(ParserUtils.urlEncode(locationId(to)));
|
||||
uri.append("&REQ0HafasSearchForw=").append(dep ? "1" : "0");
|
||||
uri.append("&REQ0JourneyDate=").append(ParserUtils.urlEncode(DATE_FORMAT.format(date)));
|
||||
uri.append("&REQ0JourneyTime=").append(ParserUtils.urlEncode(TIME_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("&REQ0JourneyTime=").append(String.format("%02d:%02d", c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE)));
|
||||
uri.append("&REQ0Tariff_Class=2");
|
||||
uri.append("&REQ0Tariff_TravellerAge.1=35");
|
||||
uri.append("&REQ0Tariff_TravellerReductionClass.1=0");
|
||||
|
|
|
@ -18,8 +18,6 @@
|
|||
package de.schildbach.pte;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
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,
|
||||
final String products)
|
||||
{
|
||||
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy");
|
||||
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
|
||||
final Calendar c = new GregorianCalendar(timeZone());
|
||||
c.setTime(date);
|
||||
|
||||
final StringBuilder uri = new StringBuilder();
|
||||
|
||||
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);
|
||||
|
||||
uri.append("&REQ0HafasSearchForw=").append(dep ? "1" : "0");
|
||||
uri.append("&REQ0JourneyDate=").append(ParserUtils.urlEncode(DATE_FORMAT.format(date)));
|
||||
uri.append("&REQ0JourneyTime=").append(ParserUtils.urlEncode(TIME_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("&REQ0JourneyTime=").append(String.format("%02d:%02d", c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE)));
|
||||
|
||||
for (final char p : products.toCharArray())
|
||||
{
|
||||
|
|
|
@ -18,12 +18,9 @@
|
|||
package de.schildbach.pte;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
@ -136,16 +133,11 @@ public class InvgProvider extends AbstractHafasProvider
|
|||
|
||||
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();
|
||||
|
||||
uri.append(API_BASE).append("stboard.exe/dn");
|
||||
uri.append("?input=").append(stationId);
|
||||
uri.append("&boardType=dep");
|
||||
uri.append("&time=").append(TIME_FORMAT.format(now));
|
||||
uri.append("&date=").append(DATE_FORMAT.format(now));
|
||||
uri.append("&productsFilter=1111111111");
|
||||
if (maxDepartures != 0)
|
||||
uri.append("&maxJourneys=").append(maxDepartures);
|
||||
|
|
|
@ -18,8 +18,6 @@
|
|||
package de.schildbach.pte;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collections;
|
||||
|
@ -86,16 +84,11 @@ public class NasaProvider extends AbstractHafasProvider
|
|||
|
||||
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();
|
||||
|
||||
uri.append(API_BASE).append("stboard.exe/dn");
|
||||
uri.append("?input=").append(stationId);
|
||||
uri.append("&boardType=dep");
|
||||
uri.append("&time=").append(TIME_FORMAT.format(now));
|
||||
uri.append("&date=").append(DATE_FORMAT.format(now));
|
||||
uri.append("&productsFilter=11111111");
|
||||
if (maxDepartures != 0)
|
||||
uri.append("&maxJourneys=").append(maxDepartures);
|
||||
|
|
|
@ -18,8 +18,6 @@
|
|||
package de.schildbach.pte;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
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,
|
||||
final String products, final WalkSpeed walkSpeed) throws IOException
|
||||
{
|
||||
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy");
|
||||
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
|
||||
final Calendar c = new GregorianCalendar(timeZone());
|
||||
c.setTime(date);
|
||||
|
||||
final StringBuilder uri = new StringBuilder();
|
||||
|
||||
uri.append("queryPageDisplayed=yes");
|
||||
|
@ -174,9 +173,10 @@ public class OebbProvider extends AbstractHafasProvider
|
|||
if (via != null)
|
||||
uri.append("&REQ0JourneyStops1.0ID=").append(ParserUtils.urlEncode(locationId(via)));
|
||||
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("&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("&existHafasDemo3=yes");
|
||||
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)
|
||||
{
|
||||
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
|
||||
final Date now = new Date();
|
||||
|
||||
final StringBuilder uri = new StringBuilder();
|
||||
|
||||
uri.append(API_BASE);
|
||||
uri.append("stboard.exe/dn?L=vs_scotty.vs_stb");
|
||||
uri.append("&input=").append(stationId);
|
||||
uri.append("&boardType=dep");
|
||||
uri.append("&time=").append(TIME_FORMAT.format(now));
|
||||
uri.append("&productsFilter=111111111111");
|
||||
uri.append("&additionalTime=0");
|
||||
uri.append("&maxJourneys=").append(maxDepartures != 0 ? maxDepartures : 20);
|
||||
uri.append("&start=yes");
|
||||
uri.append("&selectDate=today");
|
||||
uri.append("&monitor=1");
|
||||
uri.append("&requestType=0");
|
||||
uri.append("&view=preview");
|
||||
|
|
|
@ -18,8 +18,6 @@
|
|||
package de.schildbach.pte;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
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,
|
||||
final String products, final WalkSpeed walkSpeed)
|
||||
{
|
||||
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy");
|
||||
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
|
||||
final Calendar c = new GregorianCalendar(timeZone());
|
||||
c.setTime(date);
|
||||
|
||||
final StringBuilder uri = new StringBuilder();
|
||||
|
||||
uri.append(API_BASE).append("query.exe/dox");
|
||||
uri.append("?REQ0HafasInitialSelection=0");
|
||||
uri.append("&REQ0HafasSearchForw=").append(dep ? "1" : "0");
|
||||
uri.append("&REQ0JourneyDate=").append(ParserUtils.urlEncode(DATE_FORMAT.format(date)));
|
||||
uri.append("&REQ0JourneyTime=").append(ParserUtils.urlEncode(TIME_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("&REQ0JourneyTime=").append(String.format("%02d:%02d", c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE)));
|
||||
uri.append("&REQ0JourneyStopsS0ID=").append(ParserUtils.urlEncode(locationId(from)));
|
||||
if (via != null)
|
||||
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)
|
||||
{
|
||||
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy");
|
||||
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
|
||||
final Date now = new Date();
|
||||
final Calendar c = new GregorianCalendar(timeZone());
|
||||
|
||||
final StringBuilder uri = new StringBuilder();
|
||||
|
||||
uri.append(API_BASE).append("stboard.exe/dox");
|
||||
uri.append("?input=").append(stationId);
|
||||
uri.append("&boardType=dep"); // show departures
|
||||
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(DATE_FORMAT.format(now));
|
||||
uri.append("&date=").append(
|
||||
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("&start=yes");
|
||||
|
||||
return uri.toString();
|
||||
}
|
||||
|
||||
|
|
|
@ -18,12 +18,9 @@
|
|||
package de.schildbach.pte;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.List;
|
||||
import java.util.TimeZone;
|
||||
|
@ -119,16 +116,17 @@ public class SeptaProvider extends AbstractHafasProvider
|
|||
|
||||
private String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||
{
|
||||
final DateFormat DATE_FORMAT = new SimpleDateFormat("MM/dd/yyyy");
|
||||
final DateFormat TIME_FORMAT = new SimpleDateFormat("h:mm a");
|
||||
final Date now = new Date();
|
||||
final Calendar now = new GregorianCalendar(timeZone());
|
||||
|
||||
final StringBuilder uri = new StringBuilder();
|
||||
uri.append(API_BASE).append("stboard.exe/en");
|
||||
uri.append("?input=").append(stationId);
|
||||
uri.append("&boardType=dep");
|
||||
uri.append("&time=").append(ParserUtils.urlEncode(TIME_FORMAT.format(now)));
|
||||
uri.append("&date=").append(ParserUtils.urlEncode(DATE_FORMAT.format(now)));
|
||||
uri.append("&time=").append(
|
||||
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");
|
||||
if (maxDepartures != 0)
|
||||
uri.append("&maxJourneys=").append(maxDepartures);
|
||||
|
|
|
@ -18,8 +18,6 @@
|
|||
package de.schildbach.pte;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collections;
|
||||
|
@ -85,16 +83,11 @@ public class VgsProvider extends AbstractHafasProvider
|
|||
|
||||
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();
|
||||
|
||||
uri.append(API_BASE).append("stboard.exe/dn");
|
||||
uri.append("?input=").append(stationId);
|
||||
uri.append("&boardType=dep");
|
||||
uri.append("&time=").append(TIME_FORMAT.format(now));
|
||||
uri.append("&date=").append(DATE_FORMAT.format(now));
|
||||
uri.append("&productsFilter=11111111111");
|
||||
if (maxDepartures != 0)
|
||||
uri.append("&maxJourneys=").append(maxDepartures);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue