From 9bd1564ac29219a92c6580a732f7945da20652ec Mon Sep 17 00:00:00 2001 From: "andreas.schildbach@gmail.com" Date: Fri, 1 Apr 2011 16:07:19 +0000 Subject: [PATCH] product filter for Germany git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@548 0924bc21-9374-b0fa-ee44-9ff1593b38f0 --- src/de/schildbach/pte/BahnProvider.java | 52 ++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/src/de/schildbach/pte/BahnProvider.java b/src/de/schildbach/pte/BahnProvider.java index a1e35ed3..8d3981a8 100644 --- a/src/de/schildbach/pte/BahnProvider.java +++ b/src/de/schildbach/pte/BahnProvider.java @@ -124,7 +124,8 @@ public final class BahnProvider extends AbstractHafasProvider return new NearbyStationsResult(stations.subList(0, maxStations)); } - 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 Calendar c = new GregorianCalendar(timeZone()); c.setTime(date); @@ -148,6 +149,53 @@ public final class BahnProvider extends AbstractHafasProvider uri.append("&existProductNahverkehr=yes"); uri.append("&start=Suchen"); + for (final char p : products.toCharArray()) + { + if (p == 'I') + { + uri.append("&REQ0JourneyProduct_prod_section_0_0=1&REQ0JourneyProduct_prod_section_0_1=1"); + if (via != null) + uri.append("&REQ0JourneyProduct_prod_section_1_0=1&REQ0JourneyProduct_prod_section_1_1=1"); + } + if (p == 'R') + { + uri.append("&REQ0JourneyProduct_prod_section_0_2=1&REQ0JourneyProduct_prod_section_0_3=1"); + if (via != null) + uri.append("&REQ0JourneyProduct_prod_section_1_2=1&REQ0JourneyProduct_prod_section_1_3=1"); + } + if (p == 'S') + { + uri.append("&REQ0JourneyProduct_prod_section_0_4=1"); + if (via != null) + uri.append("&REQ0JourneyProduct_prod_section_1_4=1"); + } + if (p == 'U') + { + uri.append("&REQ0JourneyProduct_prod_section_0_7=1"); + if (via != null) + uri.append("&REQ0JourneyProduct_prod_section_1_7=1"); + } + if (p == 'T') + { + uri.append("&REQ0JourneyProduct_prod_section_0_8=1"); + if (via != null) + uri.append("&REQ0JourneyProduct_prod_section_1_8=1"); + } + if (p == 'B') + { + uri.append("&REQ0JourneyProduct_prod_section_0_5=1&REQ0JourneyProduct_prod_section_0_9=1"); + if (via != null) + uri.append("&REQ0JourneyProduct_prod_section_1_5=1&REQ0JourneyProduct_prod_section_1_9=1"); + } + if (p == 'F') + { + uri.append("&REQ0JourneyProduct_prod_section_0_6=1"); + if (via != null) + uri.append("&REQ0JourneyProduct_prod_section_1_6=1"); + } + // FIXME if (p == 'C') + } + return uri.toString(); } @@ -161,7 +209,7 @@ public final class BahnProvider extends AbstractHafasProvider public QueryConnectionsResult queryConnections(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 uri = connectionsQueryUri(from, via, to, date, dep); + final String uri = connectionsQueryUri(from, via, to, date, dep, products); final CharSequence page = ParserUtils.scrape(uri); List fromAddresses = null;