diff options
Diffstat (limited to 'module/plugins/AccountManager.py')
-rw-r--r-- | module/plugins/AccountManager.py | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/module/plugins/AccountManager.py b/module/plugins/AccountManager.py index 4b8063002..6c908738c 100644 --- a/module/plugins/AccountManager.py +++ b/module/plugins/AccountManager.py @@ -11,10 +11,10 @@ from module.utils import chmod, lock ACC_VERSION = 1 -class AccountManager(): +class AccountManager: """manages all accounts""" - #---------------------------------------------------------------------- + #-------------------------------------------------------------------------- def __init__(self, core): """Constructor""" @@ -35,7 +35,10 @@ class AccountManager(): """get account instance for plugin or None if anonymous""" if plugin in self.accounts: if plugin not in self.plugins: - self.plugins[plugin] = self.core.pluginManager.loadClass("accounts", plugin)(self, self.accounts[plugin]) + try: + self.plugins[plugin] = self.core.pluginManager.loadClass("accounts", plugin)(self, self.accounts[plugin]) + except TypeError: # The account class no longer exists (blacklisted plugin). Skipping the account to avoid crash + return None return self.plugins[plugin] else: @@ -50,7 +53,7 @@ class AccountManager(): return plugins - #---------------------------------------------------------------------- + #-------------------------------------------------------------------------- def loadAccounts(self): """loads all accounts available""" @@ -97,7 +100,7 @@ class AccountManager(): name, sep, pw = line.partition(":") self.accounts[plugin][name] = {"password": pw, "options": {}, "valid": True} - #---------------------------------------------------------------------- + #-------------------------------------------------------------------------- def saveAccounts(self): """save all account information""" @@ -117,7 +120,7 @@ class AccountManager(): f.close() chmod(f.name, 0600) - #---------------------------------------------------------------------- + #-------------------------------------------------------------------------- def initAccountPlugins(self): """init names""" for name in self.core.pluginManager.getAccountPlugins(): @@ -155,7 +158,10 @@ class AccountManager(): for p in self.accounts.keys(): if self.accounts[p]: p = self.getAccountPlugin(p) - data[p.__name__] = p.getAllAccounts(force) + if p: + data[p.__name__] = p.getAllAccounts(force) + else: # When an account has been skipped, p is None + data[p] = [] else: data[p] = [] e = AccountUpdateEvent() |