• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang client.SimpleClient函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/fluffle/goirc/client.SimpleClient函数的典型用法代码示例。如果您正苦于以下问题:Golang SimpleClient函数的具体用法?Golang SimpleClient怎么用?Golang SimpleClient使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了SimpleClient函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: CreateGobot

// Create a new Gobot from the given gesture config
func CreateGobot(config *Config) *Gobot {
	bot := &Gobot{config.BotName, config, nil, make(chan bool), nil}

	flag.Parse()
	bot.client = irc.SimpleClient(config.BotName)
	bot.client.SSL = config.SSL
	bot.client.Flood = config.DisableFloodProtection
	bot.client.EnableStateTracking()

	bot.client.AddHandler(irc.CONNECTED,
		func(conn *irc.Conn, line *irc.Line) {
			log.Println("Connected to", config.Hostname, "!")
			for _, channel := range config.Channels {
				conn.Join(channel)
			}
		})

	bot.client.AddHandler("JOIN", func(conn *irc.Conn, line *irc.Line) {
		if line.Nick == bot.Name {
			log.Printf("Joined %+v\n", line.Args)
		}
	})

	bot.client.AddHandler(irc.DISCONNECTED, func(conn *irc.Conn, line *irc.Line) {
		bot.quitter <- true
	})

	bot.client.AddHandler("PRIVMSG", func(conn *irc.Conn, line *irc.Line) {
		bot.messageReceived(conn, line)
	})

	return bot
}
开发者ID:blinsay,项目名称:gesture,代码行数:34,代码来源:gobot.go


示例2: Init

func Init() {
	lock.Lock()
	defer lock.Unlock()
	if irc != nil {
		return
	}

	if *server == "" {
		// Don't call logging.Fatal as we don't want a backtrace in this case
		logging.Error("--server option required. \nOptions are:\n")
		flag.PrintDefaults()
		os.Exit(1)
	}

	// Configure IRC client
	irc = client.SimpleClient(*nick, "boing", "not really sp0rkle")
	irc.SSL = *ssl
	irc.Flood = true

	HandleFunc(bot_connected, "connected")
	HandleFunc(bot_disconnected, "disconnected")

	// This is a special handler that dispatches commands from the command set
	HandleFunc(bot_command, "privmsg")
	// This is a special handler that triggers a rebuild and re-exec
	HandleFunc(bot_rebuild, "notice")
	// This is a special handler that triggers a shutdown and disconnect
	HandleFunc(bot_shutdown, "notice")

	CommandFunc(bot_help, "help", "If you need to ask, you're beyond help.")
}
开发者ID:pzsz,项目名称:sp0rkle,代码行数:31,代码来源:bot.go


示例3: main

func main() {
	flag.Parse()

	last_message = make(map[string]string)

	c := irc.SimpleClient(*nick)

	// Add handlers to do things here!
	// e.g. join a channel on connect.
	c.HandleFunc("connected",
		func(conn *irc.Conn, line *irc.Line) {
			log.Printf("Connected to %s as %s", c.Config().Server, c.Config().Me.Nick)
			conn.Join(*channel)
		})

	// And a signal on disconnect
	quit := make(chan bool)
	c.HandleFunc("disconnected",
		func(conn *irc.Conn, line *irc.Line) {
			log.Print("Disconnected")
			quit <- true
		})

	// Watch for messages
	c.HandleFunc("PRIVMSG", privmsg)

	// Tell client to connect.
	if err := c.ConnectTo(*server); err != nil {
		fmt.Printf("Connection error: %s\n", err)
		return
	}

	// Wait for disconnect
	<-quit
}
开发者ID:prattmic,项目名称:replacebot,代码行数:35,代码来源:replacebot.go


示例4: main

func main() {
	if len(os.Args) != 4 {
		log.Fatalf("Usage: %v nickname server channel", os.Args[0])
	}

	var nickname = os.Args[1]
	var server = os.Args[2]
	var channel = os.Args[3]

	log.Printf("Running Pipo")

	ns, err := nonsentence.New("nonsentence.db")
	if err != nil {
		log.Fatal(err)
	}
	defer ns.Close()

	quit := make(chan bool)

	client := irc.SimpleClient(nickname)

	client.HandleFunc(irc.CONNECTED, func(conn *irc.Conn, line *irc.Line) {
		conn.Join(channel)
	})

	client.HandleFunc(irc.DISCONNECTED, func(conn *irc.Conn, line *irc.Line) {
		quit <- true
	})

	client.HandleFunc(irc.PRIVMSG, func(conn *irc.Conn, line *irc.Line) {
		log.Printf("Message to %v: %v", line.Target(), line.Text())
		// If a channel message is received, store it
		if line.Target() == channel {
			// If the message mentioned my name, reply
			if strings.Contains(line.Text(), nickname) {
				saySomething(client, channel, ns)
			}
			// Ignore first word if it ends with a ':'
			var words = strings.Fields(line.Text())
			if (len(words) > 0) && strings.HasSuffix(words[0], ":") {
				words = words[1:]
			}
			if err := ns.Add(strings.Join(words, " ")); err != nil {
				log.Printf("Error while adding sentence: %v", err)
			}
		} else if !strings.HasPrefix(line.Target(), "#") {
			// If a private message is received, say something
			saySomething(client, channel, ns)
		}
	})

	log.Printf("Connecting...")
	if err := client.ConnectTo(server); err != nil {
		log.Fatal(err)
	}
	defer client.Quit("Terminating")
	log.Printf("Connected!")

	<-quit
}
开发者ID:GEPWNAGE,项目名称:Pipo,代码行数:60,代码来源:main.go


示例5: main

func main() {
	var p toml.Parser
	d := p.ParseFile("config/app.conf")
	twitch := Twitch{
		host:    d.GetString("twitch.host"),
		user:    d.GetString("twitch.user"),
		token:   d.GetString("twitch.token"),
		channel: "#" + d.GetString("twitch.channel"),
	}

	in := make(chan Input)
	go inputHandler(in)

	// make sure emulator window is open
	h := win32.FindWindow("DeSmuME", "DeSmuME 0.9.10 x64")
	if h == nil {
		panic("Couldn't find emulator window.")
	}
	fmt.Printf("Emulator Window: %v\n", h)

	// connect to TwitchTV chat
	c := irc.SimpleClient(twitch.user)

	c.AddHandler("connected", func(conn *irc.Conn, line *irc.Line) {
		c.Join(twitch.channel)
	})

	quit := make(chan bool)
	c.AddHandler("disconnected", func(conn *irc.Conn, line *irc.Line) {
		quit <- true
	})

	c.AddHandler("privmsg", func(conn *irc.Conn, line *irc.Line) {
		if line.Args[0] != twitch.channel {
			return
		}

		user, message := line.Nick, line.Args[1]
		key, ok := validKeys[message]
		if !ok {
			return
		}

		in <- Input{
			user:    user,
			message: message,
			key:     key,
		}
	})

	if err := c.Connect(twitch.host, twitch.token); err != nil {
		panic("Couldn't connect to TwitchTV.")
	}

	// keep the connection alive
	<-quit
}
开发者ID:vevix,项目名称:twitch-plays,代码行数:57,代码来源:main.go


示例6: Connect

func Connect() {
	conn = irc.SimpleClient("gmb0t", "gmb0t", "Game Master")
	conn.EnableStateTracking()
	conn.AddHandler("connected", postConnect)
	conn.AddHandler("disconnected", func(c *irc.Conn, l *irc.Line) { Quit <- true })
	conn.AddHandler("NOTICE", parseNotice)
	go parseCommands()

	conn.Connect(server)
}
开发者ID:cmende,项目名称:gmb0t,代码行数:10,代码来源:irc.go


示例7: main

func main() {
	quit = make(chan bool)
	c = irc.SimpleClient("cognito")

	setupIRCHandlers()

	if err := c.Connect(server); err != nil {
		fmt.Printf("Connection error: %s\n", err.Error())
	}

	<-quit
}
开发者ID:slackwalker,项目名称:gocognito,代码行数:12,代码来源:cognito.go


示例8: Open

// Open opens the service and returns a channel which all messages will be sent on.
func (i *IRC) Open() (<-chan Message, error) {
	i.Conn = client.SimpleClient(i.nick, i.nick, i.nick)
	i.Conn.Config().Version = i.nick
	i.Conn.Config().QuitMessage = ""

	i.Conn.HandleFunc("connected", i.onConnect)
	i.Conn.HandleFunc("disconnected", i.onDisconnect)
	i.Conn.HandleFunc(client.PRIVMSG, i.onMessage)

	go i.Conn.ConnectTo(i.host, i.password)

	return i.messageChan, nil
}
开发者ID:iopred,项目名称:bruxism,代码行数:14,代码来源:irc.go


示例9: Connect

func (i *IRC) Connect() {
	c := irc.SimpleClient(i.Nick)
	c.SSL = i.SSL
	connected := make(chan bool)
	c.AddHandler(irc.CONNECTED,
		func(conn *irc.Conn, line *irc.Line) {
			conn.Join(i.Channel)
			connected <- true
		})
	c.Connect(i.Server)
	<-connected
	i.ClientStarted = true
	i.Client = c
}
开发者ID:Jyggafey,项目名称:drone,代码行数:14,代码来源:irc.go


示例10: main

func main() {
	flag.Parse()
	readConfig(flag.Arg(0)) // config.go
	client := irc.SimpleClient(config.Nick)
	client.SSL = true
	client.AddHandler("connected", connected)
	client.AddHandler("privmsg", message)
	client.AddHandler("disconnected", disconnected)
	quit := make(chan bool)
	err := client.Connect(config.Server)
	if err != nil {
		fmt.Printf("Connection Error: %s\n", err)
	}
	<-quit
}
开发者ID:sadasant,项目名称:Go,代码行数:15,代码来源:VEbot.go


示例11: NewMettbot

func NewMettbot(nick string, args ...string) *Mettbot {
	bot := &Mettbot{
		irc.SimpleClient(nick, args...), // *irc.Conn
		make(chan bool),                 // Quitted
		make(chan string),               // QuotesPrnt
		make(chan string),               // MettsPrnt
		make(chan int),                  // QuotesLinesPrnt
		make(chan int),                  // MettsLinesPrnt
		make(chan string, 4),            // Input
		make(chan bool),                 // IsMett
		false,                           // ReallyQuit
		make(map[string]string), // Topics
		0, // MsgSinceMett
	}
	bot.EnableStateTracking()
	return bot
}
开发者ID:Ps0ke,项目名称:MettBot,代码行数:17,代码来源:main.go


示例12: main

func main() {
	// prepare our zmq sockets
	context, _ := zmq.NewContext()
	reqsocket, _ := context.NewSocket(zmq.REQ)
	subsocket, _ := context.NewSocket(zmq.SUB)
	defer context.Close()
	defer reqsocket.Close()
	defer subsocket.Close()
	reqsocket.Connect(REQ_SOCKET)
	subsocket.SetSockOptString(zmq.SUBSCRIBE, SUB_KEY)
	subsocket.Connect(SUB_SOCKET)

	// configure our IRC client
	c := irc.SimpleClient(NICK)

	// most of the functionality is arranged by adding handlers
	c.AddHandler("connected", func(conn *irc.Conn, line *irc.Line) {
		conn.Join(CHANNEL)
		sendMessage(reqsocket, statusMessage("joined "+CHANNEL))
		// spawn a goroutine that will do the ZMQ -> IRC bridge
		go zmqToIrcLoop(conn, subsocket)
	})

	quit := make(chan bool)
	c.AddHandler("disconnected", func(conn *irc.Conn, line *irc.Line) {
		sendMessage(reqsocket, statusMessage("disconnected"))
		quit <- true
	})
	// this is the handler that gets triggered whenever someone posts
	// in the channel
	c.AddHandler("PRIVMSG", func(conn *irc.Conn, line *irc.Line) {
		// forward messages from IRC -> zmq PUB socket
		if line.Nick != NICK {
			sendMessage(reqsocket, Message{"message", line.Nick, line.Args[1]})
		}
	})

	// Now we can connect
	if err := c.Connect("irc.freenode.net"); err != nil {
		sendMessage(reqsocket, statusMessage("error connecting: "+err.Error()))
		fmt.Printf("Connection error: %s\n", err.Error())
	}

	// Wait for disconnect
	<-quit
}
开发者ID:thraxil,项目名称:fitor,代码行数:46,代码来源:fitor.go


示例13: init

// init must be called first on a non-initialized irc
// client. It will connect with SSL to a given irc server using a given
// username, join a channel and wait for messages
func init() {
	var err error
	config, err = common.ReadConfigFrom(configurationFilename)
	if err != nil {
		panic(err)
	}

	// IRC INIT
	Log("Create irc client")
	ircClient = irc.SimpleClient(config.Get("ajaxchat", "user"))
	ircClient.EnableStateTracking()
	ircClient.SSL = true

	ircClient.AddHandler(irc.CONNECTED, func(conn *irc.Conn, line *irc.Line) { conn.Join(ircChannel) })
	ircClient.AddHandler(irc.DISCONNECTED, func(conn *irc.Conn, line *irc.Line) { Connect() })
	ircClient.AddHandler("privmsg", func(conn *irc.Conn, line *irc.Line) { FromIrcMessage <- createMessageFromIrc(line) })
}
开发者ID:uovobw,项目名称:gotapiri,代码行数:20,代码来源:ircchat.go


示例14: initServerConnection

func initServerConnection(server Server, quit chan bool) {
	c := irc.SimpleClient(server.Nick)

	c.SSL = server.SSL
	c.SSLConfig = &tls.Config{InsecureSkipVerify: true}

	c.AddHandler("connected",
		func(conn *irc.Conn, line *irc.Line) {
			for _, channel := range server.Channels {
				conn.Join(channel)
			}
		})
	c.AddHandler("disconnected", func(conn *irc.Conn, line *irc.Line) { quit <- true })
	c.AddHandler("privmsg", func(conn *irc.Conn, line *irc.Line) {
		matches := urlRegex.FindAllString(line.Args[1], -1)
		for _, match := range matches {
			if len(match) >= server.MinLength {
				blacklist := false

				for _, item := range server.Blacklist {

					if strings.Contains(match, item) {
						blacklist = true
						continue
					}
				}

				if blacklist {
					continue
				}

				uri, err := goisgd.Shorten(match)
				if err != nil {
					continue
				}
				conn.Privmsg(line.Args[0], uri)
			}
		}
	})

	// Tell client to connect
	if err := c.Connect(fmt.Sprintf("%s:%d", server.Server, server.Port), server.Password); err != nil {
		fmt.Printf("Connection error: %v\n", err)
	}
}
开发者ID:DDRBoxman,项目名称:LinkBot,代码行数:45,代码来源:linkbot.go


示例15: NewWeierBot

func NewWeierBot(server, nick, password string, channels []string) *WeierBot {
	w := &WeierBot{
		server:     server,
		client:     irc.SimpleClient(nick),
		log:        make(chan Message, 512),
		disconnect: make(chan bool),
	}
	w.client.Me.Name = nick
	w.client.Me.Ident = nick

	w.client.AddHandler("connected", func(conn *irc.Conn, line *irc.Line) {
		if password != "" {
			conn.Privmsg("NickServ", "identify "+password)
		}
		for _, ch := range channels {
			log.Printf("Joining %s\n", ch)
			conn.Join(ch)
		}
	})
	w.client.AddHandler("disconnected", func(conn *irc.Conn, line *irc.Line) {
		w.disconnect <- true
	})
	w.client.AddHandler("join", func(conn *irc.Conn, line *irc.Line) {
		if len(line.Args) >= 1 && strings.HasPrefix(line.Args[0], "#") {
			conn.Privmsg(line.Nick, fmt.Sprintf("Hallo %s, willkommen auf %s. "+
				"Dieser Channel wird unter http://weierbot.tux21b.org/ mitgespeichert.",
				line.Nick, line.Args[0]))
		}
	})
	w.client.AddHandler("privmsg", func(conn *irc.Conn, line *irc.Line) {
		if len(line.Args) < 2 {
			return
		}
		w.handleMessage(line.Args[0], Message{
			Nick:    line.Nick,
			Time:    line.Time,
			Message: line.Args[1],
		})
	})

	go w.writeLog()

	return w
}
开发者ID:nomatter01,项目名称:weierbot,代码行数:44,代码来源:weierbot.go


示例16: main

func main() {
	flag.Parse()

	// Compile regular expressions which match the greeting words if they
	// appear as a standalone word.
	for _, greetword := range strings.SplitN(*greetings, ",", -1) {
		re := regexp.MustCompile(`\b` + greetword + `\b`)
		greetings_re = append(greetings_re, re)
	}

	my_histogram = histogram.Load(*histogram_path)

	quit := make(chan bool)

	c := irc.SimpleClient("Eyo", "i3", "http://i3wm.org/")

	c.AddHandler("connected",
		func(conn *irc.Conn, line *irc.Line) {
			log.Printf("Connected, joining channel %s\n", *irc_channel)
			conn.Join(*irc_channel)
		})

	c.AddHandler("disconnected",
		func(conn *irc.Conn, line *irc.Line) { quit <- true })

	c.AddHandler("PRIVMSG", handleMessage)

	log.Printf("Connecting...\n")
	if err := c.Connect("chat.freenode.net"); err != nil {
		log.Printf("Connection error: %s\n", err.Error())
	}

	// program main loop
	for {
		select {
		case <-quit:
			log.Println("Disconnected. Reconnecting...")
			if err := c.Connect("chat.freenode.net"); err != nil {
				log.Printf("Connection error: %s\n", err.Error())
			}
		}
	}
	log.Fatalln("Fell out of the main loop?!")
}
开发者ID:stapelberg,项目名称:greetbot,代码行数:44,代码来源:greetbot.go


示例17: main

func main() {
	var err error

	db, err = sql.Open("sqlite3", "./plusplus.db")
	if err != nil {
		fmt.Println(err)
		return
	}
	defer db.Close()

	c := irc.SimpleClient("plusplusbot", "plusplusbot")
	c.EnableStateTracking()

	c.HandleFunc("connected", func(conn *irc.Conn, line *irc.Line) {
		for _, room := range os.Args[1:] {
			c.Join("#" + room)
		}
	})

	quit := make(chan bool)
	c.HandleFunc("disconnected", func(conn *irc.Conn, line *irc.Line) {
		quit <- true
	})

	c.HandleFunc("privmsg", func(conn *irc.Conn, line *irc.Line) {
		println(line.Src, line.Args[0], line.Args[1])
		if line.Args[1] == "!++" {
			go ranking(c, line)
		} else {
			parse(line.Args[1], func(nick string, plus int) {
				go plusplus(c, line, nick, plus)
			})
		}
	})

	for {
		if err := c.ConnectTo("irc.freenode.net:6667"); err != nil {
			fmt.Printf("Connection error: %s\n", err)
			return
		}
		<-quit
	}
}
开发者ID:mattn,项目名称:go-plusplusbot,代码行数:43,代码来源:plusplusbot.go


示例18: main

func main() {
	flag.Parse() // parses the logging flags.
	c := irc.SimpleClient("slugbot", "slugbot", "slugbot :: GoIRC guts")
	// Optionally, enable SSL
	c.SSL = true

	// Add handlers to do things here!
	// e.g. join a channel on connect.
	c.AddHandler("connected",
		func(conn *irc.Conn, line *irc.Line) { conn.Join("#candlepin") })
	// And a signal on disconnect
	quit := make(chan bool)
	c.AddHandler("disconnected",
		func(conn *irc.Conn, line *irc.Line) { quit <- true })

	// Tell client to connect
	if err := c.Connect("irc.freenode.net"); err != nil {
		fmt.Printf("Connection error: %s\n", err)
	}

	// Wait for disconnect
	<-quit
}
开发者ID:beav,项目名称:slugbot,代码行数:23,代码来源:slugbot.go


示例19: main

func main() {
	flag.Parse()

	// create new IRC connection
	c := irc.SimpleClient(*nick, "etherbot", "the etherpad robot")
	// c.EnableStateTracking()
	c.AddHandler("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.AddHandler("disconnected",
		func(conn *irc.Conn, line *irc.Line) { quit <- true })

	// Set up handlers for incoming messages
	c.AddHandler("PRIVMSG",
		func(conn *irc.Conn, line *irc.Line) {
			if match, err := regexp.MatchString(`https?://id\.etherpad\.mozilla\.org/.`, line.Args[1]); match && err == nil {
				re := regexp.MustCompile(`https?://id\.etherpad\.mozilla\.org/\S+`)
				pad := re.FindString(line.Args[1])
				if len(pad) > 0 {
					go func() {
						if isPrivate(pad) {
							c.Privmsg(line.Args[0], line.Nick+": Please make sure that etherpad is public. Thanks!")
						}
					}()
				}
			}
		})

	if err := c.Connect(*host); err != nil {
		fmt.Printf("Connection error: %s\n", err)
		return
	}

	<-quit
}
开发者ID:callahad,项目名称:etherbot,代码行数:37,代码来源:main.go


示例20: main

func main() {
	c := irc.SimpleClient(config.Nick, config.Ident, config.FullName)

	c.SSL = true

	c.AddHandler(irc.CONNECTED,
		func(conn *irc.Conn, line *irc.Line) {
			conn.Join(config.Channel)
			log.Println("Connected!")
		})

	quit := make(chan bool)

	c.AddHandler(irc.DISCONNECTED,
		func(conn *irc.Conn, line *irc.Line) { quit <- true })

	c.AddHandler("PRIVMSG", handleMessage)

	if err := c.Connect("irc.freenode.net", config.Nick+":"+config.IRCPass); err != nil {
		log.Fatalln("Connection error: %s\n", err)
	}

	<-quit
}
开发者ID:kravlin,项目名称:sadbot,代码行数:24,代码来源:main.go



注:本文中的github.com/fluffle/goirc/client.SimpleClient函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang client.Conn类代码示例发布时间:2022-05-23
下一篇:
Golang event.EventRegistry类代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap