summaryrefslogtreecommitdiffstats
path: root/module/plugins/AccountManager.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/AccountManager.py')
-rw-r--r--module/plugins/AccountManager.py20
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()