Importing iPhone Contacts
(Added code, too tired to learn to wiki properly. Someone can tidy later ;)) |
m (Reverted edits by 134.122.32.9 (Talk) to last revision by 208.80.119.67) |
||
(4 intermediate revisions not shown) | |||
Line 8: | Line 8: | ||
== contact.py == | == contact.py == | ||
- | The following code will take the output csv file and transfer it into one large vcf file which you can import using the Contacts application on your | + | The following code will take the output csv file and transfer it into one large vcf file which you can import using the Contacts application on your [[Nokia N900|N900]]. One drawback to using the securedContacts seems to be that any location information is lost, but I found this import a million times better than doing it by hand. Just copy the code into a new file "contact.py" and then rename your csv along side it as "contacts.csv". |
- | One drawback to using the securedContacts seems to be that any location information is lost, but I found this import a million times better than doing it by hand. Just copy the code into a new file "contact.py" and then rename your csv along side it as "contacts.csv". | + | |
- | You can run the code with | + | You can run the code with: |
- | python contact.py > contacts.vcf | + | python contact.py > contacts.vcf |
- | < | + | <source lang="python"> |
#!/usr/bin/env python | #!/usr/bin/env python | ||
import re | import re | ||
Line 43: | Line 42: | ||
self.details['EMAIL;TYPE=PREF,INTERNET:']=value | self.details['EMAIL;TYPE=PREF,INTERNET:']=value | ||
def check(self,first,last): | def check(self,first,last): | ||
- | + | return first == self.first and last == self.last | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | for i in fh | + | for i in fh: |
line = i.replace("\n","") | line = i.replace("\n","") | ||
last,first,detail = i.split(';') | last,first,detail = i.split(';') | ||
- | |||
for i in objectlist: | for i in objectlist: | ||
if i.check(first,last): | if i.check(first,last): | ||
i.update(detail) | i.update(detail) | ||
- | |||
break | break | ||
- | + | else: | |
obj = contact(first,last) | obj = contact(first,last) | ||
obj.update(detail) | obj.update(detail) | ||
Line 72: | Line 63: | ||
print "N:"+i.last+";"+i.first | print "N:"+i.last+";"+i.first | ||
print "FN:"+i.first+" "+i.last | print "FN:"+i.first+" "+i.last | ||
- | for j in i.details. | + | for j, v in i.details.items(): |
- | print j+ | + | print j+v |
now = datetime.datetime | now = datetime.datetime | ||
n = now.now() | n = now.now() | ||
print "REV:"+str(n.year)+str(n.month).zfill(2)+str(n.day).zfill(2)+"T"+str(n.hour).zfill(2)+str(n.minute).zfill(2)+str(n.second).zfill(2)+"Z" | print "REV:"+str(n.year)+str(n.month).zfill(2)+str(n.day).zfill(2)+"T"+str(n.hour).zfill(2)+str(n.minute).zfill(2)+str(n.second).zfill(2)+"Z" | ||
print "END:VCARD" | print "END:VCARD" | ||
- | </ | + | </source> |
After your vcf file is generated, you can place it onto your n900, then in the Contacts application, click the title bar >>> "Get contacts" >>> Import Contacts". Browse to your contacts.vcf file and click import! | After your vcf file is generated, you can place it onto your n900, then in the Contacts application, click the title bar >>> "Get contacts" >>> Import Contacts". Browse to your contacts.vcf file and click import! | ||
Hope this helps someone, this code was pretty rushed and got the job done for me. Phone number regexps worked for my Australian phone numbers, you may have to make changes for overseas numbers. | Hope this helps someone, this code was pretty rushed and got the job done for me. Phone number regexps worked for my Australian phone numbers, you may have to make changes for overseas numbers. | ||
+ | |||
+ | [[Category:HowTo]] | ||
+ | [[Category:Power users]] |
Latest revision as of 16:37, 24 February 2025
[edit] Import how to
To import data, we first need to jailbreak the iPhone. There are many tutorials for this on the net. After jailbreaking, ensure that you have the package "Cydia" installed (usually included by default).
- From Cydia, install securedContacts (from the BigBoss repository)
- Run securedContacts, and download the resulting csv file on your PC.
[edit] contact.py
The following code will take the output csv file and transfer it into one large vcf file which you can import using the Contacts application on your N900. One drawback to using the securedContacts seems to be that any location information is lost, but I found this import a million times better than doing it by hand. Just copy the code into a new file "contact.py" and then rename your csv along side it as "contacts.csv".
You can run the code with:
python contact.py > contacts.vcf
#!/usr/bin/env python import re import datetime, time fh = open('contacts.csv','r') objectlist = [] class contact: def __init__(self,first,last): self.last = last self.first = first self.details={} def update(self,detail): value = detail.replace(" ","") value = value.strip('\n') homenum = re.compile("^[0-9]{8}$") mobnum = re.compile("^[0-9]{10}$") mobnum2 = re.compile("^\+[0-9]{11}$") email = re.compile("^.*@.*$") if homenum.search(value): self.details['TEL;TYPE=HOME,VOICE:']=value elif mobnum.search(value): self.details['TEL;TYPE=MOBILE,VOICE:']=value elif mobnum2.search(value): self.details['TEL;TYPE=MOBILE,VOICE:']=value elif email.search(value): self.details['EMAIL;TYPE=PREF,INTERNET:']=value def check(self,first,last): return first == self.first and last == self.last for i in fh: line = i.replace("\n","") last,first,detail = i.split(';') for i in objectlist: if i.check(first,last): i.update(detail) break else: obj = contact(first,last) obj.update(detail) objectlist.append(obj) for i in objectlist: print "BEGIN:VCARD" print "VERSION:3.0" print "N:"+i.last+";"+i.first print "FN:"+i.first+" "+i.last for j, v in i.details.items(): print j+v now = datetime.datetime n = now.now() print "REV:"+str(n.year)+str(n.month).zfill(2)+str(n.day).zfill(2)+"T"+str(n.hour).zfill(2)+str(n.minute).zfill(2)+str(n.second).zfill(2)+"Z" print "END:VCARD"
After your vcf file is generated, you can place it onto your n900, then in the Contacts application, click the title bar >>> "Get contacts" >>> Import Contacts". Browse to your contacts.vcf file and click import!
Hope this helps someone, this code was pretty rushed and got the job done for me. Phone number regexps worked for my Australian phone numbers, you may have to make changes for overseas numbers.
- This page was last modified on 24 February 2025, at 16:37.
- This page has been accessed 10,810 times.