package controllers;
import java.util.List;
import controllers.mapping.TimeseriesValueMapper;
import play.libs.Json;
import play.mvc.Result;
import uk.bl.monitrix.Global;
import uk.bl.monitrix.analytics.CrawlStatsAnalytics;
import uk.bl.monitrix.analytics.TimeseriesValue;
import uk.bl.monitrix.model.CrawlLog;
import uk.bl.monitrix.model.CrawlStats;
public class Timeline extends AbstractController {
private static CrawlLog log = Global.getBackend().getCrawlLog();
private static CrawlStats stats = Global.getBackend().getCrawlStats();
public static Result index() {
return ok(views.html.timeline.index.render(log));
}
public static Result getDatavolume() {
List<TimeseriesValue> datavolume = CrawlStatsAnalytics.getDatavolumeHistory(stats.getCrawlStats(), getMaxPoints());
return ok(Json.toJson(TimeseriesValueMapper.map(datavolume)));
}
public static Result getURLs() {
List<TimeseriesValue> urls = CrawlStatsAnalytics.getCrawledURLsHistory(stats.getCrawlStats(), getMaxPoints());
return ok(Json.toJson(TimeseriesValueMapper.map(urls)));
}
public static Result getNewHostsCrawled() {
List<TimeseriesValue> newHosts = CrawlStatsAnalytics.getNewHostsCrawledHistory(stats.getCrawlStats(), getMaxPoints());
return ok(Json.toJson(TimeseriesValueMapper.map(newHosts)));
}
public static Result getCompletedHosts() {
List<TimeseriesValue> completedHosts = CrawlStatsAnalytics.getCompletedHostsHistory(stats.getCrawlStats(), getMaxPoints());
return ok(Json.toJson(TimeseriesValueMapper.map(completedHosts)));
}
private static int getMaxPoints() {
return getQueryParamAsInt("maxpoints", 100);
}
}