Копирование контактов с Windows Mobile под Linux
Когда-то писал о том, как здорово организован в Windows Mobile 6.1 экспорт списка контактов. И вот, пару дней назад руки дошли, наконец, до попытки его экспорта под Linux.
Первым делом установил SynCE, позволяющий наладить связь с телефонами на Windows Mobile. В openSUSE установку можно осуществить из репозитория. Поставил наборчик для KDE4 и запустил synce-kpm. Заработало прямо сразу. Иконка, подозрительно напоминающая ActiveSync, появилась в трее, а при подключении телефона через USB — позеленела и радостно сообщила, что подключен Toshiba g810. В окошке synce-kpm появилась сопутствующая информация: имя и фамилия владельца, список установленного софта, уровень заряда, свободное место на флешке и всякое такое. Можно даже установить прямо оттуда софт из CAB-файлов (я не пробовал). Симпатичная программка.
Для извлечения же данных из телефона необходим OpenSync. Он тоже легко ставится из репозитория — zypper se opensynclibonepsync-synce-pluginlibonepsync-synce-plugin-legacyсюрприз баг. В репозитории 11.2 находится нерабочая версия libopensync-plugin-python-module
Дальше по инструкции настроил группу синхронизации. Плагина для синхронизации данных телефона с программами KDE4-PIM пока нет, да и мне не очень надо. Мне хотелось просто вынуть из телефона список контактов, поэтому выбрал плагин file-sync — чтобы получить контакты в виде файлов. Группу синхронизации можно создать как из консоли, так и из программки msynctool-gui. Синхронизацию же лучше проводить из консоли командой msynctool --sync ИМЯГРУППЫ
Когда синхронизация (то есть перекачивание контактов и записей календаря) закончилась, я отправился в заданную директорию смотреть, что же она мне принесла. А принесла она мне вот что:
Прекрасно, 313 файлов с загадочными названиями. Но иконки файлов подсказывают, как видно на рисунке, что это не просто файлы, а файлы календаря и контактов. Действительно, заглянув внутрь любым текстовым редактором можно увидеть волшебные надписи VCARD и VCALENDAR. То есть задача-минимум решена — я получил список контактов в открытом формате.
Отделить одно от другого не составит труда — достаточно написать скрипт, сортирующий файлы по результатам grep VCARDgrep VCALENDAR
Более серьезная (но тоже решаемая) проблема вскрылась, собственно, при попытке добавить контакт в KAddressBook. Оказалось, что человеческое имя «Иван Сигизмундович Квазитараканов» будет урезано и попадет в программу как «Иван». Что неудобно: мало ли, сколько у меня таких иванов в записной книжке. Поначалу показалось, что сделать ничего нельзя и пора проклинать испортившую записи Винду, но внимательный просмотр содержимого записи показал следующее:
Как мы видим, содержимое полей First Name и Name (которые в данном случае равны) почему-то разбито на несколько строк с повторением знака равенства в местах переноса. Если же удалить разрывы строк и повторные "=" — имя контакта восстанавливает целостность и отлично воспринимается адресной книгой. В данном случае не столь важно, виновата в этом мобильная винда, криво выдающая данные, или же программа KAddressBook, неспособная интерпретировать такого рода переносы. Важно, что эту проблему тоже можно решить небольшим скриптом (заменяющим =\n==
Резюме: я получил кучу файлов, которая нуждается в сортировке, коррекции и склеивании. Но главная задача — изъятие своих законных данных у капиталистической Винды — решена.
Да не, нормально.
Пара маленьких bash-скриптов и куча файлов разгребается автоматически и склеивается в один VCARD-файл, который прожуется любой адресной книгой.
А вообще это MS сложности создает тем, что не позволяет копировать PIM-данные в открытых форматах.
Здарова, Ромик!
На твой сайт уже с яндекса переправляют. Молодца :))))
Одногруппник :)
Привет, Серега! С Гугля тоже переправляют :)













нда….это ппц