54 lines
964 B
Go
54 lines
964 B
Go
package plugins
|
|
|
|
import (
|
|
"crypto/tls"
|
|
"fmt"
|
|
"ouichat/core"
|
|
|
|
"gopkg.in/irc.v3"
|
|
)
|
|
|
|
type IrcPlugin struct {
|
|
name string
|
|
client *irc.Client
|
|
messages chan *irc.Message
|
|
man *PluginManager
|
|
root *core.BufferNode
|
|
}
|
|
|
|
func NewIrcPlugin(name string) *IrcPlugin {
|
|
conn, err := tls.Dial("tcp", "acm.umn.edu:6669", &tls.Config{})
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
// messages := make(chan *irc.Message)
|
|
config := irc.ClientConfig{
|
|
Nick: "ouichat",
|
|
User: "ouichat",
|
|
Name: "ouichat",
|
|
Handler: irc.HandlerFunc(func(c *irc.Client, m *irc.Message) {
|
|
fmt.Printf("%+v\n", m)
|
|
// messages <- m
|
|
}),
|
|
}
|
|
client := irc.NewClient(conn, config)
|
|
return &IrcPlugin{
|
|
name: name,
|
|
client: client,
|
|
}
|
|
}
|
|
|
|
func(p*IrcPlugin) Name() string {
|
|
return p.name
|
|
}
|
|
|
|
func (p *IrcPlugin) Init(man *PluginManager, root *core.BufferNode) {
|
|
p.man = man
|
|
p.root = root
|
|
go p.client.Run()
|
|
}
|
|
|
|
func (p *IrcPlugin) Buffers() *core.BufferNode {
|
|
return p.root
|
|
}
|