diff options
Diffstat (limited to 'sleekxmpp/stanza/message.py')
-rw-r--r-- | sleekxmpp/stanza/message.py | 199 |
1 files changed, 0 insertions, 199 deletions
diff --git a/sleekxmpp/stanza/message.py b/sleekxmpp/stanza/message.py deleted file mode 100644 index 0bb6e587..00000000 --- a/sleekxmpp/stanza/message.py +++ /dev/null @@ -1,199 +0,0 @@ -""" - SleekXMPP: The Sleek XMPP Library - Copyright (C) 2010 Nathanael C. Fritz - This file is part of SleekXMPP. - - See the file LICENSE for copying permission. -""" - -from sleekxmpp.stanza.rootstanza import RootStanza -from sleekxmpp.xmlstream import StanzaBase, ET - - -class Message(RootStanza): - - """ - XMPP's <message> stanzas are a "push" mechanism to send information - to other XMPP entities without requiring a response. - - Chat clients will typically use <message> stanzas that have a type - of either "chat" or "groupchat". - - When handling a message event, be sure to check if the message is - an error response. - - Example <message> stanzas: - <message to="user1@example.com" from="user2@example.com"> - <body>Hi!</body> - </message> - - <message type="groupchat" to="room@conference.example.com"> - <body>Hi everyone!</body> - </message> - - Stanza Interface: - body -- The main contents of the message. - subject -- An optional description of the message's contents. - mucroom -- (Read-only) The name of the MUC room that sent the message. - mucnick -- (Read-only) The MUC nickname of message's sender. - - Attributes: - types -- May be one of: normal, chat, headline, groupchat, or error. - - Methods: - setup -- Overrides StanzaBase.setup. - chat -- Set the message type to 'chat'. - normal -- Set the message type to 'normal'. - reply -- Overrides StanzaBase.reply - get_type -- Overrides StanzaBase interface - get_mucroom -- Return the name of the MUC room of the message. - set_mucroom -- Dummy method to prevent assignment. - del_mucroom -- Dummy method to prevent deletion. - get_mucnick -- Return the MUC nickname of the message's sender. - set_mucnick -- Dummy method to prevent assignment. - del_mucnick -- Dummy method to prevent deletion. - """ - - name = 'message' - namespace = 'jabber:client' - plugin_attrib = name - interfaces = set(['type', 'to', 'from', 'id', 'body', 'subject', - 'thread', 'parent_thread', 'mucroom', 'mucnick']) - sub_interfaces = set(['body', 'subject', 'thread']) - lang_interfaces = sub_interfaces - types = set(['normal', 'chat', 'headline', 'error', 'groupchat']) - - def __init__(self, *args, **kwargs): - """ - Initialize a new <message /> stanza with an optional 'id' value. - - Overrides StanzaBase.__init__. - """ - StanzaBase.__init__(self, *args, **kwargs) - if self['id'] == '': - if self.stream is not None and self.stream.use_message_ids: - self['id'] = self.stream.new_id() - - def get_type(self): - """ - Return the message type. - - Overrides default stanza interface behavior. - - Returns 'normal' if no type attribute is present. - """ - return self._get_attr('type', 'normal') - - def get_parent_thread(self): - """Return the message thread's parent thread.""" - thread = self.xml.find('{%s}thread' % self.namespace) - if thread is not None: - return thread.attrib.get('parent', '') - return '' - - def set_parent_thread(self, value): - """Add or change the message thread's parent thread.""" - thread = self.xml.find('{%s}thread' % self.namespace) - if value: - if thread is None: - thread = ET.Element('{%s}thread' % self.namespace) - self.xml.append(thread) - thread.attrib['parent'] = value - else: - if thread is not None and 'parent' in thread.attrib: - del thread.attrib['parent'] - - def del_parent_thread(self): - """Delete the message thread's parent reference.""" - thread = self.xml.find('{%s}thread' % self.namespace) - if thread is not None and 'parent' in thread.attrib: - del thread.attrib['parent'] - - def chat(self): - """Set the message type to 'chat'.""" - self['type'] = 'chat' - return self - - def normal(self): - """Set the message type to 'normal'.""" - self['type'] = 'normal' - return self - - def reply(self, body=None, clear=True): - """ - Create a message reply. - - Overrides StanzaBase.reply. - - Sets proper 'to' attribute if the message is from a MUC, and - adds a message body if one is given. - - Arguments: - body -- Optional text content for the message. - clear -- Indicates if existing content should be removed - before replying. Defaults to True. - """ - thread = self['thread'] - parent = self['parent_thread'] - - StanzaBase.reply(self, clear) - if self['type'] == 'groupchat': - self['to'] = self['to'].bare - - self['thread'] = thread - self['parent_thread'] = parent - - del self['id'] - - if body is not None: - self['body'] = body - return self - - def get_mucroom(self): - """ - Return the name of the MUC room where the message originated. - - Read-only stanza interface. - """ - if self['type'] == 'groupchat': - return self['from'].bare - else: - return '' - - def get_mucnick(self): - """ - Return the nickname of the MUC user that sent the message. - - Read-only stanza interface. - """ - if self['type'] == 'groupchat': - return self['from'].resource - else: - return '' - - def set_mucroom(self, value): - """Dummy method to prevent modification.""" - pass - - def del_mucroom(self): - """Dummy method to prevent deletion.""" - pass - - def set_mucnick(self, value): - """Dummy method to prevent modification.""" - pass - - def del_mucnick(self): - """Dummy method to prevent deletion.""" - pass - - -# To comply with PEP8, method names now use underscores. -# Deprecated method names are re-mapped for backwards compatibility. -Message.getType = Message.get_type -Message.getMucroom = Message.get_mucroom -Message.setMucroom = Message.set_mucroom -Message.delMucroom = Message.del_mucroom -Message.getMucnick = Message.get_mucnick -Message.setMucnick = Message.set_mucnick -Message.delMucnick = Message.del_mucnick |