package at.chille.crawler.analysis; import at.chille.crawler.database.model.*; import at.chille.crawler.database.repository.*; public class AnalysisListHosts extends Analysis { public AnalysisListHosts() { super(); } public AnalysisListHosts(boolean showDetails) { super(showDetails); } public AnalysisListHosts(long useCrawlingSessionID, boolean showDetails) { super(useCrawlingSessionID, showDetails); } @Override public void init() { this.name = "Hosts"; this.description = "List all Hosts"; } @Override public int analyze() { CrawlingSessionRepository csr = DatabaseManager.getInstance() .getCrawlingSessionRepository(); for (CrawlingSession cs : csr.findAll()) { out.println(cs.getTimeStarted() + " - " + cs.getDescription()); long totalHosts = cs.getHosts().size(); long totalPages = 0L; long totalTodo = 0L; long totalCerts = 0L; long totalHeaders = 0L; for (HostInfo hi : cs.getHosts().values()) { totalPages += hi.getPages().size(); totalTodo += hi.getTodoUrls().size(); for (PageInfo pi : hi.getPages().values()) totalHeaders += pi.getHeaders().size(); if (hi.getCert().size() > 0) totalCerts++; if (this.showDetails) { out.println(" - " + hi.getHostName() + ": (" + hi.getPages().size() + "/todo:" + hi.getTodoUrls().size() + ")"); if (hi.getCipherSuite() != null) { out.println(" + " + hi.getCipherSuite() + ", " + hi.getSslProtocol() + ", " + hi.getWantsClientAuth() + ", " + hi.getNeedsClientAuth() + ", " + hi.getCert().size()); } } } out.println("Number of Hosts: " + totalHosts); out.println("Number of Pages: " + totalPages); out.println("Number of TODO: " + totalTodo); out.println("Number of Certs: " + totalCerts); out.println("Number of Headers: " + totalHeaders); } return 0; } }