/[projects]/android/TrainInfoService/src/dk/thoerup/traininfoservice/banedk/CompareStations.java
ViewVC logotype

Contents of /android/TrainInfoService/src/dk/thoerup/traininfoservice/banedk/CompareStations.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1451 - (show annotations) (download)
Thu May 5 11:21:11 2011 UTC (13 years ago) by torben
File size: 3133 byte(s)
Add link to banedk
1 package dk.thoerup.traininfoservice.banedk;
2
3 import java.io.IOException;
4 import java.io.PrintWriter;
5 import java.net.URL;
6 import java.util.Map;
7 import java.util.Set;
8 import java.util.TreeMap;
9 import java.util.TreeSet;
10
11 import javax.servlet.ServletException;
12 import javax.servlet.annotation.WebServlet;
13 import javax.servlet.http.HttpServlet;
14 import javax.servlet.http.HttpServletRequest;
15 import javax.servlet.http.HttpServletResponse;
16
17 import org.jsoup.nodes.Document;
18 import org.jsoup.nodes.Element;
19 import org.jsoup.select.Elements;
20
21 import dk.thoerup.android.traininfo.common.StationBean;
22 import dk.thoerup.android.traininfo.common.StationEntry;
23 import dk.thoerup.circuitbreaker.CircuitBreaker;
24 import dk.thoerup.circuitbreaker.CircuitBreakerManager;
25 import dk.thoerup.traininfoservice.db.StationDAO;
26
27
28 @WebServlet(urlPatterns={"/CompareStations"})
29 public class CompareStations extends HttpServlet {
30 private static final long serialVersionUID = 1L;
31
32
33 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
34 CircuitBreaker cb = CircuitBreakerManager.getManager().getCircuitBreaker("banedk");
35
36 JsoupInvocation jsoup = new JsoupInvocation(new URL("http://trafikinfo.bane.dk/Trafikinformation/Stationsliste"), 5000);
37
38 Map<String,String> banedkStations = new TreeMap<String,String>();
39 Set<String> dbStations = new TreeSet<String>();
40
41
42 try {
43 Document doc = (Document) cb.invoke(jsoup);
44
45 Elements tables = doc.getElementsByClass("Oversigt");
46
47 for(Element e : tables) {
48 if (e.tagName().equals("table") ){
49 Elements links = e.getElementsByTag("a");
50 for (Element link : links) {
51 banedkStations.put( link.text(), link.attr("href") );
52 }
53 }
54 }
55
56 StationDAO dao = new StationDAO();
57 StationBean bean = dao.dumpAll();
58 for (StationEntry station : bean.entries) {
59 if (station.isRegional() || station.isStrain()) {
60 dbStations.add(station.getName());
61 }
62 }
63
64 } catch (Exception e) {
65 throw new ServletException(e);
66 }
67
68
69
70 StringBuilder sb = new StringBuilder();
71
72 sb.append("<h2>stations on website not in db</h2>");
73 sb.append("<ul>");
74 Set<String> tmpDbStations = new TreeSet<String>( dbStations );
75 Set<String> tmpBanedkStations = new TreeSet<String>( banedkStations.keySet()) ;
76 tmpBanedkStations.removeAll(tmpDbStations);
77 for(String s : tmpBanedkStations) {
78 String uri = banedkStations.get(s);
79 sb.append( "<li><a href='http://trafikinfo.bane.dk" + uri + "'>"+ s + "</a></li>" );
80 }
81 sb.append("</ul>");
82
83
84 sb.append("<h2>stations in db not on website </h2>");
85 sb.append("<ul>");
86 tmpDbStations = new TreeSet<String>( dbStations );
87 tmpBanedkStations = new TreeSet<String>( banedkStations.keySet() ) ;
88 tmpDbStations.removeAll(tmpBanedkStations);
89 for(String s : tmpDbStations) {
90 sb.append( "<li>" + s + "</li>" );
91 }
92 sb.append("</ul>");
93
94
95 PrintWriter out = response.getWriter();
96 out.print(sb.toString());
97
98
99
100 }
101
102 }

  ViewVC Help
Powered by ViewVC 1.1.20