Add support for XEP-0186: Invisible Command
This commit is contained in:
		
							
								
								
									
										1
									
								
								setup.py
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								setup.py
									
									
									
									
									
								
							@@ -84,6 +84,7 @@ packages     = [ 'sleekxmpp',
 | 
				
			|||||||
                 'sleekxmpp/plugins/xep_0153',
 | 
					                 'sleekxmpp/plugins/xep_0153',
 | 
				
			||||||
                 'sleekxmpp/plugins/xep_0172',
 | 
					                 'sleekxmpp/plugins/xep_0172',
 | 
				
			||||||
                 'sleekxmpp/plugins/xep_0184',
 | 
					                 'sleekxmpp/plugins/xep_0184',
 | 
				
			||||||
 | 
					                 'sleekxmpp/plugins/xep_0186',
 | 
				
			||||||
                 'sleekxmpp/plugins/xep_0198',
 | 
					                 'sleekxmpp/plugins/xep_0198',
 | 
				
			||||||
                 'sleekxmpp/plugins/xep_0199',
 | 
					                 'sleekxmpp/plugins/xep_0199',
 | 
				
			||||||
                 'sleekxmpp/plugins/xep_0202',
 | 
					                 'sleekxmpp/plugins/xep_0202',
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -45,6 +45,7 @@ __all__ = [
 | 
				
			|||||||
    'xep_0163',  # Personal Eventing Protocol
 | 
					    'xep_0163',  # Personal Eventing Protocol
 | 
				
			||||||
    'xep_0172',  # User Nickname
 | 
					    'xep_0172',  # User Nickname
 | 
				
			||||||
    'xep_0184',  # Message Receipts
 | 
					    'xep_0184',  # Message Receipts
 | 
				
			||||||
 | 
					    'xep_0186',  # Invisible Command
 | 
				
			||||||
    'xep_0198',  # Stream Management
 | 
					    'xep_0198',  # Stream Management
 | 
				
			||||||
    'xep_0199',  # Ping
 | 
					    'xep_0199',  # Ping
 | 
				
			||||||
    'xep_0202',  # Entity Time
 | 
					    'xep_0202',  # Entity Time
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								sleekxmpp/plugins/xep_0186/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								sleekxmpp/plugins/xep_0186/__init__.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					"""
 | 
				
			||||||
 | 
					    SleekXMPP: The Sleek XMPP Library
 | 
				
			||||||
 | 
					    Copyright (C) 2012 Nathanael C. Fritz, Lance J.T. Stout
 | 
				
			||||||
 | 
					    This file is part of SleekXMPP.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    See the file LICENSE for copying permission.
 | 
				
			||||||
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from sleekxmpp.plugins.base import register_plugin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from sleekxmpp.plugins.xep_0186 import stanza
 | 
				
			||||||
 | 
					from sleekxmpp.plugins.xep_0186.stanza import Invisible, Visible
 | 
				
			||||||
 | 
					from sleekxmpp.plugins.xep_0186.invisible_command import XEP_0186
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					register_plugin(XEP_0186)
 | 
				
			||||||
							
								
								
									
										44
									
								
								sleekxmpp/plugins/xep_0186/invisible_command.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								sleekxmpp/plugins/xep_0186/invisible_command.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
				
			|||||||
 | 
					"""
 | 
				
			||||||
 | 
					    SleekXMPP: The Sleek XMPP Library
 | 
				
			||||||
 | 
					    Copyright (C) 2012 Nathanael C. Fritz, Lance J.T. Stout
 | 
				
			||||||
 | 
					    This file is part of SleekXMPP.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    See the file LICENSE for copying permission.
 | 
				
			||||||
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import logging
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from sleekxmpp import Iq
 | 
				
			||||||
 | 
					from sleekxmpp.plugins import BasePlugin
 | 
				
			||||||
 | 
					from sleekxmpp.xmlstream import register_stanza_plugin
 | 
				
			||||||
 | 
					from sleekxmpp.plugins.xep_0186 import stanza, Visible, Invisible
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					log = logging.getLogger(__name__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class XEP_0186(BasePlugin):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    name = 'xep_0186'
 | 
				
			||||||
 | 
					    description = 'XEP-0186: Invisible Command'
 | 
				
			||||||
 | 
					    dependencies = set(['xep_0030'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def plugin_init(self):
 | 
				
			||||||
 | 
					        register_stanza_plugin(Iq, Visible)
 | 
				
			||||||
 | 
					        register_stanza_plugin(Iq, Invisible)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def set_invisible(self, ifrom=None, block=True, callback=None,
 | 
				
			||||||
 | 
					                            timeout=None):
 | 
				
			||||||
 | 
					        iq = self.xmpp.Iq()
 | 
				
			||||||
 | 
					        iq['type'] = 'set'
 | 
				
			||||||
 | 
					        iq['from'] = ifrom
 | 
				
			||||||
 | 
					        iq.enable('invisible')
 | 
				
			||||||
 | 
					        iq.send(block=block, callback=callback, timeout=timeout)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def set_visible(self, ifrom=None, block=True, callback=None,
 | 
				
			||||||
 | 
					                          timeout=None):
 | 
				
			||||||
 | 
					        iq = self.xmpp.Iq()
 | 
				
			||||||
 | 
					        iq['type'] = 'set'
 | 
				
			||||||
 | 
					        iq['from'] = ifrom
 | 
				
			||||||
 | 
					        iq.enable('visible')
 | 
				
			||||||
 | 
					        iq.send(block=block, callback=callback, timeout=timeout)
 | 
				
			||||||
							
								
								
									
										23
									
								
								sleekxmpp/plugins/xep_0186/stanza.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								sleekxmpp/plugins/xep_0186/stanza.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					"""
 | 
				
			||||||
 | 
					    SleekXMPP: The Sleek XMPP Library
 | 
				
			||||||
 | 
					    Copyright (C) 2012 Nathanael C. Fritz, Lance J.T. Stout
 | 
				
			||||||
 | 
					    This file is part of SleekXMPP.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    See the file LICENSE for copying permission.
 | 
				
			||||||
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from sleekxmpp.xmlstream import ElementBase, ET
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Invisible(ElementBase):
 | 
				
			||||||
 | 
					    name = 'invisible'
 | 
				
			||||||
 | 
					    namespace = 'urn:xmpp:invisible:0'
 | 
				
			||||||
 | 
					    plugin_attrib = 'invisible'
 | 
				
			||||||
 | 
					    interfaces = set()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Visible(ElementBase):
 | 
				
			||||||
 | 
					    name = 'visible'
 | 
				
			||||||
 | 
					    namespace = 'urn:xmpp:visible:0'
 | 
				
			||||||
 | 
					    plugin_attrib = 'visible'
 | 
				
			||||||
 | 
					    interfaces = set()
 | 
				
			||||||
		Reference in New Issue
	
	Block a user