Files
lambda/xmpp-mucuser.go

28 lines
775 B
Go
Raw Permalink Normal View History

2026-01-29 21:35:36 +00:00
package main
// Implementation of XEP-0045: Multi User Chat 7.2.2
// https://xmpp.org/extensions/xep-0045.html#enter-pres
import (
"encoding/xml"
"gosrc.io/xmpp/stanza"
)
type MucUser struct {
stanza.PresExtension
XMLName xml.Name `xml:"http://jabber.org/protocol/muc#user x"`
MucUserItem MucUserItem `xml:"item,omitempty"`
}
type MucUserItem struct {
XMLName xml.Name
Affiliation string `xml:"affiliation,attr,omitempty"` // TODO: Use enum
Role string `xml:"role,attr,omitempty"` // TODO: Use enum
JID string `xml:"jid,attr,omitempty"`
2026-01-31 15:08:54 +00:00
Reason string `xml:"reason,omitempty"`
2026-01-29 21:35:36 +00:00
}
func init() {
stanza.TypeRegistry.MapExtension(stanza.PKTPresence, xml.Name{Space: "http://jabber.org/protocol/muc#user", Local: "x"}, MucUser{})
}