summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-07-09 18:26:28 +0200
committerDimitri Sokolyuk <demon@dim13.org>2015-07-09 18:26:28 +0200
commita2eaa8cd75a5b167cf6dbd3dd8c6414cc4239f11 (patch)
treec80914e89704d8c88464f379db20c828c450a6a3 /main.go
parent62234560e59929ddde351750434a00d926d09288 (diff)
Readd metar
Diffstat (limited to 'main.go')
-rw-r--r--main.go38
1 files changed, 30 insertions, 8 deletions
diff --git a/main.go b/main.go
index 65be185..efb086e 100644
--- a/main.go
+++ b/main.go
@@ -5,6 +5,7 @@ import (
"flag"
"fmt"
"log"
+ "sort"
"strings"
"time"
@@ -30,11 +31,12 @@ type Commander interface {
}
type (
- Last string
- News string
- BSD string
- Theo string
- Help string
+ Last string
+ News string
+ BSD string
+ Theo string
+ Help string
+ Metar string
)
var (
@@ -98,12 +100,31 @@ func (_ BSD) Handle(conn *irc.Conn, line *irc.Line) {
func (v Help) String() string { return string(v) }
func (_ Help) Handle(conn *irc.Conn, line *irc.Line) {
+ var msg []string
for k, v := range commands {
- s := fmt.Sprintf("%4s: %v", k, v)
+ msg = append(msg, fmt.Sprintf("%-6s: %v", k, v))
+ }
+ sort.Sort(sort.StringSlice(msg))
+ for _, s := range msg {
conn.Privmsg(line.Target(), s)
}
}
+func (v Metar) String() string { return string(v) }
+func (_ Metar) Handle(conn *irc.Conn, line *irc.Line) {
+ f := strings.Fields(line.Text())
+ if len(f) > 1 {
+ m, err := FetchMetar(f[1])
+ if err != nil {
+ conn.Privmsg(line.Target(), err.Error())
+ return
+ }
+ for _, s := range m {
+ conn.Privmsg(line.Target(), s)
+ }
+ }
+}
+
func privmsg(conn *irc.Conn, line *irc.Line) {
log.Println(line)
f := strings.Fields(line.Text())
@@ -134,9 +155,10 @@ func init() {
flag.Parse()
Register("last", Last("return last 10 messages"))
Register("theo", Theo("Quote Theo De Raadt"))
- Register("news", News("Last LOR news (msg private to see all)"))
- Register("bsd", BSD("Last Undeadly news (msg private to see all)"))
+ Register("news", News("LOR news (msg private to see all)"))
+ Register("bsd", BSD("Undeadly news (msg private to see all)"))
Register("help", Help("This help"))
+ Register("metar", Metar("Current weather, arg: <ICAO>"))
}
func main() {