Mercurial > libervia-web
changeset 214:7b26be266ab1
plugin XEP-0085: Chat State Notifications
TODO: check for security limit in core/memory while setting a parameter
author | souliane <souliane@mailoo.org> |
---|---|
date | Fri, 06 Sep 2013 16:23:30 +0200 |
parents | 8bbac49765d6 |
children | e830a0c60d32 |
files | browser_side/panels.py libervia.tac |
diffstat | 2 files changed, 30 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/browser_side/panels.py Fri Sep 06 16:07:35 2013 +0200 +++ b/browser_side/panels.py Fri Sep 06 16:23:30 2013 +0200 @@ -206,6 +206,14 @@ self.setText('') self._timeCb(None) #we remove the popup sender.cancelKey() + else: + self.__onComposing() + + def __onComposing(self): + """Callback when the user is composing a text.""" + if hasattr(self._selected_cache, "target"): + target_s = str(self._selected_cache.target) + self.host.bridge.call('chatStateComposing', None, target_s) def onMouseUp(self, sender, x, y): size = (self.getOffsetWidth(), self.getOffsetHeight())
--- a/libervia.tac Fri Sep 06 16:07:35 2013 +0200 +++ b/libervia.tac Fri Sep 06 16:23:30 2013 +0200 @@ -185,10 +185,10 @@ self.sat_host.bridge.setPresence('', '', 0, {'':status}, profile) - def jsonrpc_sendMessage(self, to_jid, msg, subject, _type): + def jsonrpc_sendMessage(self, to_jid, msg, subject, _type, options={}): """send message""" profile = ISATSession(self.session).profile - return self.sat_host.bridge.sendMessage(to_jid, msg, subject, _type, profile) + return self.sat_host.bridge.sendMessage(to_jid, msg, subject, _type, options, profile) def jsonrpc_sendMblog(self, _type, dest, text): """ Send microblog message @@ -352,22 +352,30 @@ profile = ISATSession(self.session).profile return self.sat_host.bridge.getCard(jid, profile) - #def jsonrpc_getParamsUI(self): - # """Return the parameters XMLUI for profile""" - # profile = ISATSession(self.session).profile - # d = defer.Deferred() - # self.sat_host.bridge.getParamsUI(profile, callback=d.callback, errback=d.errback) - # #d.addCallback(lambda result: unicode(result)) - # return d + def jsonrpc_getParamsUI(self): + """Return the parameters XMLUI for profile""" + profile = ISATSession(self.session).profile + d = defer.Deferred() + security_limit = 0 + self.sat_host.bridge.getParamsUI(security_limit, profile, callback=d.callback, errback=d.errback) + return d - #def jsonrpc_setParam(self, name, value, category): - # profile = ISATSession(self.session).profile - # return self.sat_host.bridge.setParam(name, value, category, profile) + def jsonrpc_setParam(self, name, value, category): + profile = ISATSession(self.session).profile + return self.sat_host.bridge.setParam(name, value, category, profile) def jsonrpc_launchAction(self, action_type, data): profile = ISATSession(self.session).profile return self.sat_host.bridge.launchAction(action_type, data, profile) + def jsonrpc_chatStateComposing(self, to_jid_s): + """Broadcast a signal for "composing" state. + @param to_jid_s: contact the user is composing to + """ + profile = ISATSession(self.session).profile + self.sat_host.bridge.chatStateComposing(to_jid_s, profile) + + class Register(jsonrpc.JSONRPC): """This class manage the registration procedure with SàT It provide an api for the browser, check password and setup the web server""" @@ -782,7 +790,8 @@ #plugins for signal_name in ['personalEvent', 'roomJoined', 'roomUserJoined', 'roomUserLeft', 'tarotGameStarted', 'tarotGameNew', 'tarotGameChooseContrat', 'tarotGameShowCards', 'tarotGameInvalidCards', 'tarotGameCardsPlayed', 'tarotGameYourTurn', 'tarotGameScore', - 'radiocolStarted', 'radiocolPreload', 'radiocolPlay', 'radiocolNoUpload', 'radiocolUploadOk', 'radiocolSongRejected']: + 'radiocolStarted', 'radiocolPreload', 'radiocolPlay', 'radiocolNoUpload', 'radiocolUploadOk', 'radiocolSongRejected', + 'chatStateReceived']: self.bridge.register(signal_name, self.signal_handler.getGenericCb(signal_name), "plugin") self.media_dir = self.bridge.getConfig('','media_dir') self.local_dir = self.bridge.getConfig('','local_dir')