package pep // import "fluux.io/xmpp/pep" import ( "encoding/xml" "fluux.io/xmpp" ) type iq struct { XMLName xml.Name `xml:"jabber:client iq"` C pubSub // c for "contains" xmpp.PacketAttrs // Rename h for "header" ? } type pubSub struct { XMLName xml.Name `xml:"http://jabber.org/protocol/pubsub pubsub"` Publish publish } type publish struct { XMLName xml.Name `xml:"publish"` Node string `xml:"node,attr"` Item item } type item struct { XMLName xml.Name `xml:"item"` Tune Tune } type Tune struct { XMLName xml.Name `xml:"http://jabber.org/protocol/tune tune"` Artist string `xml:"artist,omitempty"` Length int `xml:"length,omitempty"` Rating int `xml:"rating,omitempty"` Source string `xml:"source,omitempty"` Title string `xml:"title,omitempty"` Track string `xml:"track,omitempty"` Uri string `xml:"uri,omitempty"` } /* type PubsubPublish struct { XMLName xml.Name `xml:"publish"` node string `xml:"node,attr"` item PubSubItem } type PubSubItem struct { xmlName xml.Name `xml:"item"` } type Thing2 struct { XMLName xml.Name `xml:"publish"` node string `xml:"node,attr"` tune string `xml:"http://jabber.org/protocol/tune item>tune"` } type Tune struct { artist string length int rating int source string title string track string uri string } */ func (t *Tune) XMPPFormat() (s string) { packet, _ := xml.Marshal(iq{PacketAttrs: xmpp.PacketAttrs{Id: "tunes", Type: "set"}, C: pubSub{Publish: publish{Node: "http://jabber.org/protocol/tune", Item: item{Tune: *t}}}}) return string(packet) } /* func (*Tune) XMPPFormat() string { return fmt.Sprintf( ` %s %i %i %s %s %s %s `) } */