Mercurial > libervia-backend
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: |