我最近莫名其妙地被锁定了 10 多年的 ICQ 帐户——密码突然失效了。密码恢复不起作用,而且我从来没有给他们电子邮件地址(至少我这么认为,已经有一段时间了)。
当我启动 Adium 时,它会要求输入我无法提供的密码。不幸的是,它只显示已连接或正在连接的帐户的联系人。我的所有 ICQ 联系人都从联系人列表中消失了
我如何恢复 ICQ 帐号以及有关这些用户的一些身份信息?
答案1
Adium 用户帐户信息存储在/Users/danielbeck/Library/Application Support/Adium 2.0/Users/Default
或可能存储在其中一个兄弟文件夹中(据我所知)。
他们似乎将联系信息存储在目录中的单独文件中(直到 2008 年底),但从那时起ByObject
就切换到单个文件。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
虽然这种方法有点管用,但我甚至不确定它是否匹配所有联系人。有些条目没有识别信息(忽略垃圾邮件发送者?)等等。我期待更好的解决方案。