Source code for slixmpp.plugins.xep_0196.user_gaming
# 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.importloggingfromasyncioimportFuturefromslixmppimportJIDfromtypingimportOptional,Callablefromslixmpp.plugins.baseimportBasePluginfromslixmpp.plugins.xep_0196importstanza,UserGamingfromslixmpp.plugins.xep_0004.stanzaimportFormlog=logging.getLogger(__name__)
[docs]classXEP_0196(BasePlugin):""" XEP-0196: User Gaming """name='xep_0196'description='XEP-0196: User Gaming'dependencies={'xep_0163'}stanza=stanzadefplugin_end(self):self.xmpp['xep_0030'].del_feature(feature=UserGaming.namespace)self.xmpp['xep_0163'].remove_interest(UserGaming.namespace)defsession_bind(self,jid):self.xmpp['xep_0163'].register_pep('user_gaming',UserGaming)
[docs]defpublish_gaming(self,name:Optional[str]=None,level:Optional[str]=None,server_name:Optional[str]=None,uri:Optional[str]=None,character_name:Optional[str]=None,character_profile:Optional[str]=None,server_address:Optional[str]=None,**pubsubkwargs)->Future:""" Publish the user's current gaming status. :param name: The name of the game. :param level: The user's level in the game. :param uri: A URI for the game or relevant gaming service :param server_name: The name of the server where the user is playing. :param server_address: The hostname or IP address of the server where the user is playing. :param character_name: The name of the user's character in the game. :param character_profile: A URI for a profile of the user's character. :param options: Optional form of publish options. """gaming=UserGaming()gaming['name']=namegaming['level']=levelgaming['uri']=urigaming['character_name']=character_namegaming['character_profile']=character_profilegaming['server_name']=server_namegaming['server_address']=server_addressreturnself.xmpp['xep_0163'].publish(gaming,node=UserGaming.namespace,**pubsubkwargs)
[docs]defstop(self,**pubsubkwargs)->Future:""" Clear existing user gaming information to stop notifications. """gaming=UserGaming()returnself.xmpp['xep_0163'].publish(gaming,node=UserGaming.namespace,**pubsubkwargs)