Информация об учетной записи пользователя Adium хранится в папке /Users/danielbeck/Library/Application Support/Adium 2.0/Users/Default
или, возможно, AFAIK, в одной из папок одного уровня.
Кажется, что они хранили контактную информацию в отдельных файлах в каталоге ByObject
(до конца 2008 года), но с тех пор переключились на один файл ByObjectPrefs.plist
.
Хотя каталог libpurple
содержит blist.xml
(список друзей), он не содержит псевдонимов пользователя Adium, а только последнее самостоятельно назначенное имя пользователя контакта, которое, как правило, не так уж и полезно, в зависимости от людей.
ByObjectPrefs.plist
- это двоичный файл `plist. Создать копию и конвертировать в Терминале в XML используя
plutil -convert xml1 /Users/danielbeck/Library/Application\ Support/Adium\ 2.0/Users/Default/ByObjectPrefs\ Copy.plist
К сожалению, я не смог правильно автоматически прочитать его формат. Копировать и вставлять прямо из файла - это больно, но все же работает.
Я восстановил контакты, используя следующее выражение:
cat ByObjectPrefs\ 2.plist | grep -A 15 -P "^\t<key>ICQ" | grep -v "<dict>" | grep -v "</dict>" | sed "s| *<[^>]*>||g" | sed 's|ICQ\.||' | grep -v "Alias" | grep -v "ICQAlias
Он печатает файл, ищет вхождения <key>ICQ
, удаляет XML из строк, следующих за ним, и печатает их. Одна такая запись выглядит следующим образом (фантазийные ценности для защиты невинных):
314159265
Firstname Lastname
Last Seen Date
2011-03-05T15:56:59Z
Last Seen Status
Signing off
Preferred Account
2
Хотя это несколько сработало, я даже не уверен, что это соответствует всем контактам. Некоторые записи не имели идентифицирующей информации (игнорируемые спаммеры?) И т.д. Я с нетерпением жду лучшего решения.