From 833f95b53af47903d8e4281e8d5668a5addc2383 Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Wed, 23 Mar 2011 10:00:32 -0400 Subject: Cleaned XEP-0249 plugin, added tests. --- sleekxmpp/plugins/xep_0249/__init__.py | 8 +++++++ sleekxmpp/plugins/xep_0249/invite.py | 44 ++++++++++++++++++---------------- sleekxmpp/plugins/xep_0249/stanza.py | 20 ++++++++++++---- 3 files changed, 47 insertions(+), 25 deletions(-) (limited to 'sleekxmpp') diff --git a/sleekxmpp/plugins/xep_0249/__init__.py b/sleekxmpp/plugins/xep_0249/__init__.py index 4af19a2b..e88d87ac 100644 --- a/sleekxmpp/plugins/xep_0249/__init__.py +++ b/sleekxmpp/plugins/xep_0249/__init__.py @@ -1,2 +1,10 @@ +""" + 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.xep_0249.stanza import Invite from sleekxmpp.plugins.xep_0249.invite import xep_0249 diff --git a/sleekxmpp/plugins/xep_0249/invite.py b/sleekxmpp/plugins/xep_0249/invite.py index 7c966f15..fdeffdea 100644 --- a/sleekxmpp/plugins/xep_0249/invite.py +++ b/sleekxmpp/plugins/xep_0249/invite.py @@ -1,5 +1,10 @@ -"""Direct MUC Invitation.""" +""" + 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 @@ -11,6 +16,7 @@ from sleekxmpp.xmlstream.handler import Callback from sleekxmpp.xmlstream.matcher import StanzaPath from sleekxmpp.plugins.xep_0249 import Invite + log = logging.getLogger(__name__) @@ -34,15 +40,14 @@ class xep_0249(base_plugin): def post_init(self): base_plugin.post_init(self) - self.xmpp.plugin['xep_0030'].add_feature(Invite.namespace) + self.xmpp['xep_0030'].add_feature(Invite.namespace) - def _handle_invite(self, message): + def _handle_invite(self, msg): """ Raise an event for all invitations received. - """ log.debug("Received direct muc invitation from %s to room %s", - message['from'], message['groupchat_invite']['jid']) + msg['from'], msg['groupchat_invite']['jid']) self.xmpp.event('groupchat_direct_invite', message) @@ -52,24 +57,23 @@ class xep_0249(base_plugin): Send a direct MUC invitation to an XMPP entity. Arguments: - jid -- The jid of the entity to which the inviation - is sent - 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). - + 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). """ - message = self.xmpp.Message() - message['to'] = jid + msg = self.xmpp.Message() + msg['to'] = jid if ifrom is not None: - message['from'] = ifrom - message['groupchat_invite']['jid'] = roomjid + msg['from'] = ifrom + msg['groupchat_invite']['jid'] = roomjid if password is not None: - message['groupchat_invite']['password'] = password + msg['groupchat_invite']['password'] = password if reason is not None: - message['groupchat_invite']['reason'] = reason + msg['groupchat_invite']['reason'] = reason - return message.send() + return msg.send() diff --git a/sleekxmpp/plugins/xep_0249/stanza.py b/sleekxmpp/plugins/xep_0249/stanza.py index 43bb65d0..ba4060d7 100644 --- a/sleekxmpp/plugins/xep_0249/stanza.py +++ b/sleekxmpp/plugins/xep_0249/stanza.py @@ -1,7 +1,16 @@ +""" + 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 @@ -17,13 +26,14 @@ class Invite(ElementBase): 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) + 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") \ No newline at end of file + interfaces = ("jid", "password", "reason") -- cgit v1.2.3