mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-17 19:59:50 +00:00
parse predicted times in connection details
git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@525 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
parent
4da349339d
commit
443abfedb7
1 changed files with 20 additions and 10 deletions
|
@ -313,11 +313,13 @@ public class RmvProvider extends AbstractHafasProvider
|
||||||
private static final Pattern P_CONNECTION_DETAILS_FINE = Pattern.compile("<br />\n" //
|
private static final Pattern P_CONNECTION_DETAILS_FINE = Pattern.compile("<br />\n" //
|
||||||
+ "(?:(.*?) nach (.*?)\n" // line, destination
|
+ "(?:(.*?) nach (.*?)\n" // line, destination
|
||||||
+ "<br />\n" //
|
+ "<br />\n" //
|
||||||
+ "ab (\\d{1,2}:\\d{2})\n" // departureTime
|
+ "ab (\\d{1,2}:\\d{2})\n" // plannedDepartureTime
|
||||||
+ "(?:(.*?)\\s*\n)?" // departurePosition
|
+ "(?:<span class=\"red\">\nca\\.(\\d{1,2}:\\d{2})\n</span>\n)?" // predictedDepartureTime
|
||||||
|
+ "(?:Gl\\. (.+?)\\s*\n)?" // departurePosition
|
||||||
+ "<br />\n" //
|
+ "<br />\n" //
|
||||||
+ "an (\\d{1,2}:\\d{2})\n" // arrivalTime
|
+ "an (\\d{1,2}:\\d{2})\n" // plannedArrivalTime
|
||||||
+ "(?:(.*?)\\s*\n)?" // arrivalPosition
|
+ "(?:<span class=\"red\">ca\\.(\\d{1,2}:\\d{2})</span>\n)?" // predictedArrivalTime
|
||||||
|
+ "(?:Gl\\. (.+?)\\s*\n)?" // arrivalPosition
|
||||||
+ "<br />\n|" //
|
+ "<br />\n|" //
|
||||||
+ "<a href=[^>]*>\n" //
|
+ "<a href=[^>]*>\n" //
|
||||||
+ "Fussweg\\s*\n" //
|
+ "Fussweg\\s*\n" //
|
||||||
|
@ -353,10 +355,10 @@ public class RmvProvider extends AbstractHafasProvider
|
||||||
{
|
{
|
||||||
final Location departure = lastArrival != null ? lastArrival : firstDeparture;
|
final Location departure = lastArrival != null ? lastArrival : firstDeparture;
|
||||||
|
|
||||||
final Location arrival = new Location(LocationType.ANY, 0, null, ParserUtils.resolveEntities(mDetFine.group(8)));
|
final Location arrival = new Location(LocationType.ANY, 0, null, ParserUtils.resolveEntities(mDetFine.group(10)));
|
||||||
lastArrival = arrival;
|
lastArrival = arrival;
|
||||||
|
|
||||||
final String min = mDetFine.group(7);
|
final String min = mDetFine.group(9);
|
||||||
if (min == null)
|
if (min == null)
|
||||||
{
|
{
|
||||||
final String lineStr = normalizeLine(ParserUtils.resolveEntities(mDetFine.group(1)));
|
final String lineStr = normalizeLine(ParserUtils.resolveEntities(mDetFine.group(1)));
|
||||||
|
@ -364,13 +366,21 @@ public class RmvProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
final Location destination = new Location(LocationType.ANY, 0, null, ParserUtils.resolveEntities(mDetFine.group(2)));
|
final Location destination = new Location(LocationType.ANY, 0, null, ParserUtils.resolveEntities(mDetFine.group(2)));
|
||||||
|
|
||||||
final Date departureTime = upTime(lastTime, ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mDetFine.group(3))));
|
final Date plannedDepartureTime = upTime(lastTime,
|
||||||
|
ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mDetFine.group(3))));
|
||||||
|
final Date predictedDepartureTime = mDetFine.group(4) != null ? upTime(lastTime,
|
||||||
|
ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mDetFine.group(4)))) : null;
|
||||||
|
final Date departureTime = predictedDepartureTime != null ? predictedDepartureTime : plannedDepartureTime;
|
||||||
|
|
||||||
final String departurePosition = ParserUtils.resolveEntities(mDetFine.group(4));
|
final String departurePosition = ParserUtils.resolveEntities(mDetFine.group(5));
|
||||||
|
|
||||||
final Date arrivalTime = upTime(lastTime, ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mDetFine.group(5))));
|
final Date plannedArrivalTime = upTime(lastTime,
|
||||||
|
ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mDetFine.group(6))));
|
||||||
|
final Date predictedArrivalTime = mDetFine.group(7) != null ? upTime(lastTime,
|
||||||
|
ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mDetFine.group(7)))) : null;
|
||||||
|
final Date arrivalTime = predictedArrivalTime != null ? predictedArrivalTime : plannedArrivalTime;
|
||||||
|
|
||||||
final String arrivalPosition = ParserUtils.resolveEntities(mDetFine.group(6));
|
final String arrivalPosition = ParserUtils.resolveEntities(mDetFine.group(8));
|
||||||
|
|
||||||
lastTrip = new Connection.Trip(line, destination, departureTime, departurePosition, departure, arrivalTime, arrivalPosition,
|
lastTrip = new Connection.Trip(line, destination, departureTime, departurePosition, departure, arrivalTime, arrivalPosition,
|
||||||
arrival, null, null);
|
arrival, null, null);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue