osx/addressbook/make_international.py
| changeset 20: |
b6b0e9bc226d |
| author: |
Greg Darke <greg+laptop@tsukasa.net.au> |
| date: |
Thu Apr 16 00:45:45 2009 +1000 (11 months ago) |
| permissions: |
-rwxr-xr-x |
| description: |
Ignore some stuff |
2# Copyright 2008 Greg Darke <greg+laptop@tsukasa.net.au> 3# Licensed for distribution under the GPL version 2, check COPYING for details 5# This program reads in all of your contact details (from AddressBook) and then 6# turns them into internation numbers (removes the leading 0, and repaces it 7# with +61). This program will also add an area code if it detects one is missing. 13reload(sys).setdefaultencoding('utf8') # Hacky 16logging.basicConfig(level=logging.DEBUG) 21 print >>sys.stderr, 'Seems you do not have pyobjc working for this version of python' 24def processPerson(person): 25 logger = logging.getLogger('main.processPerson') 26 phoneNumbers = person.valueForProperty_(AddressBook.kABPhoneProperty) 28 personName = '%s %s' % ( 29 person.valueForProperty_(AddressBook.kABFirstNameProperty), 30 person.valueForProperty_(AddressBook.kABLastNameProperty), 33 if phoneNumbers is None: 34 logger.debug('There are no phone number for %s', personName) 37 phoneNumbers = phoneNumbers.mutableCopy() 38 for i in xrange(phoneNumbers.count()): 39 number = phoneNumbers.valueAtIndex_(i) 40 name = phoneNumbers.labelAtIndex_(i) 41 number = number.replace(' ', '') 44 # Prepend the 02 area code 45 number = AREA_CODE + number 47 if number.startswith('(') and ')' in number: 48 number = number.replace('(', '').replace(')', '') 50 if number.startswith('0') and len(number)==10: 51 # Drop the first digit, and then prepend '+61' 52 number = COUNTRY_CODE + number[1:] 54 if number.startswith('+') and len(number)==12: 55 # Format it as follows: 57 number = u'%s %s %s %s' % (number[:3], number[3:4], number[4:8], number[8:12]) 58 logger.debug('%s: Setting number to %s (%s)', personName, number, name) 59 phoneNumbers.replaceValueAtIndex_withValue_(i, number) 61 logger.debug('%s: Got (weird) number %s (%s)', personName, number, name) 63 person.setValue_forProperty_(phoneNumbers, AddressBook.kABPhoneProperty) 66 book = AddressBook.ABAddressBook.sharedAddressBook() 68 for person in book.people(): 73if __name__ == "__main__":