Mercurial > libervia-backend
comparison src/core/sat_main.py @ 1290:faa1129559b8 frontends_multi_profiles
core, frontends: refactoring to base Libervia on QuickFrontend (big mixed commit):
/!\ not finished, everything is still instable !
- bridge: DBus bridge has been modified to allow blocking call to be called in the same way as asynchronous calls
- bridge: calls with a callback and no errback are now possible, default errback log the error
- constants: removed hack to manage presence without OrderedDict, as an OrderedDict like class has been implemented in Libervia
- core: getLastResource has been removed and replaced by getMainResource (there is a global better management of resources)
- various style improvments: use of constants when possible, fixed variable overlaps, import of module instead of direct class import
- frontends: printInfo and printMessage methods in (Quick)Chat are more generic (use of extra instead of timestamp)
- frontends: bridge creation and option parsing (command line arguments) are now specified by the frontend in QuickApp __init__
- frontends: ProfileManager manage a more complete plug sequence (some stuff formerly manage in contact_list have moved to ProfileManager)
- quick_frontend (quick_widgets): QuickWidgetsManager is now iterable (all widgets are then returned), or can return an iterator on a specific class (return all widgets of this class) with getWidgets
- frontends: tools.jid can now be used in Pyjamas, with some care
- frontends (XMLUI): profile is now managed
- core (memory): big improvment on entities cache management (and specially resource management)
- core (params/exceptions): added PermissionError
- various fixes and improvments, check diff for more details
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 24 Jan 2015 01:00:29 +0100 |
parents | f8a8434dbac7 |
children | bb9c32249778 |
comparison
equal
deleted
inserted
replaced
1289:653f2e2eea31 | 1290:faa1129559b8 |
---|---|
88 self.bridge.register("asyncDeleteProfile", self.memory.asyncDeleteProfile) | 88 self.bridge.register("asyncDeleteProfile", self.memory.asyncDeleteProfile) |
89 self.bridge.register("asyncConnect", self.asyncConnect) | 89 self.bridge.register("asyncConnect", self.asyncConnect) |
90 self.bridge.register("disconnect", self.disconnect) | 90 self.bridge.register("disconnect", self.disconnect) |
91 self.bridge.register("getContacts", self.getContacts) | 91 self.bridge.register("getContacts", self.getContacts) |
92 self.bridge.register("getContactsFromGroup", self.getContactsFromGroup) | 92 self.bridge.register("getContactsFromGroup", self.getContactsFromGroup) |
93 self.bridge.register("getLastResource", self.memory._getLastResource) | 93 self.bridge.register("getMainResource", self.memory._getMainResource) |
94 self.bridge.register("getPresenceStatuses", self.memory._getPresenceStatuses) | 94 self.bridge.register("getPresenceStatuses", self.memory._getPresenceStatuses) |
95 self.bridge.register("getWaitingSub", self.memory.getWaitingSub) | 95 self.bridge.register("getWaitingSub", self.memory.getWaitingSub) |
96 self.bridge.register("getWaitingConf", self.getWaitingConf) | 96 self.bridge.register("getWaitingConf", self.getWaitingConf) |
97 self.bridge.register("sendMessage", self._sendMessage) | 97 self.bridge.register("sendMessage", self._sendMessage) |
98 self.bridge.register("getConfig", self._getConfig) | 98 self.bridge.register("getConfig", self._getConfig) |
480 mess_data["type"] = 'normal' | 480 mess_data["type"] = 'normal' |
481 elif not mess_data["to"].resource: # if to JID has a resource, the type is not 'groupchat' | 481 elif not mess_data["to"].resource: # if to JID has a resource, the type is not 'groupchat' |
482 # we may have a groupchat message, we check if the we know this jid | 482 # we may have a groupchat message, we check if the we know this jid |
483 try: | 483 try: |
484 entity_type = self.memory.getEntityData(mess_data["to"], ['type'], profile)["type"] | 484 entity_type = self.memory.getEntityData(mess_data["to"], ['type'], profile)["type"] |
485 #FIXME: should entity_type manage ressources ? | 485 #FIXME: should entity_type manage resources ? |
486 except (exceptions.UnknownEntityError, KeyError): | 486 except (exceptions.UnknownEntityError, KeyError): |
487 entity_type = "contact" | 487 entity_type = "contact" |
488 | 488 |
489 if entity_type == "chatroom": | 489 if entity_type == "chatroom": |
490 mess_data["type"] = 'groupchat' | 490 mess_data["type"] = 'groupchat' |
498 | 498 |
499 if not no_trigger and not send_only: | 499 if not no_trigger and not send_only: |
500 if not self.trigger.point("sendMessage", mess_data, pre_xml_treatments, post_xml_treatments, profile): | 500 if not self.trigger.point("sendMessage", mess_data, pre_xml_treatments, post_xml_treatments, profile): |
501 return defer.succeed(None) | 501 return defer.succeed(None) |
502 | 502 |
503 log.debug(_("Sending jabber message of type [%(type)s] to %(to)s...") % {"type": mess_data["type"], "to": to_jid.full()}) | 503 log.debug(_(u"Sending message (type {type}, to {to})").format(type=mess_data["type"], to=to_jid.full())) |
504 | 504 |
505 def cancelErrorTrap(failure): | 505 def cancelErrorTrap(failure): |
506 """A message sending can be cancelled by a plugin treatment""" | 506 """A message sending can be cancelled by a plugin treatment""" |
507 failure.trap(exceptions.CancelError) | 507 failure.trap(exceptions.CancelError) |
508 | 508 |