Source code for slixmpp.plugins.xep_0118.user_tune
"""
Slixmpp: The Slick XMPP Library
Copyright (C) 2011 Nathanael C. Fritz, Lance J.T. Stout
This file is part of Slixmpp.
See the file LICENSE for copying permission.
"""
import logging
from slixmpp.plugins.base import BasePlugin
from slixmpp.plugins.xep_0118 import stanza, UserTune
log = logging.getLogger(__name__)
[docs]class XEP_0118(BasePlugin):
"""
XEP-0118: User Tune
"""
name = 'xep_0118'
description = 'XEP-0118: User Tune'
dependencies = {'xep_0163'}
stanza = stanza
def plugin_end(self):
self.xmpp['xep_0030'].del_feature(feature=UserTune.namespace)
self.xmpp['xep_0163'].remove_interest(UserTune.namespace)
def session_bind(self, jid):
self.xmpp['xep_0163'].register_pep('user_tune', UserTune)
[docs] def publish_tune(self, artist=None, length=None, rating=None, source=None,
title=None, track=None, uri=None, options=None,
ifrom=None, callback=None, timeout=None, timeout_callback=None):
"""
Publish the user's current tune.
:param artist: The artist or performer of the song.
:param length: The length of the song in seconds.
:param rating: The user's rating of the song (from 1 to 10)
:param source: The album name, website, or other source of the song.
:param title: The title of the song.
:param track: The song's track number, or other unique identifier.
:param uri: A URL to more information about the song.
:param options: Optional form of publish options.
"""
tune = UserTune()
tune['artist'] = artist
tune['length'] = length
tune['rating'] = rating
tune['source'] = source
tune['title'] = title
tune['track'] = track
tune['uri'] = uri
return self.xmpp['xep_0163'].publish(tune,
node=UserTune.namespace,
options=options,
ifrom=ifrom,
callback=callback,
timeout=timeout,
timeout_callback=timeout_callback)
[docs] def stop(self, ifrom=None, callback=None, timeout=None, timeout_callback=None):
"""
Clear existing user tune information to stop notifications.
"""
tune = UserTune()
return self.xmpp['xep_0163'].publish(tune,
node=UserTune.namespace,
ifrom=ifrom,
callback=callback,
timeout=timeout,
timeout_callback=timeout_callback)