From 5e82b7ccf846bc918252922e3ece88a7343d6ccb Mon Sep 17 00:00:00 2001 From: "andreas.schildbach" Date: Fri, 12 Nov 2010 23:08:18 +0000 Subject: [PATCH] parse 'session expired' git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@349 0924bc21-9374-b0fa-ee44-9ff1593b38f0 --- src/de/schildbach/pte/BahnProvider.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/de/schildbach/pte/BahnProvider.java b/src/de/schildbach/pte/BahnProvider.java index 4948bc52..2e7b9f4c 100644 --- a/src/de/schildbach/pte/BahnProvider.java +++ b/src/de/schildbach/pte/BahnProvider.java @@ -311,14 +311,21 @@ public final class BahnProvider extends AbstractHafasProvider + "Übergang.*?" // + "\\s*(.+?)\\s*
\n" // arrival + ")", Pattern.DOTALL); - private static final Pattern P_CONNECTION_DETAILS_MESSAGES = Pattern - .compile("Dauer: \\d+:\\d+|(Anschlusszug nicht mehr rechtzeitig)|(Anschlusszug jedoch erreicht werden)|(nur teilweise dargestellt)|(Längerer Aufenthalt)|(äquivalentem Bahnhof)|(Bahnhof wird mehrfach durchfahren)"); + private static final Pattern P_CONNECTION_DETAILS_ERROR = Pattern.compile("(zwischenzeitlich nicht mehr gespeichert)"); + private static final Pattern P_CONNECTION_DETAILS_MESSAGES = Pattern.compile("Dauer: \\d+:\\d+"); @Override public GetConnectionDetailsResult getConnectionDetails(final String uri) throws IOException { final CharSequence page = ParserUtils.scrape(uri); + final Matcher mError = P_CONNECTION_DETAILS_ERROR.matcher(page); + if (mError.find()) + { + if (mError.group(1) != null) + throw new SessionExpiredException(); + } + final Matcher mHead = P_CONNECTION_DETAILS_HEAD.matcher(page); if (mHead.matches()) {