diff options
author | mkaay <mkaay@mkaay.de> | 2010-05-06 21:15:03 +0200 |
---|---|---|
committer | mkaay <mkaay@mkaay.de> | 2010-05-06 21:15:03 +0200 |
commit | 4adeedcf1e09fcefe2f8c758199d6fafebebce28 (patch) | |
tree | 7c0e9b33b4be03fd68e0484d4cfd7d006a683f46 /module/plugins/Account.py | |
parent | better request factory (diff) | |
download | pyload-4adeedcf1e09fcefe2f8c758199d6fafebebce28.tar.xz |
account plugins: first draft
Diffstat (limited to 'module/plugins/Account.py')
-rw-r--r-- | module/plugins/Account.py | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/module/plugins/Account.py b/module/plugins/Account.py new file mode 100644 index 000000000..3588cd51e --- /dev/null +++ b/module/plugins/Account.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- + +""" + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, + or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see <http://www.gnu.org/licenses/>. + + @author: mkaay +""" + +from random import randrange + +class Account(): + __name__ = "Account" + __version__ = "0.1" + __type__ = "account" + __description__ = """Account Plugin""" + __author_name__ = ("mkaay") + __author_mail__ = ("mkaay@mkaay.de") + + def __init__(self, manager): + self.manager = manager + self.core = manager.core + self.configParser = self.core.parser_plugins + + self.accounts = [] + self.register = {} + self.loadAccounts() + + def login(self): + pass + + def getAccountRequest(self, plugin): + account = self.getAccountData(plugin) + req = self.core.requestFactory.getRequest(self.__name__, account[0]) + return req + + def loadAccounts(self): + usernames = self.configParser.get(self.__name__, "username") + passwords = self.configParser.get(self.__name__, "password") + + data = zip(usernames.split("\n"), passwords.split("\n")) + self.accounts = [] + for acc in data: + t = (acc[0].strip(), acc[1].strip()) + if t[0] and t[1]: + self.accounts.append(t) + + self.login() + + def getAccountData(self, plugin): + if not len(self.accounts): + return None + if not self.register.has_key(plugin): + account = self.accounts[randrange(0, len(self.accounts), 1)] + else: + account = self.register[plugin] + return account |