Added XEP-0203 Delayed Delivery plugin.
This commit is contained in:
		| @@ -6,5 +6,6 @@ | ||||
|     See the file LICENSE for copying permission. | ||||
| """ | ||||
| __all__ = ['xep_0004', 'xep_0009', 'xep_0012', 'xep_0030', 'xep_0033', | ||||
|            'xep_0045', 'xep_0050', 'xep_0060', 'xep_0085', 'xep_0086', | ||||
|            'xep_0092', 'xep_0128', 'xep_0199', 'xep_0202', 'gmail_notify'] | ||||
|            'xep_0045', 'xep_0050', 'xep_0060', 'xep_0066', 'xep_0082', | ||||
|            'xep_0085', 'xep_0086', 'xep_0092', 'xep_0128', 'xep_0199', | ||||
|            'xep_0202', 'xep_0203', 'gmail_notify'] | ||||
|   | ||||
							
								
								
									
										12
									
								
								sleekxmpp/plugins/xep_0203/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								sleekxmpp/plugins/xep_0203/__init__.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| """ | ||||
|     SleekXMPP: The Sleek XMPP Library | ||||
|     Copyright (C) 2011 Nathanael C. Fritz, Lance J.T. Stout | ||||
|     This file is part of SleekXMPP. | ||||
|  | ||||
|     See the file LICENSE for copying permission. | ||||
| """ | ||||
|  | ||||
| from sleekxmpp.plugins.xep_0203 import stanza | ||||
| from sleekxmpp.plugins.xep_0203.stanza import Delay | ||||
| from sleekxmpp.plugins.xep_0203.delay import xep_0203 | ||||
|  | ||||
							
								
								
									
										36
									
								
								sleekxmpp/plugins/xep_0203/delay.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								sleekxmpp/plugins/xep_0203/delay.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | ||||
| """ | ||||
|     SleekXMPP: The Sleek XMPP Library | ||||
|     Copyright (C) 2011 Nathanael C. Fritz, Lance J.T. Stout | ||||
|     This file is part of SleekXMPP. | ||||
|  | ||||
|     See the file LICENSE for copying permission. | ||||
| """ | ||||
|  | ||||
|  | ||||
| from sleekxmpp.stanza import Message, Presence | ||||
| from sleekxmpp.xmlstream import register_stanza_plugin | ||||
| from sleekxmpp.plugins.base import base_plugin | ||||
| from sleekxmpp.plugins.xep_0203 import stanza | ||||
|  | ||||
|  | ||||
| class xep_0203(base_plugin): | ||||
|  | ||||
|     """ | ||||
|     XEP-0203: Delayed Delivery | ||||
|  | ||||
|     XMPP stanzas are sometimes withheld for delivery due to the recipient | ||||
|     being offline, or are resent in order to establish recent history as | ||||
|     is the case with MUCS. In any case, it is important to know when the | ||||
|     stanza was originally sent, not just when it was last received. | ||||
|  | ||||
|     Also see <http://www.xmpp.org/extensions/xep-0203.html>. | ||||
|     """ | ||||
|  | ||||
|     def plugin_init(self): | ||||
|         """Start the XEP-0203 plugin.""" | ||||
|         self.xep = '0203' | ||||
|         self.description = 'Delayed Delivery' | ||||
|         self.stanza = stanza | ||||
|  | ||||
|         register_stanza_plugin(Message, stanza.Delay) | ||||
|         register_stanza_plugin(Presence, stanza.Delay) | ||||
							
								
								
									
										41
									
								
								sleekxmpp/plugins/xep_0203/stanza.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								sleekxmpp/plugins/xep_0203/stanza.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | ||||
| """ | ||||
|     SleekXMPP: The Sleek XMPP Library | ||||
|     Copyright (C) 2011 Nathanael C. Fritz, Lance J.T. Stout | ||||
|     This file is part of SleekXMPP. | ||||
|  | ||||
|     See the file LICENSE for copying permission. | ||||
| """ | ||||
|  | ||||
| import datetime as dt | ||||
|  | ||||
| from sleekxmpp.xmlstream import ElementBase | ||||
| from sleekxmpp.plugins import xep_0082 | ||||
|  | ||||
|  | ||||
| class Delay(ElementBase): | ||||
|  | ||||
|     """ | ||||
|     """ | ||||
|  | ||||
|     name = 'delay' | ||||
|     namespace = 'urn:xmpp:delay' | ||||
|     plugin_attrib = 'delay' | ||||
|     interfaces = set(('from', 'stamp', 'text')) | ||||
|  | ||||
|     def get_stamp(self): | ||||
|         timestamp = self._get_attr('stamp') | ||||
|         return xep_0082.parse(timestamp) | ||||
|  | ||||
|     def set_stamp(self, value): | ||||
|         if isinstance(value, dt.datetime): | ||||
|             value = xep_0082.format_datetime(value) | ||||
|         self._set_attr('stamp', value) | ||||
|  | ||||
|     def get_text(self): | ||||
|         return self.xml.text | ||||
|  | ||||
|     def set_text(self, value): | ||||
|         self.xml.text = value | ||||
|  | ||||
|     def del_text(self): | ||||
|         self.xml.text = '' | ||||
		Reference in New Issue
	
	Block a user
	 Lance Stout
					Lance Stout