diff options
Diffstat (limited to 'sleekxmpp/plugins/xep_0249')
-rw-r--r-- | sleekxmpp/plugins/xep_0249/__init__.py | 19 | ||||
-rw-r--r-- | sleekxmpp/plugins/xep_0249/invite.py | 83 | ||||
-rw-r--r-- | sleekxmpp/plugins/xep_0249/stanza.py | 39 |
3 files changed, 0 insertions, 141 deletions
diff --git a/sleekxmpp/plugins/xep_0249/__init__.py b/sleekxmpp/plugins/xep_0249/__init__.py deleted file mode 100644 index b85f55ce..00000000 --- a/sleekxmpp/plugins/xep_0249/__init__.py +++ /dev/null @@ -1,19 +0,0 @@ -""" - SleekXMPP: The Sleek XMPP Library - Copyright (C) 2011 Nathanael C. Fritz, Dalek - This file is part of SleekXMPP. - - See the file LICENSE for copying permission. -""" - -from sleekxmpp.plugins.base import register_plugin - -from sleekxmpp.plugins.xep_0249.stanza import Invite -from sleekxmpp.plugins.xep_0249.invite import XEP_0249 - - -register_plugin(XEP_0249) - - -# Retain some backwards compatibility -xep_0249 = XEP_0249 diff --git a/sleekxmpp/plugins/xep_0249/invite.py b/sleekxmpp/plugins/xep_0249/invite.py deleted file mode 100644 index 4b7abd4a..00000000 --- a/sleekxmpp/plugins/xep_0249/invite.py +++ /dev/null @@ -1,83 +0,0 @@ -""" - SleekXMPP: The Sleek XMPP Library - Copyright (C) 2011 Nathanael C. Fritz, Dalek - This file is part of SleekXMPP. - - See the file LICENSE for copying permission. -""" - -import logging - -import sleekxmpp -from sleekxmpp import Message -from sleekxmpp.plugins import BasePlugin -from sleekxmpp.xmlstream import register_stanza_plugin -from sleekxmpp.xmlstream.handler import Callback -from sleekxmpp.xmlstream.matcher import StanzaPath -from sleekxmpp.plugins.xep_0249 import Invite, stanza - - -log = logging.getLogger(__name__) - - -class XEP_0249(BasePlugin): - - """ - XEP-0249: Direct MUC Invitations - """ - - name = 'xep_0249' - description = 'XEP-0249: Direct MUC Invitations' - dependencies = set(['xep_0030']) - stanza = stanza - - def plugin_init(self): - self.xmpp.register_handler( - Callback('Direct MUC Invitations', - StanzaPath('message/groupchat_invite'), - self._handle_invite)) - - register_stanza_plugin(Message, Invite) - - def plugin_end(self): - self.xmpp['xep_0030'].del_feature(feature=Invite.namespace) - self.xmpp.remove_handler('Direct MUC Invitations') - - def session_bind(self, jid): - self.xmpp['xep_0030'].add_feature(Invite.namespace) - - def _handle_invite(self, msg): - """ - Raise an event for all invitations received. - """ - log.debug("Received direct muc invitation from %s to room %s", - msg['from'], msg['groupchat_invite']['jid']) - - self.xmpp.event('groupchat_direct_invite', msg) - - def send_invitation(self, jid, roomjid, password=None, - reason=None, ifrom=None): - """ - Send a direct MUC invitation to an XMPP entity. - - Arguments: - jid -- The JID of the entity that will receive - the invitation - roomjid -- the address of the groupchat room to be joined - password -- a password needed for entry into a - password-protected room (OPTIONAL). - reason -- a human-readable purpose for the invitation - (OPTIONAL). - """ - - msg = self.xmpp.Message() - msg['to'] = jid - if ifrom is not None: - msg['from'] = ifrom - msg['groupchat_invite']['jid'] = roomjid - if password is not None: - msg['groupchat_invite']['password'] = password - if reason is not None: - msg['groupchat_invite']['reason'] = reason - - return msg.send() diff --git a/sleekxmpp/plugins/xep_0249/stanza.py b/sleekxmpp/plugins/xep_0249/stanza.py deleted file mode 100644 index ba4060d7..00000000 --- a/sleekxmpp/plugins/xep_0249/stanza.py +++ /dev/null @@ -1,39 +0,0 @@ -""" - SleekXMPP: The Sleek XMPP Library - Copyright (C) 2011 Nathanael C. Fritz, Dalek - This file is part of SleekXMPP. - - See the file LICENSE for copying permission. -""" - -from sleekxmpp.xmlstream import ElementBase - - -class Invite(ElementBase): - - """ - XMPP allows for an agent in an MUC room to directly invite another - user to join the chat room (as opposed to a mediated invitation - done through the server). - - Example invite stanza: - <message from='crone1@shakespeare.lit/desktop' - to='hecate@shakespeare.lit'> - <x xmlns='jabber:x:conference' - jid='darkcave@macbeth.shakespeare.lit' - password='cauldronburn' - reason='Hey Hecate, this is the place for all good witches!'/> - </message> - - Stanza Interface: - jid -- The JID of the groupchat room - password -- The password used to gain entry in the room - (optional) - reason -- The reason for the invitation (optional) - - """ - - name = "x" - namespace = "jabber:x:conference" - plugin_attrib = "groupchat_invite" - interfaces = ("jid", "password", "reason") |