diff options
| -rw-r--r-- | module/plugins/Account.py | 14 | ||||
| -rw-r--r-- | module/plugins/accounts/NetloadIn.py | 9 | ||||
| -rw-r--r-- | module/plugins/accounts/RapidshareCom.py | 33 | ||||
| -rw-r--r-- | module/plugins/accounts/ShareonlineBiz.py | 15 | ||||
| -rw-r--r-- | module/plugins/accounts/UploadedTo.py | 7 | ||||
| -rw-r--r-- | module/plugins/hoster/ShareonlineBiz.py | 6 | ||||
| -rwxr-xr-x | pyLoadCore.py | 18 | 
7 files changed, 61 insertions, 41 deletions
| diff --git a/module/plugins/Account.py b/module/plugins/Account.py index 3b18e563f..de5fb00d6 100644 --- a/module/plugins/Account.py +++ b/module/plugins/Account.py @@ -35,12 +35,20 @@ class Account():          self.register = {}          self.setAccounts(accounts) -    def login(self): +    def login(self, user, data):          pass      def setAccounts(self, accounts):          self.accounts = accounts -        self.login() +        for user, data in self.accounts: +            self.login(user, data) +     +    def updateAccounts(self, user, password): +        self.accounts[user]["password"] if self.accounts.has_key(user) else self.accounts[user] = {"password":password} +        self.login(user, self.accounts[user]) +     +    def removeAccount(self, user): +        del self.accounts[user]      def getAccountInfo(self, name):          return { @@ -51,7 +59,7 @@ class Account():          }      def getAllAccounts(self): -        pass +        return [self.getAccountInfo(user) for user, data in self.accounts.iteritems()]      def getAccountRequest(self, plugin):          user, data = self.getAccountData(plugin) diff --git a/module/plugins/accounts/NetloadIn.py b/module/plugins/accounts/NetloadIn.py index e0f66e269..5743c7835 100644 --- a/module/plugins/accounts/NetloadIn.py +++ b/module/plugins/accounts/NetloadIn.py @@ -27,8 +27,7 @@ class NetloadIn(Account):      __author_name__ = ("RaNaN")      __author_mail__ = ("RaNaN@pyload.org") -    def login(self): -        for user, data in self.accounts.items(): -            req = self.core.requestFactory.getRequest(self.__name__, user) -            req.load("http://netload.in/index.php", None, { "txtuser" : user, "txtpass" : data['password'], "txtcheck" : "login", "txtlogin" : ""}, cookies=True) -            
\ No newline at end of file +    def login(self, user, data): +        req = self.core.requestFactory.getRequest(self.__name__, user) +        req.load("http://netload.in/index.php", None, { "txtuser" : user, "txtpass" : data['password'], "txtcheck" : "login", "txtlogin" : ""}, cookies=True) +             diff --git a/module/plugins/accounts/RapidshareCom.py b/module/plugins/accounts/RapidshareCom.py index c0974dab4..233cd9801 100644 --- a/module/plugins/accounts/RapidshareCom.py +++ b/module/plugins/accounts/RapidshareCom.py @@ -51,22 +51,21 @@ class RapidshareCom(Account):          return out -    def login(self): -        for user, data in self.accounts.items(): -            req = self.core.requestFactory.getRequest(self.__name__, user) -            api_url_base = "http://api.rapidshare.com/cgi-bin/rsapi.cgi" -            api_param_prem = {"sub": "getaccountdetails_v1", "type": "prem", "login": user, "password": data["password"], "withcookie": 1} -            src = req.load(api_url_base, cookies=False, get=api_param_prem) -            if src.startswith("ERROR"): -                return -            fields = src.split("\n") -            info = {} -            for t in fields: -                if not t.strip(): -                    continue -                k, v = t.split("=") -                info[k] = v -            cj = self.core.requestFactory.getCookieJar(self.__name__, user) -            cj.setCookie("rapidshare.com", "enc", info["cookie"]) +    def login(self, user, data): +        req = self.core.requestFactory.getRequest(self.__name__, user) +        api_url_base = "http://api.rapidshare.com/cgi-bin/rsapi.cgi" +        api_param_prem = {"sub": "getaccountdetails_v1", "type": "prem", "login": user, "password": data["password"], "withcookie": 1} +        src = req.load(api_url_base, cookies=False, get=api_param_prem) +        if src.startswith("ERROR"): +            return +        fields = src.split("\n") +        info = {} +        for t in fields: +            if not t.strip(): +                continue +            k, v = t.split("=") +            info[k] = v +        cj = self.core.requestFactory.getCookieJar(self.__name__, user) +        cj.setCookie("rapidshare.com", "enc", info["cookie"]) diff --git a/module/plugins/accounts/ShareonlineBiz.py b/module/plugins/accounts/ShareonlineBiz.py index fa5cc362c..69a8ddc0c 100644 --- a/module/plugins/accounts/ShareonlineBiz.py +++ b/module/plugins/accounts/ShareonlineBiz.py @@ -29,11 +29,10 @@ class ShareonlineBiz(Account):      #@TODO: account info -    def login(self): -        for user, data in self.accounts.items(): -            req = self.core.requestFactory.getRequest(self.__name__, user) -            post_vars = {"user": user, -                         "pass": data["password"], -                         "l_rememberme":"1"} -            req.lastURL = "http://www.share-online.biz/alpha/" -            req.load("https://www.share-online.biz/alpha/user/login", cookies=True, post=post_vars) +    def login(self, user, data): +        req = self.core.requestFactory.getRequest(self.__name__, user) +        post_vars = {"user": user, +                        "pass": data["password"], +                        "l_rememberme":"1"} +        req.lastURL = "http://www.share-online.biz/alpha/" +        req.load("https://www.share-online.biz/alpha/user/login", cookies=True, post=post_vars) diff --git a/module/plugins/accounts/UploadedTo.py b/module/plugins/accounts/UploadedTo.py index 9521f2577..242e6cd5e 100644 --- a/module/plugins/accounts/UploadedTo.py +++ b/module/plugins/accounts/UploadedTo.py @@ -44,7 +44,6 @@ class UploadedTo(Account):          validuntil = int(mktime(strptime(raw_valid.strip(), "%d-%m-%Y %H:%M")))          return {"login":user, "validuntil":validuntil, "trafficleft":traffic, "type":self.__name__} -    def login(self): -        for user, data in self.accounts.items(): -            req = self.core.requestFactory.getRequest(self.__name__, user) -            req.load("http://uploaded.to/login", None, { "email" : user, "password" : data["password"]}, cookies=True) +    def login(self, user, data): +        req = self.core.requestFactory.getRequest(self.__name__, user) +        req.load("http://uploaded.to/login", None, { "email" : user, "password" : data["password"]}, cookies=True) diff --git a/module/plugins/hoster/ShareonlineBiz.py b/module/plugins/hoster/ShareonlineBiz.py index 7958de794..8646fcc88 100644 --- a/module/plugins/hoster/ShareonlineBiz.py +++ b/module/plugins/hoster/ShareonlineBiz.py @@ -20,10 +20,12 @@ def getInfo(urls):      src = getURL(api_url_base, post=api_param_file)      result = []      for i, res in enumerate(src.split("\n")): +        if not res: +            continue          fields = res.split(";") -        status = 2 if self.api_data["status"] == "OK" else 3 +        status = 2 if fields[1] == "OK" else 3          result.append((fields[2], int(fields[3]), status, urls[i])) -    return result +    yield result  class ShareonlineBiz(Hoster):      __name__ = "ShareonlineBiz" diff --git a/pyLoadCore.py b/pyLoadCore.py index 11cd0241a..246bdadc6 100755 --- a/pyLoadCore.py +++ b/pyLoadCore.py @@ -608,14 +608,28 @@ class ServerMethods():      def get_events(self, uuid):          return self.core.pullManager.getEvents(uuid) -    def get_premium_accounts(self): -        #@TODO implement +    def get_accounts(self):          plugins = self.core.pluginManager.getAccountPlugins()          data = []          for p in plugins:              data.extend(p.getAllAccounts())          return data +    def update_account(self, plugin, account, password): +        """ create and update account """ +        plugins = self.core.pluginManager.getAccountPlugins() +        for p in plugins: +            if p.__name__ == plugin: +                p.updateAccount(account, password) +                break +     +    def remove_account(self, plugin, account, password): +        plugins = self.core.pluginManager.getAccountPlugins() +        for p in plugins: +            if p.__name__ == plugin: +                p.removeAccount(account, password) +                break +          def set_priority(self, id, priority):          p = self.core.files.getPackage(id)          p.setPriority(priority) | 
