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] }}
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]
}
}