mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-07 06:08:52 +00:00
parse Übergang
git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@144 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
parent
8b482b80f1
commit
c9b139b653
2 changed files with 42 additions and 37 deletions
|
@ -356,21 +356,22 @@ public final class VbbProvider implements NetworkProvider
|
|||
}
|
||||
|
||||
private static final Pattern P_CONNECTION_DETAILS_HEAD = Pattern.compile(".*(?:Datum|Abfahrt): (\\d\\d\\.\\d\\d\\.\\d\\d).*", Pattern.DOTALL);
|
||||
private static final Pattern P_CONNECTION_DETAILS_COARSE = Pattern.compile("<p class=\"con\\w\">\n?(.+?)\n?</p>", Pattern.DOTALL);
|
||||
static final Pattern P_CONNECTION_DETAILS_FINE = Pattern.compile("(?:<a href=\".*?input=(\\d+).*?\">(?:\\n?<strong>)?" // departureId
|
||||
+ "(.+?)(?:</strong>\\n?)?</a>)?.*?" // departure
|
||||
private static final Pattern P_CONNECTION_DETAILS_COARSE = Pattern.compile("<p class=\"con\\w\">\n(.+?)</p>", Pattern.DOTALL);
|
||||
static final Pattern P_CONNECTION_DETAILS_FINE = Pattern.compile("(?:<a href=\".*?input=(\\d+).*?\">(?:\n<strong>)?" // departureId
|
||||
+ "(.+?)(?:</strong>\n)?</a>)?.*?" // departure
|
||||
+ "(?:" //
|
||||
+ "ab (\\d+:\\d+)\n?" // departureTime
|
||||
+ "ab (\\d+:\\d+)\n" // departureTime
|
||||
+ "(Gl\\. \\d+)?.*?" // departurePosition
|
||||
+ "<strong>\\s*(.*?)\\s*</strong>.*?" // line
|
||||
+ "Ri\\. (.*?)[\n\\.]*<.*?" // destination
|
||||
+ "an (\\d+:\\d+)\n?" // arrivalTime
|
||||
+ "an (\\d+:\\d+)\n" // arrivalTime
|
||||
+ "(Gl\\. \\d+)?.*?" // arrivalPosition
|
||||
+ "<a href=\".*?input=(\\d+).*?\">\n?" // arrivalId
|
||||
+ "<a href=\".*?input=(\\d+).*?\">\n" // arrivalId
|
||||
+ "<strong>(.*?)</strong>" // arrival
|
||||
+ "|" //
|
||||
+ "(\\d+) Min\\.[\n\\s]?" // footway
|
||||
+ "Fussweg.*?" //
|
||||
+ "(\\d+) Min\\.\n" // footway
|
||||
+ "(?:Fussweg|Übergang)\n" //
|
||||
+ "<br />\n" //
|
||||
+ "(?:<a href=\"/Fahrinfo.*?input=(\\d+)\">\n" // arrivalId
|
||||
+ "<strong>(.*?)</strong>|<a href=\"/Stadtplan.*?WGS84,(\\d+),(\\d+)&.*?\">([^<]*)</a>|<strong>([^<]*)</strong>).*?" // arrival
|
||||
+ ").*?", Pattern.DOTALL);
|
||||
|
|
|
@ -31,57 +31,61 @@ public class VbbProviderTest
|
|||
@Test
|
||||
public void footwayWithLink()
|
||||
{
|
||||
assertFineConnectionDetails("<a href=\"/Stadtplan/index/mobil?language=d&location=,ADR,WGS84,13426558,52536061&label=10405 Bln Pankow, Christburger Str. 123\">10405 Bln Pankow, Christburger Str. 123</a>\n"
|
||||
+ "<br />\n"
|
||||
+ "10 Min.\n"
|
||||
+ "Fussweg\n"
|
||||
+ "<br />\n"
|
||||
+ "<a href=\"/Fahrinfo/bin/stboard.bin/dox?ld=0.1&n=2&i=c6.0318411.1278336553&rt=0&input=9110017\">\n"
|
||||
assertFineConnectionDetails("" //
|
||||
+ "<a href=\"/Stadtplan/index/mobil?language=d&location=,ADR,WGS84,13426558,52536061&label=10405 Bln Pankow, Christburger Str. 123\">10405 Bln Pankow, Christburger Str. 123</a>\n"
|
||||
+ "<br />\n" //
|
||||
+ "10 Min.\n" //
|
||||
+ "Fussweg\n" //
|
||||
+ "<br />\n" //
|
||||
+ "<a href=\"/Fahrinfo/bin/stboard.bin/dox?ld=0.1&n=2&i=c6.0318411.1278336553&rt=0&input=9110017\">\n" //
|
||||
+ "<strong>Prenzlauer Allee/Danziger Str. (Berlin)</strong>\n" //
|
||||
+ "</a>\n" //
|
||||
+ "<br />");
|
||||
+ "<br />\n");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void footwayWithoutLink()
|
||||
{
|
||||
assertFineConnectionDetails("18 Min.\n" //
|
||||
assertFineConnectionDetails("" //
|
||||
+ "18 Min.\n" //
|
||||
+ "Fussweg\n" //
|
||||
+ "<br />\n" //
|
||||
+ "<strong>Berlin, Deutschlandhalle</strong>\n" //
|
||||
+ "<br/>Messedamm 26; 14055 Berlin\n" //
|
||||
+ "<br />"); //
|
||||
+ "<br />\n");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void footwayStripped()
|
||||
public void footwayUebergang()
|
||||
{
|
||||
assertFineConnectionDetails("6 Min. " //
|
||||
+ "Fussweg" //
|
||||
+ "<br />" //
|
||||
+ "<a href=\"/Fahrinfo/bin/stboard.bin/dox?ld=0.1&n=2&i=00.072331.1278280801&rt=0&input=9024106\">" //
|
||||
+ "<strong>S Messe Nord/ICC (Berlin)</strong> "//
|
||||
+ "</a>" //
|
||||
+ "<br />");
|
||||
assertFineConnectionDetails("" //
|
||||
+ "17 Min.\n" //
|
||||
+ "Übergang\n" //
|
||||
+ "<br />\n" //
|
||||
+ "<a href=\"/Fahrinfo/bin/stboard.bin/dox?ld=0.1&n=2&i=fx.0101111.1283848693&rt=0&input=9025321\">\n" //
|
||||
+ "<strong>S Olympiastadion (Berlin)</strong>\n" //
|
||||
+ "</a>\n" //
|
||||
+ "<br />\n");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void trip()
|
||||
{
|
||||
assertFineConnectionDetails("<a href=\"/Fahrinfo/bin/stboard.bin/dox?ld=0.1&n=2&i=er.042611.1278315324&rt=0&input=9275402\">\n"
|
||||
+ "<strong>Brandenburg, Frhr.-v.-Thüngen-Str.</strong>\n"
|
||||
+ "</a>\n"
|
||||
+ "<br />\n"
|
||||
+ "ab 09:35\n"
|
||||
+ "<br/><strong>BusH/528</strong>\n"
|
||||
+ "Ri. Brandenburg, Potsdamer Str.\n"
|
||||
+ "<br />\n"
|
||||
+ "an 09:41\n"
|
||||
+ "<br />\n"
|
||||
+ "<a href=\"/Fahrinfo/bin/stboard.bin/dox?ld=0.1&n=2&i=er.042611.1278315324&rt=0&input=9275104\">\n"
|
||||
assertFineConnectionDetails("" //
|
||||
+ "<a href=\"/Fahrinfo/bin/stboard.bin/dox?ld=0.1&n=2&i=er.042611.1278315324&rt=0&input=9275402\">\n" //
|
||||
+ "<strong>Brandenburg, Frhr.-v.-Thüngen-Str.</strong>\n" //
|
||||
+ "</a>\n" //
|
||||
+ "<br />\n" //
|
||||
+ "ab 09:35\n" //
|
||||
+ "<br/><strong>BusH/528</strong>\n" //
|
||||
+ "Ri. Brandenburg, Potsdamer Str.\n" //
|
||||
+ "<br />\n" //
|
||||
+ "an 09:41\n" //
|
||||
+ "<br />\n" //
|
||||
+ "<a href=\"/Fahrinfo/bin/stboard.bin/dox?ld=0.1&n=2&i=er.042611.1278315324&rt=0&input=9275104\">\n" //
|
||||
+ "<strong>Brandenburg, Plauer Str.</strong>\n" //
|
||||
+ "</a>\n" //
|
||||
+ "<br />");
|
||||
+ "<br />\n");
|
||||
}
|
||||
|
||||
private void assertFineConnectionDetails(String s)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue