The <tune> XMPP element, as defined in XEP-0118 User Tune
See www.xmpp.org/extensions/xep-0118.html - this element encapsulates metadata (artist, track etc) about a tune the user is currently playing. These are expressed as child elements such as <artist>, <title> etc which are also managed by this class.
If the element has no children then it indicates that the user has stopped playing a tune. Use the #playing? method to discover this?
Construct a new <tune> element.
Supply no arguments to make an empty element to indicate that tune playing has stopped.
the artist or performer of the song or piece
the title of the song or piece
the duration of the song or piece in seconds
a unique identifier for the tune; e.g., the track number within a collection or the specific URI for the object (e.g., a stream or audio file)
the collection (e.g., album) or other source (e.g., a band website that hosts streams or audio files)
a URI or URL pointing to information about the song, collection, or artist
a number indicating how much you like this song - will be clamped into an integer 0 <= x <= 10
# File lib/xmpp4r/tune/tune.rb, line 40 def initialize(artist = nil, title = nil, length = nil, track = nil, source = nil, uri = nil, rating = nil) super() add_element(REXML::Element.new('artist')).text = artist if artist add_element(REXML::Element.new('title')).text = title if title add_element(REXML::Element.new('length')).text = length.to_s if length add_element(REXML::Element.new('track')).text = track if track add_element(REXML::Element.new('source')).text = source if source add_element(REXML::Element.new('uri')).text = uri if uri if rating and rating.kind_of?(Numeric) r = rating.to_i r = 0 if r < 0 r = 10 if r > 10 add_element(REXML::Element.new('rating')).text = r.to_s end end
Get the artist for this tune.
# File lib/xmpp4r/tune/tune.rb, line 72 def artist first_element('artist').text if first_element('artist') end
Get the length of this tune, in seconds.
# File lib/xmpp4r/tune/tune.rb, line 84 def length first_element('length').text.to_i if first_element('length') end
Returns true if a tune is currently playing, otherwise false.
# File lib/xmpp4r/tune/tune.rb, line 66 def playing? (elements.size > 0) end
Get the rating for this track
# File lib/xmpp4r/tune/tune.rb, line 108 def rating first_element('rating').text.to_i if first_element('rating') end
Get the source of this tune, such as an album.
# File lib/xmpp4r/tune/tune.rb, line 96 def source first_element('source').text if first_element('source') end
Get the title of this tune.
# File lib/xmpp4r/tune/tune.rb, line 78 def title first_element('title').text if first_element('title') end
Get an identitier for this tune.
# File lib/xmpp4r/tune/tune.rb, line 90 def track first_element('track').text if first_element('track') end
Get a URI that represents this tune.
# File lib/xmpp4r/tune/tune.rb, line 102 def uri first_element('uri').text if first_element('uri') end