forked from jshiffer/go-xmpp
		
	Basic formatting of user tune publication
This commit is contained in:
		
							
								
								
									
										96
									
								
								xmpp/pep/user_tune.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								xmpp/pep/user_tune.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,96 @@
 | 
			
		||||
package pep
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"encoding/xml"
 | 
			
		||||
 | 
			
		||||
	"github.com/processone/gox/xmpp"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type iq struct {
 | 
			
		||||
	XMLName     xml.Name `xml:"jabber:client iq"`
 | 
			
		||||
	C           pubSub   // c for "contains"
 | 
			
		||||
	xmpp.Packet          // 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{Packet: xmpp.Packet{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(
 | 
			
		||||
		`<iq type='set' id='%s'>
 | 
			
		||||
 <pubsub xmlns='http://jabber.org/protocol/pubsub'>
 | 
			
		||||
  <publish node='http://jabber.org/protocol/tune'>
 | 
			
		||||
   <item>
 | 
			
		||||
    <tune xmlns='http://jabber.org/protocol/tune'>
 | 
			
		||||
     <artist>%s</artist>
 | 
			
		||||
     <length>%i</length>
 | 
			
		||||
     <rating>%i</rating>
 | 
			
		||||
     <source>%s</source>
 | 
			
		||||
     <title>%s</title>
 | 
			
		||||
     <track>%s</track>
 | 
			
		||||
     <uri>%s</uri>
 | 
			
		||||
    </tune>
 | 
			
		||||
   </item>
 | 
			
		||||
  </publish>
 | 
			
		||||
 </pubsub>
 | 
			
		||||
</iq>`)
 | 
			
		||||
}
 | 
			
		||||
*/
 | 
			
		||||
		Reference in New Issue
	
	Block a user