diff --git a/src/de/schildbach/pte/OebbProvider.java b/src/de/schildbach/pte/OebbProvider.java index 0a538421..c36c39cc 100644 --- a/src/de/schildbach/pte/OebbProvider.java +++ b/src/de/schildbach/pte/OebbProvider.java @@ -341,7 +341,7 @@ public class OebbProvider extends AbstractHafasProvider private static final Pattern P_CONNECTION_DETAILS_COARSE = Pattern.compile("" // + "\n(.*?)\n" // + "\n(.*?)\n" // - + "" // + + "\n(.*?)\n" // , Pattern.DOTALL); private static final Pattern P_CONNECTION_DETAILS_FINE = Pattern.compile(".*?" // + "(?:]*>)?" // departureId @@ -356,6 +356,7 @@ public class OebbProvider extends AbstractHafasProvider + "(?:(\\d{2}\\.\\d{2}\\.\\d{2})| ).*?" // arrivalDate + "\n?an (\\d{2}:\\d{2}).*?" // arrivalTime + "\\s*(?: |(.*?))\\s*.*?" // arrivalPosition + + "]* class=\"section_remarks\">(?:.*?Richtung\\:\\s*([^\n]*)\n)?.*??.*?" // destination , Pattern.DOTALL); private QueryConnectionsResult queryConnections(final String firstUri, final CharSequence firstPage) throws IOException @@ -415,7 +416,7 @@ public class OebbProvider extends AbstractHafasProvider final Matcher mDetCoarse = P_CONNECTION_DETAILS_COARSE.matcher(details); while (mDetCoarse.find()) { - final String set = mDetCoarse.group(1) + mDetCoarse.group(2); + final String set = mDetCoarse.group(1) + mDetCoarse.group(2) + mDetCoarse.group(3); final Matcher mDetFine = P_CONNECTION_DETAILS_FINE.matcher(set); if (mDetFine.matches()) @@ -458,7 +459,10 @@ public class OebbProvider extends AbstractHafasProvider final String arrivalPosition = mDetFine.group(12) != null ? ParserUtils.resolveEntities(mDetFine.group(12)) : null; - final Connection.Trip trip = new Connection.Trip(line, lineColors(line), null, detailsDepartureDateTime, + final Location destination = mDetFine.group(13) != null ? new Location(LocationType.ANY, 0, + ParserUtils.resolveEntities(mDetFine.group(13))) : null; + + final Connection.Trip trip = new Connection.Trip(line, lineColors(line), destination, detailsDepartureDateTime, departurePosition, departureId, departure, detailsArrivalDateTime, arrivalPosition, arrivalId, arrival, null); connection.parts.add(trip); }