summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-02-20 16:23:49 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-02-20 16:23:49 +0100
commit2ef3065091a65080909a848a182a5b8750291f9a (patch)
treecceb738dd986504725b9d817a23a78e9372a46ca
parent222093dca7c3f74f0d45a486c4ed3c7be6ad0d93 (diff)
Drop score counter
-rw-r--r--main.go3
-rw-r--r--score.go98
-rw-r--r--top.go26
3 files changed, 0 insertions, 127 deletions
diff --git a/main.go b/main.go
index f12f0dd..c26bf9c 100644
--- a/main.go
+++ b/main.go
@@ -53,12 +53,9 @@ func main() {
if line.Public() && line.Nick != conn.Me().Nick {
go DetectFlood(conn, line)
Push(line)
- Count(line.Nick)
}
})
- go AutoSaveScore()
-
for n := 0; n < maxDiscon; n++ {
log.Println("Connect to", *server)
if err := c.ConnectTo(*server); err != nil {
diff --git a/score.go b/score.go
deleted file mode 100644
index b8243d2..0000000
--- a/score.go
+++ /dev/null
@@ -1,98 +0,0 @@
-package main
-
-import (
- "encoding/gob"
- "fmt"
- "log"
- "os"
- "sort"
- "time"
-)
-
-const gobfile = `score.gob`
-
-var score map[string]int
-
-type Score struct {
- Nick string
- Count int
- Percent float64
-}
-
-type Scores []Score
-
-func (s Scores) Len() int { return len(s) }
-func (s Scores) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
-func (s Scores) Less(i, j int) bool { return s[i].Count < s[j].Count }
-
-func NewScores(n int) (s Scores) {
- for k, v := range score {
- s = append(s, Score{
- Nick: k,
- Count: v,
- })
- }
- sort.Sort(sort.Reverse(s))
- if n > 0 && len(s) > n {
- s = s[:n]
- }
- var total int
- for _, v := range s {
- total += v.Count
- }
- for i := range s {
- s[i].Percent = 100.0 * float64(s[i].Count) / float64(total)
- }
- return
-}
-
-func loadScore() map[string]int {
- m := make(map[string]int)
- fd, err := os.Open(gobfile)
- if err != nil {
- return m
- }
- defer fd.Close()
- decoder := gob.NewDecoder(fd)
- if err := decoder.Decode(&m); err != nil {
- log.Fatal(err)
- }
- return m
-}
-
-func saveScore(m map[string]int) {
- fd, err := os.Create(gobfile)
- if err != nil {
- log.Fatal(err)
- }
- defer fd.Close()
- encoder := gob.NewEncoder(fd)
- if err := encoder.Encode(m); err != nil {
- log.Fatal(err)
- }
-}
-
-func (s Score) String() string {
- return fmt.Sprintf("%v (%v/%.1f%%)", s.Nick, s.Count, s.Percent)
-}
-
-func (s Scores) String() (ret string) {
- for n, sc := range s {
- ret += fmt.Sprintf("%3d. %v", n+1, sc)
- }
- return
-}
-
-func init() {
- score = loadScore()
-}
-
-func Count(nick string) {
- score[nick]++
-}
-
-func AutoSaveScore() {
- for range time.Tick(time.Minute) {
- saveScore(score)
- }
-}
diff --git a/top.go b/top.go
deleted file mode 100644
index db0c8c2..0000000
--- a/top.go
+++ /dev/null
@@ -1,26 +0,0 @@
-package main
-
-import (
- "fmt"
-
- irc "github.com/fluffle/goirc/client"
-)
-
-type Top struct{ Command }
-
-func (_ Top) Handle(conn *irc.Conn, line *irc.Line) {
- n := 20
- if line.Public() {
- n = 10
- }
- s := fmt.Sprint(NewScores(n))
- conn.Notice(line.Target(), s)
-}
-
-func (_ Top) Help() string {
- return "Top 10 flooder (msg private to see top 100)"
-}
-
-func init() {
- Register("top", &Top{})
-}