mirror of
https://github.com/42wim/matterbridge.git
synced 2024-11-21 10:12:00 -08:00
Add support for JOIN, PART and CTCP_ACTION
This commit is contained in:
parent
d0cda03478
commit
b346ac868b
@ -56,6 +56,7 @@ channel="#matterbridge"
|
||||
url="http://mattermost.yourdomain.com/hooks/incomingwebhookkey"
|
||||
#port the bridge webserver will listen on
|
||||
port=9999
|
||||
showjoinpart=true #show irc users joining and parting
|
||||
```
|
||||
|
||||
### mattermost
|
||||
|
@ -18,6 +18,7 @@ type Config struct {
|
||||
Mattermost struct {
|
||||
URL string
|
||||
Port int
|
||||
ShowJoinPart bool
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -9,3 +9,4 @@ channel="#matterbridge"
|
||||
[mattermost]
|
||||
url="http://yourdomain/hooks/yourhookkey"
|
||||
port=9999
|
||||
showjoinpart=true
|
||||
|
@ -6,6 +6,7 @@ import (
|
||||
"github.com/thoj/go-ircevent"
|
||||
"log"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
@ -33,16 +34,31 @@ func (b *Bridge) createIRC(name string) *irc.Connection {
|
||||
log.Println("Joining", b.Config.IRC.Channel, "as", b.Config.IRC.Nick)
|
||||
i.Join(b.Config.IRC.Channel)
|
||||
i.AddCallback("PRIVMSG", b.handlePrivMsg)
|
||||
i.AddCallback("CTCP_ACTION", b.handlePrivMsg)
|
||||
if b.Config.Mattermost.ShowJoinPart {
|
||||
i.AddCallback("JOIN", b.handleJoinPart)
|
||||
i.AddCallback("PART", b.handleJoinPart)
|
||||
}
|
||||
return i
|
||||
}
|
||||
|
||||
func (b *Bridge) handlePrivMsg(event *irc.Event) {
|
||||
matterMessage := matterhook.OMessage{}
|
||||
matterMessage.Text = event.Message()
|
||||
if event.Code == "CTCP_ACTION" {
|
||||
matterMessage.Text = event.Nick + " "
|
||||
}
|
||||
matterMessage.Text += event.Message()
|
||||
matterMessage.UserName = "irc-" + event.Nick
|
||||
b.m.Send(matterMessage)
|
||||
}
|
||||
|
||||
func (b *Bridge) handleJoinPart(event *irc.Event) {
|
||||
matterMessage := matterhook.OMessage{}
|
||||
matterMessage.Text = "irc-" + event.Nick + " " + strings.ToLower(event.Code) + "s " + event.Message()
|
||||
matterMessage.UserName = b.Config.IRC.Nick
|
||||
b.m.Send(matterMessage)
|
||||
}
|
||||
|
||||
func (b *Bridge) handleMatter() {
|
||||
for {
|
||||
message := b.m.Receive()
|
||||
|
Loading…
Reference in New Issue
Block a user