Update carbons plugin to use latest spec.

This commit is contained in:
Lance Stout 2012-10-10 10:48:30 -07:00
parent 4ea328b9f2
commit 4dd2c15775
2 changed files with 18 additions and 13 deletions

View file

@ -47,13 +47,18 @@ class XEP_0280(BasePlugin):
register_stanza_plugin(Iq, stanza.CarbonEnable)
register_stanza_plugin(Iq, stanza.CarbonDisable)
register_stanza_plugin(stanza.ReceivedCarbon,
self.xmpp['xep_0297'].stanza.Forwarded)
register_stanza_plugin(stanza.SentCarbon,
self.xmpp['xep_0297'].stanza.Forwarded)
def plugin_end(self):
self.xmpp.remove_handler('Carbon Received')
self.xmpp.remove_handler('Carbon Sent')
self.xmpp.plugin['xep_0030'].del_feature(feature='urn:xmpp:carbons:1')
self.xmpp.plugin['xep_0030'].del_feature(feature='urn:xmpp:carbons:2')
def session_bind(self, jid):
self.xmpp.plugin['xep_0030'].add_feature('urn:xmpp:carbons:1')
self.xmpp.plugin['xep_0030'].add_feature('urn:xmpp:carbons:2')
def _handle_carbon_received(self, msg):
self.xmpp.event('carbon_received', msg)

View file

@ -11,54 +11,54 @@ from sleekxmpp.xmlstream import ElementBase
class ReceivedCarbon(ElementBase):
name = 'received'
namespace = 'urn:xmpp:carbons:1'
namespace = 'urn:xmpp:carbons:2'
plugin_attrib = 'carbon_received'
interfaces = set(['carbon_received'])
is_extension = True
def get_carbon_received(self):
return self.parent()['forwarded']['stanza']
return self['forwarded']['stanza']
def del_carbon_received(self):
del self.parent()['forwarded']['stanza']
del self['forwarded']['stanza']
def set_carbon_received(self, stanza):
self.parent()['forwarded']['stanza'] = stanza
self['forwarded']['stanza'] = stanza
class SentCarbon(ElementBase):
name = 'sent'
namespace = 'urn:xmpp:carbons:1'
namespace = 'urn:xmpp:carbons:2'
plugin_attrib = 'carbon_sent'
interfaces = set(['carbon_sent'])
is_extension = True
def get_carbon_sent(self):
return self.parent()['forwarded']['stanza']
return self['forwarded']['stanza']
def del_carbon_sent(self):
del self.parent()['forwarded']['stanza']
del self['forwarded']['stanza']
def set_carbon_sent(self, stanza):
self.parent()['forwarded']['stanza'] = stanza
self['forwarded']['stanza'] = stanza
class PrivateCarbon(ElementBase):
name = 'private'
namespace = 'urn:xmpp:carbons:1'
namespace = 'urn:xmpp:carbons:2'
plugin_attrib = 'carbon_private'
interfaces = set()
class CarbonEnable(ElementBase):
name = 'enable'
namespace = 'urn:xmpp:carbons:1'
namespace = 'urn:xmpp:carbons:2'
plugin_attrib = 'carbon_enable'
interfaces = set()
class CarbonDisable(ElementBase):
name = 'disable'
namespace = 'urn:xmpp:carbons:1'
namespace = 'urn:xmpp:carbons:2'
plugin_attrib = 'carbon_disable'
interfaces = set()