def modify(self, account, newname=None): if not Account.hasSupport(account.network): return False if not self.exists(account): return False pm = PersistenceManager() if not pm.existsConfig(): return False config = pm.readConfig() accountType = Account.networkToAccount(account.network) for entry in config['accounts'][account.network]: if entry['name'] == account.name: if newname: entry['name'] = newname if accountType == 'OAuth': entry['key'], entry['secret'] = account.credentials() elif accountType == 'UserPass': entry['user'], entry['password'] = account.credentials() break pm.writeConfig(config) return True
def register(self, account, callback): if not Account.hasSupport(account.network): return False if not self.exists(account): return False pm = PersistenceManager() if not pm.existsConfig(): return False config = pm.readConfig() controller = None if account.network == 'twitter': controller = TwitterController(account, callback) elif account.network == 'pump.io': controller = PumpController(account, callback) if not controller: return False return self.modify(account)
def getAllByNetwork(self, network): if not Account.hasSupport(network): return None pm = PersistenceManager() if not pm.existsConfig(): return None config = pm.readConfig() accounts = [] accountType = Account.networkToAccount(network) for entry in config['accounts'][network]: account = Account.getAccount(network, entry['name']) if accountType == 'OAuth': account.setCredentials((entry['key'], entry['secret'])) elif accountType == 'UserPass': account.setCredentials((entry['user'], entry['password'])) accounts.append(account) return accounts
def create(self, account): if not Account.hasSupport(account.network): return False if self.exists(account): return False pm = PersistenceManager() if not pm.existsConfig(): return False config = pm.readConfig() accountType = Account.networkToAccount(account.network) if accountType == 'OAuth': config['accounts'][account.network].append( dict(name=account.name, key=account.key, secret=account.secret)) elif accountType == 'UserPass': config['accounts'][account.network].append( dict(name=account.name, user=account.user, password=account.password)) pm.writeConfig(config) return True
def remove(self, account): if not Account.hasSupport(account.network): return False if not self.exists(account): return False pm = PersistenceManager() if not pm.existsConfig(): return False config = pm.readConfig() entry = None for k in range(len(config['accounts'][account.network])): entry = config['accounts'][account.network][k] if entry['name'] == account.name: break config['accounts'][account.network].remove(entry) pm.writeConfig(config) return True