fix changes xmpp lib and log error on send
This commit is contained in:
		
							parent
							
								
									006a178d13
								
							
						
					
					
						commit
						2435b9b73b
					
				| 
						 | 
				
			
			@ -1,47 +1,70 @@
 | 
			
		|||
package runtime
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/bdlm/log"
 | 
			
		||||
 | 
			
		||||
	"gosrc.io/xmpp"
 | 
			
		||||
	"gosrc.io/xmpp/stanza"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func NotifyImage(client *xmpp.Client, hook Hook, url string, desc string) {
 | 
			
		||||
	msg := xmpp.Message{
 | 
			
		||||
		Attrs: xmpp.Attrs{Type: xmpp.MessageTypeGroupchat},
 | 
			
		||||
	msg := stanza.Message{
 | 
			
		||||
		Attrs: stanza.Attrs{Type: stanza.MessageTypeGroupchat},
 | 
			
		||||
		Body:  url,
 | 
			
		||||
		Extensions: []xmpp.MsgExtension{
 | 
			
		||||
			xmpp.OOB{URL: url, Desc: desc},
 | 
			
		||||
		Extensions: []stanza.MsgExtension{
 | 
			
		||||
			stanza.OOB{URL: url, Desc: desc},
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for _, muc := range hook.NotifyMuc {
 | 
			
		||||
		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 {
 | 
			
		||||
		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) {
 | 
			
		||||
	msg := xmpp.Message{
 | 
			
		||||
		Attrs: xmpp.Attrs{Type: xmpp.MessageTypeGroupchat},
 | 
			
		||||
	msg := stanza.Message{
 | 
			
		||||
		Attrs: stanza.Attrs{Type: stanza.MessageTypeGroupchat},
 | 
			
		||||
		Body:  text,
 | 
			
		||||
		Extensions: []xmpp.MsgExtension{
 | 
			
		||||
			xmpp.HTML{Body: xmpp.HTMLBody{InnerXML: html}},
 | 
			
		||||
		Extensions: []stanza.MsgExtension{
 | 
			
		||||
			stanza.HTML{Body: stanza.HTMLBody{InnerXML: html}},
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for _, muc := range hook.NotifyMuc {
 | 
			
		||||
		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 {
 | 
			
		||||
		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 (
 | 
			
		||||
	"github.com/bdlm/log"
 | 
			
		||||
	"gosrc.io/xmpp"
 | 
			
		||||
	"gosrc.io/xmpp/stanza"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var client *xmpp.Client
 | 
			
		||||
var mucs []string
 | 
			
		||||
 | 
			
		||||
func notify(text string) {
 | 
			
		||||
	msg := xmpp.Message{
 | 
			
		||||
		Attrs: xmpp.Attrs{Type: xmpp.MessageTypeGroupchat},
 | 
			
		||||
	msg := stanza.Message{
 | 
			
		||||
		Attrs: stanza.Attrs{Type: stanza.MessageTypeGroupchat},
 | 
			
		||||
		Body:  text,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for _, muc := range config.StartupNotifyMuc {
 | 
			
		||||
		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 {
 | 
			
		||||
		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)
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -38,10 +49,10 @@ func joinMUC(to, nick string) error {
 | 
			
		|||
 | 
			
		||||
	mucs = append(mucs, jid)
 | 
			
		||||
 | 
			
		||||
	return client.Send(xmpp.Presence{Attrs: xmpp.Attrs{To: jid},
 | 
			
		||||
		Extensions: []xmpp.PresExtension{
 | 
			
		||||
			xmpp.MucPresence{
 | 
			
		||||
				History: xmpp.History{MaxStanzas: xmpp.NewNullableInt(0)},
 | 
			
		||||
	return client.Send(stanza.Presence{Attrs: stanza.Attrs{To: jid},
 | 
			
		||||
		Extensions: []stanza.PresExtension{
 | 
			
		||||
			stanza.MucPresence{
 | 
			
		||||
				History: stanza.History{MaxStanzas: stanza.NewNullableInt(0)},
 | 
			
		||||
			}},
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -49,12 +60,16 @@ func joinMUC(to, nick string) error {
 | 
			
		|||
 | 
			
		||||
func postStartup(c xmpp.StreamClient) {
 | 
			
		||||
	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 _, hook := range hooks {
 | 
			
		||||
			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")
 | 
			
		||||
 | 
			
		||||
	for _, muc := range mucs {
 | 
			
		||||
		client.Send(xmpp.Presence{Attrs: xmpp.Attrs{
 | 
			
		||||
		if err := client.Send(stanza.Presence{Attrs: stanza.Attrs{
 | 
			
		||||
			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