diff options
Diffstat (limited to 'sunshine')
-rw-r--r-- | sunshine/connection.py | 42 | ||||
-rw-r--r-- | sunshine/connection_manager.py | 22 |
2 files changed, 42 insertions, 22 deletions
diff --git a/sunshine/connection.py b/sunshine/connection.py index 376cf59..18d119b 100644 --- a/sunshine/connection.py +++ b/sunshine/connection.py @@ -207,6 +207,9 @@ class SunshineConnection(telepathy.server.Connection, SunshineContacts ): + _secret_parameters = set([ + 'password' + ]) _mandatory_parameters = { 'account' : 's', 'password' : 's' @@ -214,25 +217,15 @@ class SunshineConnection(telepathy.server.Connection, _optional_parameters = { 'server' : 's', 'port' : 'q', - 'use-ssl' : 'b', 'export-contacts' : 'b' } _parameter_defaults = { 'server' : '91.197.13.67', - 'port' : dbus.UInt16(8074), - 'use-ssl' : dbus.Boolean(False), - 'export-contacts' : dbus.Boolean(False) + 'port' : 8074, + 'export-contacts' : False } def __init__(self, manager, parameters): - try: - parameters['export-contacts'] = bool(parameters['export-contacts']) - except KeyError: - parameters['export-contacts'] = False - try: - parameters['use-ssl'] = bool(parameters['use-ssl']) - except KeyError: - parameters['use-ssl'] = False self.check_parameters(parameters) try: @@ -672,6 +665,31 @@ class SunshineConnection(telepathy.server.Connection, def onXmlAction(self, xml): logger.info("XmlAction: %s" % xml.data) + #event occurs when user from our list change avatar + #<events> + # <event id="12989655759719404037"> + # <type>28</type> + # <sender>4634020</sender> + # <time>1270577383</time> + # <body></body> + # <bodyXML> + # <smallAvatar>http://avatars.gadu-gadu.pl/small/4634020?ts=1270577383</smallAvatar> + # </bodyXML> + # </event> + #</events> + try: + tree = ET.fromstring(xml.data) + core = tree.find("event") + type = core.find("type").text + if type == '28': + sender = core.find("sender").text + url = core.find("bodyXML/smallAvatar").text + print type + print sender + print url + except: + pass + def onXmlEvent(self, xml): logger.info("XmlEvent: %s" % xml,data) diff --git a/sunshine/connection_manager.py b/sunshine/connection_manager.py index 3a408bd..b2d99c5 100644 --- a/sunshine/connection_manager.py +++ b/sunshine/connection_manager.py @@ -48,25 +48,27 @@ class SunshineConnectionManager(telepathy.server.ConnectionManager): result = [] connection_class = self._protos[proto] + secret_parameters = connection_class._secret_parameters mandatory_parameters = connection_class._mandatory_parameters optional_parameters = connection_class._optional_parameters default_parameters = connection_class._parameter_defaults for parameter_name, parameter_type in mandatory_parameters.iteritems(): - param = (parameter_name, - telepathy.CONN_MGR_PARAM_FLAG_REQUIRED, - parameter_type, - '') + flags = telepathy.CONN_MGR_PARAM_FLAG_REQUIRED + if parameter_name in secret_parameters: + flags |= telepathy.CONN_MGR_PARAM_FLAG_SECRET + param = (parameter_name, flags, parameter_type, '') result.append(param) for parameter_name, parameter_type in optional_parameters.iteritems(): + flags = 0 + default = '' + if parameter_name in secret_parameters: + flags |= telepathy.CONN_MGR_PARAM_FLAG_SECRET if parameter_name in default_parameters: - param = (parameter_name, - telepathy.CONN_MGR_PARAM_FLAG_HAS_DEFAULT, - parameter_name, - default_parameters[parameter_name]) - else: - param = (parameter_name, 0, parameter_name, '') + flags |= telepathy.CONN_MGR_PARAM_FLAG_HAS_DEFAULT + default = default_parameters[parameter_name] + param = (parameter_name, flags, parameter_type, default) result.append(param) return result |