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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1449 by torben, Thu May 5 10:23:30 2011 UTC revision 1693 by torben, Fri Feb 24 19:10:18 2012 UTC
# Line 3  package dk.thoerup.traininfoservice.bane Line 3  package dk.thoerup.traininfoservice.bane
3  import java.io.IOException;  import java.io.IOException;
4  import java.io.PrintWriter;  import java.io.PrintWriter;
5  import java.net.URL;  import java.net.URL;
6  import java.util.ArrayList;  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;  import javax.servlet.ServletException;
12  import javax.servlet.annotation.WebServlet;  import javax.servlet.annotation.WebServlet;
# Line 32  public class CompareStations extends Htt Line 35  public class CompareStations extends Htt
35                                    
36                  JsoupInvocation jsoup = new JsoupInvocation(new URL("http://trafikinfo.bane.dk/Trafikinformation/Stationsliste"), 5000);                  JsoupInvocation jsoup = new JsoupInvocation(new URL("http://trafikinfo.bane.dk/Trafikinformation/Stationsliste"), 5000);
37                                    
38                  ArrayList<String> banedkStations = new ArrayList<String>();                  Map<String,String> banedkStations = new TreeMap<String,String>();
39                  ArrayList<String> dbStations = new ArrayList<String>();                  Set<String> dbStations = new TreeSet<String>();
40                    
41                    StationDAO dao = new StationDAO();
42                                    
43                  try {                  try {
44                          Document doc = (Document) cb.invoke(jsoup);                          Document doc = (Document) cb.invoke(jsoup);
# Line 43  public class CompareStations extends Htt Line 48  public class CompareStations extends Htt
48                          for(Element e : tables) {                          for(Element e : tables) {
49                                  if (e.tagName().equals("table") ){                                  if (e.tagName().equals("table") ){
50                                          Elements links = e.getElementsByTag("a");                                          Elements links = e.getElementsByTag("a");
51                                          for (Element link : links) {                                          for (Element link : links) {                                            
52                                                  banedkStations.add( link.text() );                                                  banedkStations.put( link.text(), link.attr("href") );
53                                          }                                          }
54                                  }                                  }
55                          }                          }
56    
                         StationDAO dao = new StationDAO();  
57                          StationBean bean = dao.dumpAll();                          StationBean bean = dao.dumpAll();
58                          for (StationEntry station : bean.entries) {                          for (StationEntry station : bean.entries) {
59                                  if (station.isRegional() || station.isStrain()) {                                  if (station.isRegional() || station.isStrain()) {
# Line 67  public class CompareStations extends Htt Line 71  public class CompareStations extends Htt
71                                    
72                  sb.append("<h2>stations on website not in db</h2>");                  sb.append("<h2>stations on website not in db</h2>");
73                  sb.append("<ul>");                  sb.append("<ul>");
74                  ArrayList<String> tmpDbStations = new ArrayList<String>( dbStations );                  Set<String> tmpDbStations = new TreeSet<String>( dbStations );
75                  ArrayList<String> tmpBanedkStations = new ArrayList<String>( banedkStations) ;                  Set<String> tmpBanedkStations = new TreeSet<String>( banedkStations.keySet()) ;
76                  tmpBanedkStations.removeAll(tmpDbStations);                  tmpBanedkStations.removeAll(tmpDbStations);
77    
78                    
79    
80                  for(String s : tmpBanedkStations) {                  for(String s : tmpBanedkStations) {
81                          sb.append( "<li>" + s + "</li>" );                          String uri = banedkStations.get(s);
82                            String disabled = "";
83                            String data = hasData(uri);
84                            
85                            try {
86                                    boolean tmpdisabled = dao.hasDisabledStation(s);
87                                    if (tmpdisabled == true)
88                                            disabled = "disabled";
89                            } catch (Exception e) {
90                                    throw new ServletException(e);
91                            }
92                            
93                            sb.append( "<li><a href='http://trafikinfo.bane.dk" + uri + "'>" + s + "</a>&nbsp;&nbsp;" + data + " - " + disabled + "</li>" );
94                  }                                                }                              
95                  sb.append("</ul>");                  sb.append("</ul>");
96    
97                                    
98                  sb.append("<h2>stations in db not on website </h2>");                  sb.append("<h2>stations in db not on website </h2>");
99                  sb.append("<ul>");                  sb.append("<ul>");
100                  tmpDbStations = new ArrayList<String>( dbStations );                  tmpDbStations = new TreeSet<String>( dbStations );
101                  tmpBanedkStations = new ArrayList<String>( banedkStations) ;                  tmpBanedkStations = new TreeSet<String>( banedkStations.keySet() ) ;
102                  tmpDbStations.removeAll(tmpBanedkStations);                  tmpDbStations.removeAll(tmpBanedkStations);
103                  for(String s : tmpDbStations) {                  for(String s : tmpDbStations) {
104                          sb.append( "<li>" + s + "</li>" );                          sb.append( "<li>" + s + "</li>" );
# Line 90  public class CompareStations extends Htt Line 109  public class CompareStations extends Htt
109                  PrintWriter out = response.getWriter();                  PrintWriter out = response.getWriter();
110                  out.print(sb.toString());                  out.print(sb.toString());
111                                    
112            }
113            
114            String hasData(String uri) {
115                    String returnVal = "unknown";
116                                    
117                    try {
118                            CircuitBreaker cb = CircuitBreakerManager.getManager().getCircuitBreaker("banedk");
119                            
120                            JsoupInvocation jsoup = new JsoupInvocation(new URL("http://trafikinfo.bane.dk" + uri), 5000);
121                            
122                            Document doc = (Document) cb.invoke(jsoup);
123                            
124                            Element tabel = doc.getElementById("afgangtabel");
125                            if ( tabel != null) {
126                                    returnVal = "<font color='red'>Data!</font>";
127                            } else {
128                                    returnVal =  "";
129                            }
130                            
131                    } catch (Exception e) {
132                            System.out.println( e.getMessage() );
133                    }
134                                    
135                    return returnVal;
136          }          }
137    
138    
139  }  }

Legend:
Removed from v.1449  
changed lines
  Added in v.1693

  ViewVC Help
Powered by ViewVC 1.1.20