X-Git-Url: http://git.maemo.org/git/?p=theonering;a=blobdiff_plain;f=src%2Faliasing.py;h=8476e9c04d8dadfef0ec233484e4e85adc174310;hp=2ac7d9876abcc449cd2a5057c7e5a86aeab6cd55;hb=afa4cdb64e451070cf87cc02f257c582fa057f53;hpb=df3ad0bda8f2b08389254d76e189cc845e4c768e diff --git a/src/aliasing.py b/src/aliasing.py index 2ac7d98..8476e9c 100644 --- a/src/aliasing.py +++ b/src/aliasing.py @@ -1,17 +1,17 @@ import logging +import dbus import telepathy import tp -import gtk_toolbox -import util.misc as util_misc +import util.misc as misc_utils import handle -_moduleLogger = logging.getLogger('aliasing') +_moduleLogger = logging.getLogger(__name__) -def _make_pretty_with_areacodde(phonenumber): +def _make_pretty_with_areacode(phonenumber): prettynumber = "(%s)" % (phonenumber[0:3], ) if 3 < len(phonenumber): prettynumber += " %s" % (phonenumber[3:6], ) @@ -28,13 +28,14 @@ def _make_pretty_local(phonenumber): def _make_pretty_international(phonenumber): + prettynumber = phonenumber if phonenumber.startswith("0"): prettynumber = "+%s " % (phonenumber[0:3], ) if 3 < len(phonenumber): - prettynumber += _make_pretty_with_areacodde(phonenumber[3:]) - if phonenumber.startswith("1"): + prettynumber += _make_pretty_with_areacode(phonenumber[3:]) + elif phonenumber.startswith("1"): prettynumber = "1 " - prettynumber += _make_pretty_with_areacodde(phonenumber[1:]) + prettynumber += _make_pretty_with_areacode(phonenumber[1:]) return prettynumber @@ -72,7 +73,7 @@ def make_pretty(phonenumber): if phonenumber is None or phonenumber is "": return "" - phonenumber = util_misc.normalize_number(phonenumber) + phonenumber = misc_utils.normalize_number(phonenumber) if phonenumber[0] == "+": prettynumber = _make_pretty_international(phonenumber[1:]) @@ -81,7 +82,7 @@ def make_pretty(phonenumber): elif 8 < len(phonenumber) and phonenumber[0] in ("0", "1"): prettynumber = _make_pretty_international(phonenumber) elif 7 < len(phonenumber): - prettynumber = _make_pretty_with_areacodde(phonenumber) + prettynumber = _make_pretty_with_areacode(phonenumber) elif 3 < len(phonenumber): prettynumber = _make_pretty_local(phonenumber) else: @@ -108,35 +109,39 @@ class AliasingMixin(tp.ConnectionInterfaceAliasing): """ raise NotImplementedError("Abstract property called") - def handle(self, handleType, handleId): + def get_handle_by_id(self, handleType, handleId): """ @abstract """ raise NotImplementedError("Abstract function called") - @gtk_toolbox.log_exception(_moduleLogger) + @misc_utils.log_exception(_moduleLogger) def GetAliasFlags(self): return 0 - @gtk_toolbox.log_exception(_moduleLogger) + @misc_utils.log_exception(_moduleLogger) def RequestAliases(self, contactHandleIds): _moduleLogger.debug("Called RequestAliases") return [self._get_alias(handleId) for handleId in contactHandleIds] - @gtk_toolbox.log_exception(_moduleLogger) + @misc_utils.log_exception(_moduleLogger) def GetAliases(self, contactHandleIds): _moduleLogger.debug("Called GetAliases") - idToAlias = dict( - (handleId, self._get_alias(handleId)) - for handleId in contactHandleIds + idToAlias = dbus.Dictionary( + ( + (handleId, self._get_alias(handleId)) + for handleId in contactHandleIds + ), + signature="us", ) return idToAlias - @gtk_toolbox.log_exception(_moduleLogger) + @misc_utils.log_exception(_moduleLogger) def SetAliases(self, aliases): _moduleLogger.debug("Called SetAliases") # first validate that no other handle types are included + handleId, alias = None, None for handleId, alias in aliases.iteritems(): h = self.get_handle_by_id(telepathy.HANDLE_TYPE_CONTACT, handleId) if isinstance(h, handle.ConnectionHandle): @@ -144,11 +149,11 @@ class AliasingMixin(tp.ConnectionInterfaceAliasing): else: raise telepathy.errors.PermissionDenied("No user customizable aliases") - uglyNumber = util_misc.normalize_number(alias) + uglyNumber = misc_utils.normalize_number(alias) if len(uglyNumber) == 0: # Reset to the original from login if one was provided uglyNumber = self.callbackNumberParameter - if not util_misc.is_valid_number(uglyNumber): + if not misc_utils.is_valid_number(uglyNumber): raise telepathy.errors.InvalidArgument("Invalid phone number %r" % (uglyNumber, )) # Update callback @@ -167,8 +172,8 @@ class AliasingMixin(tp.ConnectionInterfaceAliasing): return userAlias else: number = h.phoneNumber - if number: + try: contactAlias = self.session.addressbook.get_contact_name(number) - else: + except KeyError: contactAlias = make_pretty(number) return contactAlias