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.importloggingfromasyncioimportFuturefromtypingimportOptionalfromslixmpp.plugins.baseimportBasePluginfromslixmpp.plugins.xep_0118importstanza,UserTunelog=logging.getLogger(__name__)
[docs]classXEP_0118(BasePlugin):""" XEP-0118: User Tune """name='xep_0118'description='XEP-0118: User Tune'dependencies={'xep_0163'}stanza=stanzadefplugin_end(self):self.xmpp['xep_0030'].del_feature(feature=UserTune.namespace)self.xmpp['xep_0163'].remove_interest(UserTune.namespace)defsession_bind(self,jid):self.xmpp['xep_0163'].register_pep('user_tune',UserTune)
[docs]defpublish_tune(self,*,artist:Optional[str]=None,length:Optional[int]=None,rating:Optional[int]=None,source:Optional[str]=None,title:Optional[str]=None,track:Optional[str]=None,uri:Optional[str]=None,**pubsubkwargs)->Future:""" 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. """tune=UserTune()tune['artist']=artisttune['length']=lengthtune['rating']=ratingtune['source']=sourcetune['title']=titletune['track']=tracktune['uri']=urireturnself.xmpp['xep_0163'].publish(tune,node=UserTune.namespace,**pubsubkwargs)
[docs]defstop(self,**pubsubkwargs)->Future:""" Clear existing user tune information to stop notifications. """tune=UserTune()returnself.xmpp['xep_0163'].publish(tune,node=UserTune.namespace,**pubsubkwargs)