mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-19 08:49:58 +00:00
ignore 'Sitzenbleiber'
git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@38 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
parent
846547ff74
commit
58b01862fc
1 changed files with 51 additions and 46 deletions
|
@ -342,6 +342,7 @@ public class MvvProvider implements NetworkProvider
|
||||||
+ "an\\s+(.*?)\\s*<a" //
|
+ "an\\s+(.*?)\\s*<a" //
|
||||||
+ ").*?", Pattern.DOTALL);
|
+ ").*?", Pattern.DOTALL);
|
||||||
private static final Pattern P_CONNECTION_DETAILS_ERRORS = Pattern.compile("(session has expired)", Pattern.CASE_INSENSITIVE);
|
private static final Pattern P_CONNECTION_DETAILS_ERRORS = Pattern.compile("(session has expired)", Pattern.CASE_INSENSITIVE);
|
||||||
|
private static final String SITZENBLEIBER = "Sitzenbleiber";
|
||||||
|
|
||||||
public GetConnectionDetailsResult getConnectionDetails(final String uri) throws IOException
|
public GetConnectionDetailsResult getConnectionDetails(final String uri) throws IOException
|
||||||
{
|
{
|
||||||
|
@ -369,59 +370,63 @@ public class MvvProvider implements NetworkProvider
|
||||||
while (mDetCoarse.find())
|
while (mDetCoarse.find())
|
||||||
{
|
{
|
||||||
final String set = mDetCoarse.group(2) + mDetCoarse.group(3) + mDetCoarse.group(4);
|
final String set = mDetCoarse.group(2) + mDetCoarse.group(3) + mDetCoarse.group(4);
|
||||||
final Matcher mDetFine = P_CONNECTION_DETAILS_FINE.matcher(set);
|
if (!set.contains(SITZENBLEIBER))
|
||||||
if (mDetFine.matches())
|
|
||||||
{
|
{
|
||||||
if (mDetFine.group(8) == null)
|
final Matcher mDetFine = P_CONNECTION_DETAILS_FINE.matcher(set);
|
||||||
|
if (mDetFine.matches())
|
||||||
{
|
{
|
||||||
final Date departureTime = upTime(lastTime, ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mDetFine.group(1))));
|
if (mDetFine.group(8) == null)
|
||||||
|
|
||||||
final String departure = ParserUtils.resolveEntities(mDetFine.group(2));
|
|
||||||
if (departure != null && firstDeparture == null)
|
|
||||||
firstDeparture = departure;
|
|
||||||
|
|
||||||
final String product = ParserUtils.resolveEntities(mDetFine.group(3));
|
|
||||||
|
|
||||||
final String line = ParserUtils.resolveEntities(mDetFine.group(4));
|
|
||||||
|
|
||||||
final String destination = ParserUtils.resolveEntities(mDetFine.group(5));
|
|
||||||
|
|
||||||
final Date arrivalTime = upTime(lastTime, ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mDetFine.group(6))));
|
|
||||||
|
|
||||||
final String arrival = ParserUtils.resolveEntities(mDetFine.group(7));
|
|
||||||
|
|
||||||
final String normalizedLine = normalizeLine(product, line);
|
|
||||||
|
|
||||||
parts.add(new Connection.Trip(normalizedLine, LINES.get(normalizedLine), destination, departureTime, null, 0, departure,
|
|
||||||
arrivalTime, null, 0, arrival));
|
|
||||||
|
|
||||||
if (firstDepartureTime == null)
|
|
||||||
firstDepartureTime = departureTime;
|
|
||||||
|
|
||||||
lastArrival = arrival;
|
|
||||||
lastArrivalTime = arrivalTime;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
final String departure = ParserUtils.resolveEntities(mDetFine.group(8));
|
|
||||||
if (departure != null && firstDeparture == null)
|
|
||||||
firstDeparture = departure;
|
|
||||||
|
|
||||||
final String min = mDetFine.group(9);
|
|
||||||
|
|
||||||
final String arrival = ParserUtils.resolveEntities(mDetFine.group(10));
|
|
||||||
|
|
||||||
if (parts.size() > 0 && parts.get(parts.size() - 1) instanceof Connection.Footway)
|
|
||||||
{
|
{
|
||||||
final Connection.Footway lastFootway = (Connection.Footway) parts.remove(parts.size() - 1);
|
final Date departureTime = upTime(lastTime, ParserUtils.joinDateTime(currentDate, ParserUtils
|
||||||
parts.add(new Connection.Footway(lastFootway.min + Integer.parseInt(min), lastFootway.departure, arrival));
|
.parseTime(mDetFine.group(1))));
|
||||||
|
|
||||||
|
final String departure = ParserUtils.resolveEntities(mDetFine.group(2));
|
||||||
|
if (departure != null && firstDeparture == null)
|
||||||
|
firstDeparture = departure;
|
||||||
|
|
||||||
|
final String product = ParserUtils.resolveEntities(mDetFine.group(3));
|
||||||
|
|
||||||
|
final String line = ParserUtils.resolveEntities(mDetFine.group(4));
|
||||||
|
|
||||||
|
final String destination = ParserUtils.resolveEntities(mDetFine.group(5));
|
||||||
|
|
||||||
|
final Date arrivalTime = upTime(lastTime, ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mDetFine.group(6))));
|
||||||
|
|
||||||
|
final String arrival = ParserUtils.resolveEntities(mDetFine.group(7));
|
||||||
|
|
||||||
|
final String normalizedLine = normalizeLine(product, line);
|
||||||
|
|
||||||
|
parts.add(new Connection.Trip(normalizedLine, LINES.get(normalizedLine), destination, departureTime, null, 0, departure,
|
||||||
|
arrivalTime, null, 0, arrival));
|
||||||
|
|
||||||
|
if (firstDepartureTime == null)
|
||||||
|
firstDepartureTime = departureTime;
|
||||||
|
|
||||||
|
lastArrival = arrival;
|
||||||
|
lastArrivalTime = arrivalTime;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
parts.add(new Connection.Footway(Integer.parseInt(min), departure, arrival));
|
final String departure = ParserUtils.resolveEntities(mDetFine.group(8));
|
||||||
}
|
if (departure != null && firstDeparture == null)
|
||||||
|
firstDeparture = departure;
|
||||||
|
|
||||||
lastArrival = arrival;
|
final String min = mDetFine.group(9);
|
||||||
|
|
||||||
|
final String arrival = ParserUtils.resolveEntities(mDetFine.group(10));
|
||||||
|
|
||||||
|
if (parts.size() > 0 && parts.get(parts.size() - 1) instanceof Connection.Footway)
|
||||||
|
{
|
||||||
|
final Connection.Footway lastFootway = (Connection.Footway) parts.remove(parts.size() - 1);
|
||||||
|
parts.add(new Connection.Footway(lastFootway.min + Integer.parseInt(min), lastFootway.departure, arrival));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
parts.add(new Connection.Footway(Integer.parseInt(min), departure, arrival));
|
||||||
|
}
|
||||||
|
|
||||||
|
lastArrival = arrival;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue