From 97a9ca24f3981494b7f37b199f655fa314c48787 Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Tue, 9 Dec 2014 16:52:02 +0100 Subject: [PATCH] Truncate list of versions --- analytics.go | 11 ++++++++++- main.go | 6 +++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/analytics.go b/analytics.go index 3cabb6c8e..99d2ac762 100644 --- a/analytics.go +++ b/analytics.go @@ -23,7 +23,7 @@ func (l analyticList) Len() int { } // Returns a list of frequency analytics for a given list of strings. -func analyticsFor(ss []string) []analytic { +func analyticsFor(ss []string, cutoff int) []analytic { m := make(map[string]int) t := 0 for _, s := range ss { @@ -37,6 +37,15 @@ func analyticsFor(ss []string) []analytic { } sort.Sort(analyticList(l)) + + if cutoff > 0 && len(l) > cutoff { + c := 0 + for _, i := range l[cutoff:] { + c += i.Count + } + l = append(l[:cutoff], analytic{"Others", c, 100 * float64(c) / float64(t)}) + } + return l } diff --git a/main.go b/main.go index d40bd06b5..07f9dfd2a 100644 --- a/main.go +++ b/main.go @@ -363,9 +363,9 @@ func getReport(key string) map[string]interface{} { r["key"] = key r["nodes"] = nodes r["categories"] = categories - r["versions"] = analyticsFor(versions) - r["platforms"] = analyticsFor(platforms) - r["os"] = analyticsFor(oses) + r["versions"] = analyticsFor(versions, 10) + r["platforms"] = analyticsFor(platforms, 0) + r["os"] = analyticsFor(oses, 0) reportCache = r