50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package extensions
|
|
|
|
import (
|
|
"encoding/xml"
|
|
|
|
"gosrc.io/xmpp/stanza"
|
|
)
|
|
|
|
// PresenceNickExtension is from XEP-0172
|
|
type PresenceNickExtension struct {
|
|
XMLName xml.Name `xml:"http://jabber.org/protocol/nick nick"`
|
|
Text string `xml:",chardata"`
|
|
}
|
|
|
|
// PresenceXVCardUpdateExtension is from XEP-0153
|
|
type PresenceXVCardUpdateExtension struct {
|
|
XMLName xml.Name `xml:"vcard-temp:x:update x"`
|
|
Photo PresenceXVCardUpdatePhoto
|
|
}
|
|
|
|
// PresenceXVCardUpdatePhoto is from XEP-0153
|
|
type PresenceXVCardUpdatePhoto struct {
|
|
XMLName xml.Name `xml:"photo"`
|
|
Text string `xml:",chardata"`
|
|
}
|
|
|
|
// Namespace is a namespace!
|
|
func (c PresenceNickExtension) Namespace() string {
|
|
return c.XMLName.Space
|
|
}
|
|
|
|
// Namespace is a namespace!
|
|
func (c PresenceXVCardUpdateExtension) Namespace() string {
|
|
return c.XMLName.Space
|
|
}
|
|
|
|
func init() {
|
|
// presence nick
|
|
stanza.TypeRegistry.MapExtension(stanza.PKTPresence, xml.Name{
|
|
"http://jabber.org/protocol/nick",
|
|
"nick",
|
|
}, PresenceNickExtension{})
|
|
|
|
// presence vcard update
|
|
stanza.TypeRegistry.MapExtension(stanza.PKTPresence, xml.Name{
|
|
"vcard-temp:x:update",
|
|
"x",
|
|
}, PresenceXVCardUpdateExtension{})
|
|
}
|