diff --git a/otrapps/adium.py b/otrapps/adium.py index aab0453..c97e625 100644 --- a/otrapps/adium.py +++ b/otrapps/adium.py @@ -5,6 +5,7 @@ import os import platform import plistlib +import biplist import sys if __name__ == '__main__': @@ -38,10 +39,13 @@ def _get_accounts_from_plist(settingsdir): print('Adium ERROR: No usable Accounts.plist file found, cannot create Adium files!') return [] # make sure the plist is in XML format, not binary, - # this should be converted to use python-biplist. - if platform.system() == 'Darwin': - os.system("plutil -convert xml1 '" + accountsfile + "'") - return plistlib.readPlist(accountsfile)['Accounts'] + AdiumProperties._convert_binary_plist_to_xml_plist(accountsfile) + return biplist.readPlist(accountsfile)['Accounts'] + + @staticmethod + def _convert_binary_plist_to_xml_plist(binary_plist): + plist_data = biplist.readPlist(binary_plist) + biplist.writePlist(plist_data, binary_plist, False) #False => XML, not Binary formatted PList @staticmethod def parse(settingsdir=None): diff --git a/setup.py b/setup.py index 65c2512..3edcf31 100644 --- a/setup.py +++ b/setup.py @@ -19,6 +19,7 @@ def read(fname): 'pgpdump', 'qrcode >= 4.0.1', 'six', + 'biplist', ] # argparse and ordereddict are included in Python starting in 2.7