diff --git a/mqtt.go b/mqtt.go index 5d1855c..d0e2e26 100644 --- a/mqtt.go +++ b/mqtt.go @@ -54,7 +54,7 @@ func MqttSay(message, nick string) error { func MqttIrc(src, msg string) error { payload := map[string]interface{}{ "user": src, - "who": msg, + "msg": msg, } j, err := json.Marshal(payload) if err != nil { @@ -106,6 +106,24 @@ func MqttIrcPart(who string) error { }) } +func MqttIrcQuit(who string) error { + payload := map[string]interface{}{ + "quit": who, + } + j, err := json.Marshal(payload) + if err != nil { + return err + } + + // Publish a message. + return mqttcli.Publish(&client.PublishOptions{ + QoS: mqtt.QoS0, + // TODO: Channel hardcoded, should not relay privmsg and so on + TopicName: []byte("irc/techinc"), + Message: j, + }) +} + func MqttStop() { defer mqttcli.Terminate() } diff --git a/simple.go b/simple.go index 7e58b00..ce58e2c 100644 --- a/simple.go +++ b/simple.go @@ -234,6 +234,11 @@ func part(e *irc.Event) { go MqttIrcPart(e.Nick) } +func quit(e *irc.Event) { + // TODO CHANNEL + go MqttIrcQuit(e.Nick) +} + func privmsg(e *irc.Event) { user_or_chan := e.Arguments[0] @@ -291,6 +296,7 @@ func main() { irccon.AddCallback("PRIVMSG", privmsg) irccon.AddCallback("JOIN", join) irccon.AddCallback("PART", part) + irccon.AddCallback("QUIT", quit) err := irccon.Connect(serverssl) if err != nil { fmt.Printf("Err %s", err)