вторник, 26 июня 2012 г.

Создание телефонной книги друзей vk.com с последующим переносом в google contacts

Надеюсь, что скоро куплю адроидофон, поэтому готовлюсь как морально, так и программно :) Первая мысль - как бы поменьше возиться с забиванием телефонной книги в новом устройстве. Так как в vk.com можно получить телефонные номера, а android замечательно синхронизируется с google contaсts, было решено написать скрипт, который берет инфу из вконтакта, пишит её в csv - файл, а затем мы его запросто грузим куда надо. Кстати, почему именно csv? Данный формат поддерживается не только google, но еще и кучей сторонних сайтов, правда там скорей всего другой формат данных, но хз, может и такой сойдет.

Собственно формат гугловского csv имеет вид:
Name,Given Name,Additional Name,Family Name,Yomi Name,Given Name Yomi,Additional Name Yomi,Family Name Yomi,Name Prefix,Name Suffix,Initials,Nickname,Short Name,Maiden Name,Birthday,Gender,Location,Billing Information,Directory Server,Mileage,Occupation,Hobby,Sensitivity,Priority,Subject,Notes,Group Membership,E-mail 1 - Type,E-mail 1 - Value,Phone 1 - Type,Phone 1 - Value,Phone 2 - Type,Phone 2 - Value,Address 1 - Type,Address 1 - Formatted,Address 1 - Street,Address 1 - City,Address 1 - PO Box,Address 1 - Region,Address 1 - Postal Code,Address 1 - Country,Address 1 - Extended Address,Website 1 - Type,Website 1 - Value
Поля пропускать нельзя, т.е. нельзя задать только имя и фамилию не задавая всей остальной информации. Всё, вроде больше знать ничего не нужно. Как работать с API я уже описывал в посте про граббер музыки, поэтому недолго думая получаем информацию о друзьях и пишем в файл, соблюдая формат.

Запись выглядит примерно так (я не записываю друзей, которые вообще не открыли ни одного телефонного номера):
for i in friends:
            kol=0
           tmp = i["last_name"] + ' '+ i["first_name"] + ',' + i["last_name"] + ',,' + i["first_name"] + ',,,,,,,,,,,'
           if 'bdate' in i:
               tmp += transform_birthday(i["bdate"])
           else:
            tmp += ' '
            tmp += ',,,,,,,,,,,,* My Contacts, '
            if 'domain' in i:
                tmp += '* Home,'+tmp["domain"]+','
            else:
                tmp += ',,'
            if 'home_phone' in i:
             k = transform_phone(i['home_phone'])
             if k>0:
                 tmp += 'Home,'+k+','
                     kol+=1
            else:
                tmp += ',,'  
            if 'mobile_phone' in i:
             k = transform_phone(i['mobile_phone'])
             if k>0:
                 tmp += 'Mobile,'+k+','
                     kol+=1
                 else:
                     tmp += ',,'
            tmp += ',,,,,,,,,,\n'
            if kol>0:
                f.write(tmp)    


Ccылка на скачку: https://www.dropbox.com/s/rbcq3dru12rah38/CSVexportContaks.py

Комментариев нет:

Отправить комментарий