comparison src/plugins/plugin_xep_0085.py @ 1563:075a63180eab

plugin XEP-0085: fixed chatstate blinking following 0632d96f08ad change
author Goffi <goffi@goffi.org>
date Tue, 03 Nov 2015 10:23:08 +0100
parents 0632d96f08ad
children d86685c0c019
comparison
equal deleted inserted replaced
1562:7d91dff71067 1563:075a63180eab
29 from twisted.words.protocols.xmlstream import XMPPHandler 29 from twisted.words.protocols.xmlstream import XMPPHandler
30 except ImportError: 30 except ImportError:
31 from wokkel.subprotocols import XMPPHandler 31 from wokkel.subprotocols import XMPPHandler
32 from twisted.words.xish import domish 32 from twisted.words.xish import domish
33 from twisted.internet import reactor 33 from twisted.internet import reactor
34 from twisted.internet import error as internet_error
34 35
35 NS_XMPP_CLIENT = "jabber:client" 36 NS_XMPP_CLIENT = "jabber:client"
36 NS_CHAT_STATES = "http://jabber.org/protocol/chatstates" 37 NS_CHAT_STATES = "http://jabber.org/protocol/chatstates"
37 CHAT_STATES = ["active", "inactive", "gone", "composing", "paused"] 38 CHAT_STATES = ["active", "inactive", "gone", "composing", "paused"]
38 MESSAGE_TYPES = ["chat", "groupchat"] 39 MESSAGE_TYPES = ["chat", "groupchat"]
370 self.host.generateMessageXML(mess_data) 371 self.host.generateMessageXML(mess_data)
371 mess_data['xml'].addElement(state, NS_CHAT_STATES) 372 mess_data['xml'].addElement(state, NS_CHAT_STATES)
372 client.xmlstream.send(mess_data['xml']) 373 client.xmlstream.send(mess_data['xml'])
373 374
374 self.state = state 375 self.state = state
376 try:
377 self.timer.cancel()
378 except (internet_error.AlreadyCalled, AttributeError):
379 pass
375 380
376 if transition["next_state"] and transition["delay"] > 0: 381 if transition["next_state"] and transition["delay"] > 0:
377 self.timer = reactor.callLater(transition["delay"], self._onEvent, transition["next_state"]) 382 self.timer = reactor.callLater(transition["delay"], self._onEvent, transition["next_state"])
378 383
379 384