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