parent
23b632ae86
commit
ebf31d91bb
|
@ -8,15 +8,15 @@ import (
|
|||
)
|
||||
|
||||
func channeljoin(output chan irc.Message, msg irc.Message) {
|
||||
for _, channel := range C.Lookup(msg.Context, "Channels").([]string) {
|
||||
for _, channel := range C.Lookup(*msg.Context, "Channels").([]interface{}) {
|
||||
log.Println(msg.Context.Network, "joining channel", channel)
|
||||
output <- irc.Message{
|
||||
Command: "JOIN",
|
||||
Params: []string{channel},
|
||||
Params: []string{channel.(string)},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func init() {
|
||||
// AddCallback("001", "channel join", channeljoin)
|
||||
AddCallback("001", "channel join", channeljoin)
|
||||
}
|
||||
|
|
18
irc/irc.go
18
irc/irc.go
|
@ -7,6 +7,8 @@ import (
|
|||
"net"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
. "github.com/arachnist/gorepost/config"
|
||||
)
|
||||
|
||||
const delim byte = '\n'
|
||||
|
@ -51,6 +53,7 @@ func (c *Connection) Receiver() {
|
|||
for {
|
||||
c.conn.SetReadDeadline(time.Now().Add(time.Second * 600))
|
||||
raw, err := c.reader.ReadString(delim)
|
||||
var src, tgt string
|
||||
if err != nil {
|
||||
log.Println(c.Network, "error reading message", err.Error())
|
||||
log.Println(c.Network, "closing Receiver")
|
||||
|
@ -68,6 +71,21 @@ func (c *Connection) Receiver() {
|
|||
} else {
|
||||
log.Println(c.Network, "<--", msg.String())
|
||||
}
|
||||
if msg.Params == nil {
|
||||
tgt = ""
|
||||
} else {
|
||||
tgt = msg.Params[0]
|
||||
}
|
||||
if msg.Prefix == nil {
|
||||
src = ""
|
||||
} else {
|
||||
src = msg.Prefix.Name
|
||||
}
|
||||
msg.Context = &Context{
|
||||
Network: c.Network,
|
||||
Source: src,
|
||||
Target: tgt,
|
||||
}
|
||||
select {
|
||||
case c.Output <- *msg:
|
||||
case <-c.quitrecv:
|
||||
|
|
|
@ -154,7 +154,7 @@ func (p *Prefix) writeTo(buffer *bytes.Buffer) {
|
|||
//
|
||||
// <crlf> ::= CR LF
|
||||
type Message struct {
|
||||
Context
|
||||
*Context
|
||||
*Prefix
|
||||
Command string
|
||||
Params []string
|
||||
|
|
Loading…
Reference in New Issue