Update XEP-0085 plugin to work with both ElementTree and cElementTree
Each state element must have its own stanza class now. A stanza class with an empty name field causes errors in ElementTree, even though it works fine with cElementTree.
This commit is contained in:
@@ -37,7 +37,11 @@ class xep_0085(base_plugin):
|
||||
StanzaPath('message@chat_state=%s' % state),
|
||||
self._handle_chat_state))
|
||||
|
||||
register_stanza_plugin(Message, ChatState)
|
||||
register_stanza_plugin(Message, stanza.Active)
|
||||
register_stanza_plugin(Message, stanza.Composing)
|
||||
register_stanza_plugin(Message, stanza.Gone)
|
||||
register_stanza_plugin(Message, stanza.Inactive)
|
||||
register_stanza_plugin(Message, stanza.Paused)
|
||||
|
||||
def post_init(self):
|
||||
base_plugin.post_init(self)
|
||||
|
@@ -71,3 +71,23 @@ class ChatState(ElementBase):
|
||||
if state_xml is not None:
|
||||
self.xml = ET.Element('')
|
||||
parent.xml.remove(state_xml)
|
||||
|
||||
|
||||
class Active(ChatState):
|
||||
name = 'active'
|
||||
|
||||
|
||||
class Composing(ChatState):
|
||||
name = 'composing'
|
||||
|
||||
|
||||
class Gone(ChatState):
|
||||
name = 'gone'
|
||||
|
||||
|
||||
class Inactive(ChatState):
|
||||
name = 'inactive'
|
||||
|
||||
|
||||
class Paused(ChatState):
|
||||
name = 'paused'
|
||||
|
Reference in New Issue
Block a user