<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,8 +1,7 @@
 #!/usr/bin/python
 
 import sys, pinyin
-from Foundation import *
-from ScriptingBridge import *
+import AddressBook
 
 reset = False
 
@@ -42,40 +41,41 @@ def contain_cjk_char(line):
 
     return 0
 
-def assign_pinyin(getName, getPhoneticName, setPhoneticName):
-    name = getName()
+def assign_pinyin(person, propertyName, phoneticPropertyName):
+    name = person.valueForProperty_(propertyName)
 
     if name and contain_cjk_char(name):
-        pname = getPhoneticName()
+        pname = person.valueForProperty_(phoneticPropertyName)
         if not reset and pname:
             return None
 
         name_py = pinyin.hanzi2pinyin(name).capitalize()
-        setPhoneticName(name_py)
+        person.setValue_forProperty_(name_py, phoneticPropertyName)
 
         return (name, name_py)
 
     return None
 
-ab = SBApplication.applicationWithBundleIdentifier_(&quot;com.apple.AddressBook&quot;)
+ab = AddressBook.ABAddressBook.sharedAddressBook()
 
 if len(sys.argv) &gt; 1 and sys.argv[0] == '-r':
     reset = True
 
 for person in ab.people():
-    fname_pair = assign_pinyin(person.firstName, 
-                               person.phoneticFirstName,
-                               person.setPhoneticFirstName_)
-    lname_pair = assign_pinyin(person.lastName, 
-                               person.phoneticLastName,
-                               person.setPhoneticLastName_)
+    fname_pair = assign_pinyin(person,
+                               AddressBook.kABFirstNameProperty,
+                               AddressBook.kABFirstNamePhoneticProperty)
+    lname_pair = assign_pinyin(person,
+                               AddressBook.kABLastNameProperty,
+                               AddressBook.kABLastNamePhoneticProperty)
 
     if fname_pair or lname_pair:
         print &quot;%s%s (%s%s%s)&quot; % ((fname_pair and fname_pair[0]) or &quot;&quot;,
                                  (lname_pair and lname_pair[0]) or &quot;&quot;,
-                                 (lname_pair and fname_pair and &quot; &quot;) or &quot;&quot;,
                                  (fname_pair and fname_pair[1]) or &quot;&quot;,
+                                 (lname_pair and fname_pair and &quot; &quot;) or &quot;&quot;,
                                  (lname_pair and lname_pair[1]) or &quot;&quot;)
 
 print &quot;Done.&quot;
+ab.save()
 </diff>
      <filename>AssignPhoneticName.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f6a192cadc2c55c29101f3a889db9ed525e81874</id>
    </parent>
  </parents>
  <author>
    <name>Jjgod Jiang</name>
    <email>gzjjgod@gmail.com</email>
  </author>
  <url>http://github.com/jjgod/apn/commit/2e8a672b459990c733f600773a2299de6fc42b87</url>
  <id>2e8a672b459990c733f600773a2299de6fc42b87</id>
  <committed-date>2009-08-13T00:01:30-07:00</committed-date>
  <authored-date>2009-08-13T00:01:30-07:00</authored-date>
  <message>Use PyObjC AddressBook API instead of ScriptingBridge</message>
  <tree>4ff07801a2e53d9879b3d14515a1d2bf7fee0302</tree>
  <committer>
    <name>Jjgod Jiang</name>
    <email>gzjjgod@gmail.com</email>
  </committer>
</commit>
