Rework lysenko to use latest hugot, removing go-ircevent

This commit is contained in:
2016-10-14 23:34:58 +01:00
parent c093390efa
commit 62eaba8408
3 changed files with 44 additions and 93 deletions

View File

@@ -1,18 +1,17 @@
package main
import (
"context"
"flag"
"log"
"math/rand"
"strings"
"time"
"github.com/fluffle/goirc/client"
"github.com/tcolgate/hugot"
"github.com/tcolgate/hugot/adapters/irc"
irce "github.com/thoj/go-ircevent"
"golang.org/x/net/context"
"ur.gs/lysenko/handlers/deadline"
"ur.gs/lysenko/handlers/quotedb"
)
@@ -34,30 +33,14 @@ func init() {
func main() {
flag.Parse()
channelList := strings.Split(*channels, ",")
config := client.NewConfig(*nick)
config.Server = *host
config.Pass = *nickserv
config.SSL = *ssl
adapter := irc.New(config, channelList...)
conn := irce.IRC(*nick, *ident)
conn.UseTLS = *ssl
conn.Password = *nickserv
conn.Debug = true
conn.AddCallback("001", func(e *irce.Event) {
for _, channel := range channelList {
conn.Join(channel)
}
})
if err := conn.Connect(*host); err != nil {
log.Fatal(err)
}
defer conn.Quit()
adapter, err := irc.New(conn)
if err != nil {
log.Fatal(err)
}
ctx := context.Background()
db, err := quotedb.New(*quotes)
if err != nil {
log.Fatal(err)
@@ -65,12 +48,11 @@ func main() {
defer db.DB.Close()
mux := hugot.DefaultMux
mux.AddHearsHandler(&quotedb.AddQuoteHandler{QuoteDB: db})
mux.AddHearsHandler(deadline.NewHears(&quotedb.LastQuoteHandler{QuoteDB: db}))
mux.AddHearsHandler(deadline.NewHears(&quotedb.FindQuoteHandler{QuoteDB: db}))
mux.AddHearsHandler(deadline.NewHears(&quotedb.RandQuoteHandler{QuoteDB: db}))
mux.AddHearsHandler(deadline.NewHears(&quotedb.QuoteHandler{QuoteDB: db}))
mux.HandleCommand(&quotedb.AddQuoteHandler{QuoteDB: db})
mux.HandleCommand(deadline.NewCommand(&quotedb.LastQuoteHandler{QuoteDB: db}))
mux.HandleCommand(deadline.NewCommand(&quotedb.FindQuoteHandler{QuoteDB: db}))
mux.HandleCommand(deadline.NewCommand(&quotedb.RandQuoteHandler{QuoteDB: db}))
mux.HandleCommand(deadline.NewCommand(&quotedb.QuoteHandler{QuoteDB: db}))
go hugot.ListenAndServe(ctx, adapter, mux)
conn.Loop()
hugot.ListenAndServe(context.Background(), mux, adapter)
}