import logging
import util.coroutines as coroutines
-import util.misc as util_misc
+import util.misc as misc_utils
-_moduleLogger = logging.getLogger("gvoice.addressbook")
+_moduleLogger = logging.getLogger(__name__)
class Addressbook(object):
return self._numbers.iterkeys()
def get_contact_name(self, strippedNumber):
+ """
+ @throws KeyError if contact not in list (so client can choose what to display)
+ """
return self._numbers[strippedNumber][0]
def get_phone_type(self, strippedNumber):
- return self._numbers[strippedNumber][1]
+ try:
+ return self._numbers[strippedNumber][1]
+ except KeyError:
+ return "unknown"
def is_blocked(self, strippedNumber):
- return self._numbers[strippedNumber][1]["response"] == self._RESPONSE_BLOCKED
+ try:
+ return self._numbers[strippedNumber][2]["response"] == self._RESPONSE_BLOCKED
+ except KeyError:
+ return False
def _populate_contacts(self):
if self._numbers:
contactName = contactDetails["name"]
contactNumbers = (
(
+ misc_utils.normalize_number(numberDetails["phoneNumber"]),
numberDetails.get("phoneType", "Mobile"),
- util_misc.normalize_number(numberDetails["phoneNumber"]),
- contactDetails,
)
for numberDetails in contactDetails["numbers"]
)
self._numbers.update(
- (number, (contactName, phoneType))
- for (phoneType, number) in contactNumbers
+ (number, (contactName, phoneType, contactDetails))
+ for (number, phoneType) in contactNumbers
)