Source code for slixmpp.plugins.xep_0224.attention
# 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.importloggingfromslixmpp.stanzaimportMessagefromslixmpp.xmlstreamimportregister_stanza_pluginfromslixmpp.xmlstream.handlerimportCallbackfromslixmpp.xmlstream.matcherimportStanzaPathfromslixmpp.pluginsimportBasePluginfromslixmpp.plugins.xep_0224importstanzalog=logging.getLogger(__name__)
[docs]classXEP_0224(BasePlugin):""" XEP-0224: Attention """name='xep_0224'description='XEP-0224: Attention'dependencies={'xep_0030'}stanza=stanzadefplugin_init(self):"""Start the XEP-0224 plugin."""register_stanza_plugin(Message,stanza.Attention)self.xmpp.register_handler(Callback('Attention',StanzaPath('message/attention'),self._handle_attention))defplugin_end(self):self.xmpp['xep_0030'].del_feature(feature=stanza.Attention.namespace)self.xmpp.remove_handler('Attention')defsession_bind(self,jid):self.xmpp['xep_0030'].add_feature(stanza.Attention.namespace)
[docs]defrequest_attention(self,to,mfrom=None,mbody=''):""" Send an attention message with an optional body. Arguments: to -- The attention request recipient's JID. mfrom -- Optionally specify the sender of the attention request. mbody -- An optional message body to include in the request. """m=self.xmpp.Message()m['to']=tom['type']='headline'm['attention']=Trueifmfrom:m['from']=mfromm['body']=mbodym.send()
def_handle_attention(self,msg):""" Raise an event after receiving a message with an attention request. Arguments: msg -- A message stanza with an attention element. """log.debug("Received attention request from: %s",msg['from'])self.xmpp.event('attention',msg)