1
0
mirror of https://github.com/mgerb/spaghet synced 2026-01-08 11:52:49 +00:00
Files
spaghet/main.go
2019-04-27 10:58:56 -05:00

77 lines
1.3 KiB
Go
Executable File

package main
import (
"io/ioutil"
"log"
"os"
"os/signal"
"strconv"
"strings"
"syscall"
)
var nameCount = map[string]int{}
func main() {
files, err := ioutil.ReadDir("./")
if err != nil {
logError(err)
}
for _, f := range files {
fileName := f.Name()
if strings.HasSuffix(fileName, ".html") {
processFile(fileName)
}
}
output := []string{}
for key, val := range nameCount {
if !strings.HasPrefix(key, "The account has disconnected") {
output = append(output, key+" "+strconv.Itoa(val))
}
}
err = ioutil.WriteFile("output.txt", []byte(strings.Join(output, "\n")), 0755)
if err != nil {
logError(err)
}
}
func processFile(name string) {
file, err := ioutil.ReadFile(name)
if err != nil {
logError(err)
}
fileContent := string(file)
lines := strings.Split(fileContent, "\n")
for _, line := range lines {
i := strings.Split(line, "<b>")
if len(i) > 1 {
suf := strings.Split(i[1], "</b>")
if len(suf) > 1 {
out := strings.TrimSpace(suf[0])
out = strings.Trim(out, "\n")
nameCount[out]++
}
}
}
}
func logError(err error) {
log.Println(err)
sc := make(chan os.Signal, 1)
signal.Notify(sc, syscall.SIGINT, syscall.SIGTERM, os.Interrupt, os.Kill)
<-sc
}