summaryrefslogtreecommitdiff
path: root/vendor/github.com/fluffle/goirc/client.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/fluffle/goirc/client.go')
-rw-r--r--vendor/github.com/fluffle/goirc/client.go104
1 files changed, 0 insertions, 104 deletions
diff --git a/vendor/github.com/fluffle/goirc/client.go b/vendor/github.com/fluffle/goirc/client.go
deleted file mode 100644
index b71d706..0000000
--- a/vendor/github.com/fluffle/goirc/client.go
+++ /dev/null
@@ -1,104 +0,0 @@
-package main
-
-import (
- "bufio"
- "flag"
- "fmt"
- "os"
- "strings"
-
- irc "github.com/fluffle/goirc/client"
- "github.com/fluffle/goirc/logging/glog"
-)
-
-var host *string = flag.String("host", "irc.freenode.net", "IRC server")
-var channel *string = flag.String("channel", "#go-nuts", "IRC channel")
-
-func main() {
- flag.Parse()
- glog.Init()
-
- // create new IRC connection
- c := irc.SimpleClient("GoTest", "gotest")
- c.EnableStateTracking()
- c.HandleFunc("connected",
- func(conn *irc.Conn, line *irc.Line) { conn.Join(*channel) })
-
- // Set up a handler to notify of disconnect events.
- quit := make(chan bool)
- c.HandleFunc("disconnected",
- func(conn *irc.Conn, line *irc.Line) { quit <- true })
-
- // set up a goroutine to read commands from stdin
- in := make(chan string, 4)
- reallyquit := false
- go func() {
- con := bufio.NewReader(os.Stdin)
- for {
- s, err := con.ReadString('\n')
- if err != nil {
- // wha?, maybe ctrl-D...
- close(in)
- break
- }
- // no point in sending empty lines down the channel
- if len(s) > 2 {
- in <- s[0 : len(s)-1]
- }
- }
- }()
-
- // set up a goroutine to do parsey things with the stuff from stdin
- go func() {
- for cmd := range in {
- if cmd[0] == ':' {
- switch idx := strings.Index(cmd, " "); {
- case cmd[1] == 'd':
- fmt.Printf(c.String())
- case cmd[1] == 'n':
- parts := strings.Split(cmd, " ")
- username := strings.TrimSpace(parts[1])
- channelname := strings.TrimSpace(parts[2])
- _, userIsOn := c.StateTracker().IsOn(channelname, username)
- fmt.Printf("Checking if %s is in %s Online: %t\n", username, channelname, userIsOn)
- case cmd[1] == 'f':
- if len(cmd) > 2 && cmd[2] == 'e' {
- // enable flooding
- c.Config().Flood = true
- } else if len(cmd) > 2 && cmd[2] == 'd' {
- // disable flooding
- c.Config().Flood = false
- }
- for i := 0; i < 20; i++ {
- c.Privmsg("#", "flood test!")
- }
- case idx == -1:
- continue
- case cmd[1] == 'q':
- reallyquit = true
- c.Quit(cmd[idx+1 : len(cmd)])
- case cmd[1] == 's':
- reallyquit = true
- c.Close()
- case cmd[1] == 'j':
- c.Join(cmd[idx+1 : len(cmd)])
- case cmd[1] == 'p':
- c.Part(cmd[idx+1 : len(cmd)])
- }
- } else {
- c.Raw(cmd)
- }
- }
- }()
-
- for !reallyquit {
- // connect to server
- if err := c.ConnectTo(*host); err != nil {
- fmt.Printf("Connection error: %s\n", err)
- return
- }
-
- // wait on quit channel
- <-quit
- }
-}