fix changes xmpp lib and log error on send
This commit is contained in:
parent
006a178d13
commit
2435b9b73b
|
@ -1,47 +1,70 @@
|
||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/bdlm/log"
|
||||||
|
|
||||||
"gosrc.io/xmpp"
|
"gosrc.io/xmpp"
|
||||||
|
"gosrc.io/xmpp/stanza"
|
||||||
)
|
)
|
||||||
|
|
||||||
func NotifyImage(client *xmpp.Client, hook Hook, url string, desc string) {
|
func NotifyImage(client *xmpp.Client, hook Hook, url string, desc string) {
|
||||||
msg := xmpp.Message{
|
msg := stanza.Message{
|
||||||
Attrs: xmpp.Attrs{Type: xmpp.MessageTypeGroupchat},
|
Attrs: stanza.Attrs{Type: stanza.MessageTypeGroupchat},
|
||||||
Body: url,
|
Body: url,
|
||||||
Extensions: []xmpp.MsgExtension{
|
Extensions: []stanza.MsgExtension{
|
||||||
xmpp.OOB{URL: url, Desc: desc},
|
stanza.OOB{URL: url, Desc: desc},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, muc := range hook.NotifyMuc {
|
for _, muc := range hook.NotifyMuc {
|
||||||
msg.To = muc
|
msg.To = muc
|
||||||
client.Send(msg)
|
if err := client.Send(msg); err != nil {
|
||||||
|
log.WithFields(map[string]interface{}{
|
||||||
|
"muc": muc,
|
||||||
|
"url": url,
|
||||||
|
}).Errorf("error on image notify: %s", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
msg.Type = xmpp.MessageTypeChat
|
msg.Type = stanza.MessageTypeChat
|
||||||
for _, user := range hook.NotifyUser {
|
for _, user := range hook.NotifyUser {
|
||||||
msg.To = user
|
msg.To = user
|
||||||
client.Send(msg)
|
if err := client.Send(msg); err != nil {
|
||||||
|
log.WithFields(map[string]interface{}{
|
||||||
|
"user": user,
|
||||||
|
"url": url,
|
||||||
|
}).Errorf("error on image notify: %s", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func Notify(client *xmpp.Client, hook Hook, text, html string) {
|
func Notify(client *xmpp.Client, hook Hook, text, html string) {
|
||||||
msg := xmpp.Message{
|
msg := stanza.Message{
|
||||||
Attrs: xmpp.Attrs{Type: xmpp.MessageTypeGroupchat},
|
Attrs: stanza.Attrs{Type: stanza.MessageTypeGroupchat},
|
||||||
Body: text,
|
Body: text,
|
||||||
Extensions: []xmpp.MsgExtension{
|
Extensions: []stanza.MsgExtension{
|
||||||
xmpp.HTML{Body: xmpp.HTMLBody{InnerXML: html}},
|
stanza.HTML{Body: stanza.HTMLBody{InnerXML: html}},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, muc := range hook.NotifyMuc {
|
for _, muc := range hook.NotifyMuc {
|
||||||
msg.To = muc
|
msg.To = muc
|
||||||
client.Send(msg)
|
if err := client.Send(msg); err != nil {
|
||||||
|
log.WithFields(map[string]interface{}{
|
||||||
|
"muc": muc,
|
||||||
|
"text": text,
|
||||||
|
}).Errorf("error on notify: %s", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
msg.Type = xmpp.MessageTypeChat
|
msg.Type = stanza.MessageTypeChat
|
||||||
for _, user := range hook.NotifyUser {
|
for _, user := range hook.NotifyUser {
|
||||||
msg.To = user
|
msg.To = user
|
||||||
client.Send(msg)
|
if err := client.Send(msg); err != nil {
|
||||||
|
log.WithFields(map[string]interface{}{
|
||||||
|
"user": user,
|
||||||
|
"text": text,
|
||||||
|
}).Errorf("error on notify: %s", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
45
xmpp.go
45
xmpp.go
|
@ -3,26 +3,37 @@ package main
|
||||||
import (
|
import (
|
||||||
"github.com/bdlm/log"
|
"github.com/bdlm/log"
|
||||||
"gosrc.io/xmpp"
|
"gosrc.io/xmpp"
|
||||||
|
"gosrc.io/xmpp/stanza"
|
||||||
)
|
)
|
||||||
|
|
||||||
var client *xmpp.Client
|
var client *xmpp.Client
|
||||||
var mucs []string
|
var mucs []string
|
||||||
|
|
||||||
func notify(text string) {
|
func notify(text string) {
|
||||||
msg := xmpp.Message{
|
msg := stanza.Message{
|
||||||
Attrs: xmpp.Attrs{Type: xmpp.MessageTypeGroupchat},
|
Attrs: stanza.Attrs{Type: stanza.MessageTypeGroupchat},
|
||||||
Body: text,
|
Body: text,
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, muc := range config.StartupNotifyMuc {
|
for _, muc := range config.StartupNotifyMuc {
|
||||||
msg.To = muc
|
msg.To = muc
|
||||||
client.Send(msg)
|
if err := client.Send(msg); err != nil {
|
||||||
|
log.WithFields(map[string]interface{}{
|
||||||
|
"muc": muc,
|
||||||
|
"msg": text,
|
||||||
|
}).Errorf("error on startup notify: %s", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
msg.Type = xmpp.MessageTypeChat
|
msg.Type = stanza.MessageTypeChat
|
||||||
for _, user := range config.StartupNotifyUser {
|
for _, user := range config.StartupNotifyUser {
|
||||||
msg.To = user
|
msg.To = user
|
||||||
client.Send(msg)
|
if err := client.Send(msg); err != nil {
|
||||||
|
log.WithFields(map[string]interface{}{
|
||||||
|
"user": user,
|
||||||
|
"msg": text,
|
||||||
|
}).Errorf("error on startup notify: %s", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
log.Infof("notify: %s", text)
|
log.Infof("notify: %s", text)
|
||||||
}
|
}
|
||||||
|
@ -38,10 +49,10 @@ func joinMUC(to, nick string) error {
|
||||||
|
|
||||||
mucs = append(mucs, jid)
|
mucs = append(mucs, jid)
|
||||||
|
|
||||||
return client.Send(xmpp.Presence{Attrs: xmpp.Attrs{To: jid},
|
return client.Send(stanza.Presence{Attrs: stanza.Attrs{To: jid},
|
||||||
Extensions: []xmpp.PresExtension{
|
Extensions: []stanza.PresExtension{
|
||||||
xmpp.MucPresence{
|
stanza.MucPresence{
|
||||||
History: xmpp.History{MaxStanzas: xmpp.NewNullableInt(0)},
|
History: stanza.History{MaxStanzas: stanza.NewNullableInt(0)},
|
||||||
}},
|
}},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -49,12 +60,16 @@ func joinMUC(to, nick string) error {
|
||||||
|
|
||||||
func postStartup(c xmpp.StreamClient) {
|
func postStartup(c xmpp.StreamClient) {
|
||||||
for _, muc := range config.StartupNotifyMuc {
|
for _, muc := range config.StartupNotifyMuc {
|
||||||
joinMUC(muc, config.Nickname)
|
if err := joinMUC(muc, config.Nickname); err != nil {
|
||||||
|
log.WithField("muc", muc).Errorf("error on joining muc: %s", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for _, hooks := range config.Hooks {
|
for _, hooks := range config.Hooks {
|
||||||
for _, hook := range hooks {
|
for _, hook := range hooks {
|
||||||
for _, muc := range hook.NotifyMuc {
|
for _, muc := range hook.NotifyMuc {
|
||||||
joinMUC(muc, config.Nickname)
|
if err := joinMUC(muc, config.Nickname); err != nil {
|
||||||
|
log.WithField("muc", muc).Errorf("error on joining muc: %s", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -65,10 +80,12 @@ func closeXMPP() {
|
||||||
notify("stopped of hock2xmpp")
|
notify("stopped of hock2xmpp")
|
||||||
|
|
||||||
for _, muc := range mucs {
|
for _, muc := range mucs {
|
||||||
client.Send(xmpp.Presence{Attrs: xmpp.Attrs{
|
if err := client.Send(stanza.Presence{Attrs: stanza.Attrs{
|
||||||
To: muc,
|
To: muc,
|
||||||
Type: xmpp.PresenceTypeUnavailable,
|
Type: stanza.PresenceTypeUnavailable,
|
||||||
}})
|
}}); err != nil {
|
||||||
|
log.WithField("muc", muc).Errorf("error on leaving muc: %s", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue