comparison frontends/src/bridge/DBus.py @ 1955:633b5c21aefd

backend, frontend: messages refactoring (huge commit, not finished): /!\ database schema has been modified, do a backup before updating message have been refactored, here are the main changes: - languages are now handled - all messages have an uid (internal to SàT) - message updating is anticipated - subject is now first class - new naming scheme is used newMessage => messageNew, getHistory => historyGet, sendMessage => messageSend - minimal compatibility refactoring in quick_frontend/Primitivus, better refactoring should follow - threads handling - delayed messages are saved into history - info messages may also be saved in history (e.g. to keep track of people joining/leaving a room) - duplicate messages should be avoided - historyGet return messages in right order, no need to sort again - plugins have been updated to follow new features, some of them need to be reworked (e.g. OTR) - XEP-0203 (Delayed Delivery) is now fully handled in core, the plugin just handle disco and creation of a delay element - /!\ jp and Libervia are currently broken, as some features of Primitivus It has been put in one huge commit to avoid breaking messaging between changes. This is the main part of message refactoring, other commits will follow to take profit of the new features/behaviour.
author Goffi <goffi@goffi.org>
date Tue, 24 May 2016 22:11:04 +0200
parents 2daf7b4c6756
children a2bc5089c2eb
comparison
equal deleted inserted replaced
1943:ccfe45302a5c 1955:633b5c21aefd
334 if errback is None: 334 if errback is None:
335 errback = log.error 335 errback = log.error
336 error_handler = lambda err:errback(dbus_to_bridge_exception(err)) 336 error_handler = lambda err:errback(dbus_to_bridge_exception(err))
337 return self.db_core_iface.getFeatures(profile_key, timeout=const_TIMEOUT, reply_handler=callback, error_handler=error_handler) 337 return self.db_core_iface.getFeatures(profile_key, timeout=const_TIMEOUT, reply_handler=callback, error_handler=error_handler)
338 338
339 def getHistory(self, from_jid, to_jid, limit, between=True, search='', profile="@NONE@", callback=None, errback=None):
340 if callback is None:
341 error_handler = None
342 else:
343 if errback is None:
344 errback = log.error
345 error_handler = lambda err:errback(dbus_to_bridge_exception(err))
346 return self.db_core_iface.getHistory(from_jid, to_jid, limit, between, search, profile, timeout=const_TIMEOUT, reply_handler=callback, error_handler=error_handler)
347
348 def getMainResource(self, contact_jid, profile_key="@DEFAULT@", callback=None, errback=None): 339 def getMainResource(self, contact_jid, profile_key="@DEFAULT@", callback=None, errback=None):
349 if callback is None: 340 if callback is None:
350 error_handler = None 341 error_handler = None
351 else: 342 else:
352 if errback is None: 343 if errback is None:
515 kwargs['timeout'] = const_TIMEOUT 506 kwargs['timeout'] = const_TIMEOUT
516 kwargs['reply_handler'] = callback 507 kwargs['reply_handler'] = callback
517 kwargs['error_handler'] = error_handler 508 kwargs['error_handler'] = error_handler
518 return self.db_core_iface.getWaitingSub(profile_key, **kwargs) 509 return self.db_core_iface.getWaitingSub(profile_key, **kwargs)
519 510
511 def historyGet(self, from_jid, to_jid, limit, between=True, search='', profile="@NONE@", callback=None, errback=None):
512 if callback is None:
513 error_handler = None
514 else:
515 if errback is None:
516 errback = log.error
517 error_handler = lambda err:errback(dbus_to_bridge_exception(err))
518 return self.db_core_iface.historyGet(from_jid, to_jid, limit, between, search, profile, timeout=const_TIMEOUT, reply_handler=callback, error_handler=error_handler)
519
520 def isConnected(self, profile_key="@DEFAULT@", callback=None, errback=None): 520 def isConnected(self, profile_key="@DEFAULT@", callback=None, errback=None):
521 if callback is None: 521 if callback is None:
522 error_handler = None 522 error_handler = None
523 else: 523 else:
524 if errback is None: 524 if errback is None:
552 kwargs['timeout'] = const_TIMEOUT 552 kwargs['timeout'] = const_TIMEOUT
553 kwargs['reply_handler'] = callback 553 kwargs['reply_handler'] = callback
554 kwargs['error_handler'] = error_handler 554 kwargs['error_handler'] = error_handler
555 return self.db_core_iface.loadParamsTemplate(filename, **kwargs) 555 return self.db_core_iface.loadParamsTemplate(filename, **kwargs)
556 556
557 def messageSend(self, to_jid, message, subject='', mess_type="auto", extra={}, profile_key="@NONE@", callback=None, errback=None):
558 if callback is None:
559 error_handler = None
560 else:
561 if errback is None:
562 errback = log.error
563 error_handler = lambda err:errback(dbus_to_bridge_exception(err))
564 return self.db_core_iface.messageSend(to_jid, message, subject, mess_type, extra, profile_key, timeout=const_TIMEOUT, reply_handler=callback, error_handler=error_handler)
565
557 def paramsRegisterApp(self, xml, security_limit=-1, app='', callback=None, errback=None): 566 def paramsRegisterApp(self, xml, security_limit=-1, app='', callback=None, errback=None):
558 if callback is None: 567 if callback is None:
559 error_handler = None 568 error_handler = None
560 else: 569 else:
561 if errback is None: 570 if errback is None:
659 kwargs['timeout'] = const_TIMEOUT 668 kwargs['timeout'] = const_TIMEOUT
660 kwargs['reply_handler'] = callback 669 kwargs['reply_handler'] = callback
661 kwargs['error_handler'] = error_handler 670 kwargs['error_handler'] = error_handler
662 return self.db_core_iface.saveParamsTemplate(filename, **kwargs) 671 return self.db_core_iface.saveParamsTemplate(filename, **kwargs)
663 672
664 def sendMessage(self, to_jid, message, subject='', mess_type="auto", extra={}, profile_key="@NONE@", callback=None, errback=None):
665 if callback is None:
666 error_handler = None
667 else:
668 if errback is None:
669 errback = log.error
670 error_handler = lambda err:errback(dbus_to_bridge_exception(err))
671 return self.db_core_iface.sendMessage(to_jid, message, subject, mess_type, extra, profile_key, timeout=const_TIMEOUT, reply_handler=callback, error_handler=error_handler)
672
673 def setParam(self, name, value, category, security_limit=-1, profile_key="@DEFAULT@", callback=None, errback=None): 673 def setParam(self, name, value, category, security_limit=-1, profile_key="@DEFAULT@", callback=None, errback=None):
674 if callback is None: 674 if callback is None:
675 error_handler = None 675 error_handler = None
676 else: 676 else:
677 if errback is None: 677 if errback is None: