Adium user account information is stored in /Users/danielbeck/Library/Application Support/Adium 2.0/Users/Default
or possibly, AFAIK, one of the sibling folders.
It seems they stored contact information in individual files in the directory ByObject
(until late 2008), but switched to the single file ByObjectPrefs.plist
since then.
While the directory libpurple
contains a blist.xml
(buddy list), it doesn't contain Adium's user aliases, only the contact's last self-assigned user name, which is usually not all that useful, depending on the people.
ByObjectPrefs.plist
is a binary `plist file. Create a copy and convert in Terminal to XML using
plutil -convert xml1 /Users/danielbeck/Library/Application\ Support/Adium\ 2.0/Users/Default/ByObjectPrefs\ Copy.plist
Unfortunately, I was unable to properly automatically read its format so far. Copy&paste directly from the file is painful, but it somewhat works.
I recovered the contacts using the following expression:
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
It prints the file, searches for occurrences of <key>ICQ
, strips the XML from the lines following that and prints them. One such entry looks like this (fantasy values to protect the innocent):
314159265
Firstname Lastname
Last Seen Date
2011-03-05T15:56:59Z
Last Seen Status
Signing off
Preferred Account
2
While this somewhat worked, I'm not even sure it matched all contacts. Some entries had no identifying information (ignored spammers?), etc. I'm looking forward to a better solution.
While I answered the question myself, I'm open towards better solutions. They might not be that helpful for me anymore, but still, there's got to be something better... – Daniel Beck – 2011-05-13T19:42:12.043