summaryrefslogtreecommitdiff
path: root/last.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-07-21 17:06:35 +0200
committerDimitri Sokolyuk <demon@dim13.org>2015-07-21 17:06:35 +0200
commitf22db3b8ba23c66dce23602c5e948aa7b6d5af31 (patch)
tree71eb4a2b0a636b739cea9f857b632fcf898be97e /last.go
parent612217ce228a955bae03b2b5f0552abbc84c9f03 (diff)
Split a bit
Diffstat (limited to 'last.go')
-rw-r--r--last.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/last.go b/last.go
new file mode 100644
index 0000000..c80e540
--- /dev/null
+++ b/last.go
@@ -0,0 +1,33 @@
+package main
+
+import (
+ "container/ring"
+ "fmt"
+ "time"
+
+ irc "github.com/fluffle/goirc/client"
+)
+
+type Last struct{ Command }
+
+var buffer = ring.New(10)
+
+func (_ Last) Handle(conn *irc.Conn, line *irc.Line) {
+ buffer.Do(func(v interface{}) {
+ if v != nil {
+ l := v.(*irc.Line)
+ s := fmt.Sprintf("%v <%v> %v",
+ l.Time.Format(time.Kitchen),
+ l.Nick, l.Text())
+ conn.Privmsg(line.Nick, s)
+ }
+ })
+}
+
+func init() {
+ Register("last", &Last{
+ Command{
+ Help: "Return last 10 messages",
+ },
+ })
+}