70 lines · 1.4 KB · Go
RawDownload
package main import (	"fmt"	"github.com/bitly/go-notify"	"github.com/kballard/goirc/irc"	"log"	"strings") func main() {	log.SetFlags(log.LstdFlags | log.Lshortfile)	quit := make(chan bool, 1)	config := irc.Config{		Host: "chat.freenode.net", 		Nick:     "maozedong",		User:     "comicchat",		RealName: "comicchat", 		Init: func(hr irc.HandlerRegistry) {			hr.AddHandler(irc.CONNECTED, h_LoggedIn)			hr.AddHandler(irc.DISCONNECTED, func(*irc.Conn, irc.Line) {				log.Println("disconnected")				quit <- true			})			hr.AddHandler("PRIVMSG", h_PRIVMSG)			hr.AddHandler(irc.ACTION, h_ACTION)		},	} 	log.Println("Connecting")	if _, err := irc.Connect(config); err != nil {		fmt.Println("error:", err)		quit <- true	} 	go dohttp() 	<-quit	log.Println("Goodbye")} func h_LoggedIn(conn *irc.Conn, line irc.Line) {	conn.Join([]string{"#comicchat"}, nil)} var cnt = 0 func h_PRIVMSG(conn *irc.Conn, line irc.Line) {	log.Printf("[%s] %s> %s\n", line.Args[0], line.Src, line.Args[1])	if line.Args[1] == "!quit" {		conn.Quit("")	}	i := makeusercomic(line.Src.Nick, line.Args[1])	saveToPngFile(fmt.Sprintf("comic/%d.png", cnt), i)	url := fmt.Sprintf("/comic/%d.png", cnt) 	notify.Post("newimage", url) 	cnt++} func h_ACTION(conn *irc.Conn, line irc.Line) {	log.Printf("[%s] %s %s\n", line.Dst, line.Src, line.Args[0])	f := strings.Fields(line.Args[0])	if _, ok := faces[f[0]]; ok {		userface[line.Src.Nick] = f[0]	}}