Feat: Add total and unique commands counter
This commit is contained in:
parent
ac607faa7f
commit
548cb7cb39
@ -42,7 +42,7 @@ func handleUpload(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
commandCounts, categories, pipeRedirectionCounts, commonPatterns := ProcessHistory(file)
|
||||
totalCommands, uniqueCommands, commandCounts, categories, pipeRedirectionCounts, commonPatterns := ProcessHistory(file)
|
||||
|
||||
limit := os.Getenv("TOP_N_COMMANDS")
|
||||
limitInt, err := strconv.Atoi(limit)
|
||||
@ -78,7 +78,9 @@ func handleUpload(w http.ResponseWriter, r *http.Request) {
|
||||
commonPatternStats := ConvertAndSort(commonPatterns, limitInt)
|
||||
stats["commonPatternStats"] = commonPatternStats
|
||||
|
||||
// Pipe counts
|
||||
// Counts
|
||||
stats["total"] = totalCommands
|
||||
stats["unique"] = uniqueCommands
|
||||
stats["pipeRedirectionCounts"] = pipeRedirectionCounts
|
||||
|
||||
// Save results
|
||||
|
@ -12,15 +12,15 @@ type CommandStat struct {
|
||||
Count int
|
||||
}
|
||||
|
||||
func ProcessHistory(file multipart.File) (map[string]int, map[string]int, map[string]int, map[string]int) {
|
||||
func ProcessHistory(file multipart.File) (int, int, map[string]int, map[string]int, map[string]int, map[string]int) {
|
||||
commandCounts := make(map[string]int)
|
||||
totalCommands := 0
|
||||
categories := make(map[string]int)
|
||||
|
||||
pipeRedirectionCounts := make(map[string]int)
|
||||
commonPatterns := make(map[string]int)
|
||||
re := regexp.MustCompile(`\S+\.(log|txt|conf|json)`)
|
||||
|
||||
// Reset the file pointer to the beginning (if needed)
|
||||
if seeker, ok := file.(multipart.File); ok {
|
||||
seeker.Seek(0, 0)
|
||||
}
|
||||
@ -32,6 +32,7 @@ func ProcessHistory(file multipart.File) (map[string]int, map[string]int, map[st
|
||||
continue
|
||||
}
|
||||
|
||||
totalCommands++
|
||||
commandCounts[command]++
|
||||
|
||||
if strings.Contains(command, "git") {
|
||||
@ -53,9 +54,10 @@ func ProcessHistory(file multipart.File) (map[string]int, map[string]int, map[st
|
||||
for _, match := range matches {
|
||||
commonPatterns[match]++
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return commandCounts, categories, pipeRedirectionCounts, commonPatterns
|
||||
return totalCommands, len(commandCounts), commandCounts, categories, pipeRedirectionCounts, commonPatterns
|
||||
}
|
||||
|
||||
func GenerateStats(commandCounts map[string]int, categories map[string]int, commonPatterns map[string]int) map[string]interface{} {
|
||||
|
@ -27,6 +27,10 @@
|
||||
<h2 class="text-4xl sm:text-3xl font-semibold text-center text-gray-100 mb-6">
|
||||
Command Statistics
|
||||
</h2>
|
||||
<ul>
|
||||
<li class="text-center">Total commands: <span class="font-semibold text-blue-400">{{.total}}</span></li>
|
||||
<li class="text-center">Unique commands: <span class="font-semibold text-blue-400">{{.unique}}</span></li>
|
||||
</ul>
|
||||
|
||||
<div class="chart-container">
|
||||
<h2 class="text-2xl font-bold text-gray-200 mb-4">Top Commands Chart</h2>
|
||||
|
@ -117,7 +117,7 @@ func createBarChart(stats []CommandStat) *charts.Bar {
|
||||
}
|
||||
|
||||
bar.SetXAxis(commands).
|
||||
AddSeries("Freq", generateBarItems(counts))
|
||||
AddSeries("Frequency", generateBarItems(counts))
|
||||
|
||||
return bar
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user