diff options
| author | 2013-05-20 20:19:00 +0200 | |
|---|---|---|
| committer | 2013-05-20 20:19:00 +0200 | |
| commit | d4451312d80b0443cf7a48142c00dcc7bf3be65a (patch) | |
| tree | b152f6dc0e5a98b4e944648590e34f2f12282a45 /module/plugins/accounts | |
| parent | smaller footer (diff) | |
| parent | CloudzerNet: reconnect support (diff) | |
| download | pyload-d4451312d80b0443cf7a48142c00dcc7bf3be65a.tar.xz | |
Merge branch 'stable'
Diffstat (limited to 'module/plugins/accounts')
| -rw-r--r-- | module/plugins/accounts/CzshareCom.py | 41 | ||||
| -rw-r--r-- | module/plugins/accounts/FastshareCz.py | 28 | ||||
| -rw-r--r-- | module/plugins/accounts/FilefactoryCom.py | 10 | ||||
| -rw-r--r-- | module/plugins/accounts/MultiDebridCom.py | 47 | ||||
| -rw-r--r-- | module/plugins/accounts/RapidgatorNet.py | 6 | 
5 files changed, 90 insertions, 42 deletions
| diff --git a/module/plugins/accounts/CzshareCom.py b/module/plugins/accounts/CzshareCom.py index e68248aa8..7b1a8edc5 100644 --- a/module/plugins/accounts/CzshareCom.py +++ b/module/plugins/accounts/CzshareCom.py @@ -17,42 +17,41 @@      @author: zoidberg  """ -from module.plugins.Account import Account  from time import mktime, strptime -from string import replace  import re +from module.plugins.Account import Account + +  class CzshareCom(Account):      __name__ = "CzshareCom" -    __version__ = "0.11" +    __version__ = "0.13"      __type__ = "account"      __description__ = """czshare.com account plugin""" -    __author_name__ = ("zoidberg") -    __author_mail__ = ("zoidberg@mujmail.cz") -     +    __author_name__ = ("zoidberg", "stickell") +    __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") +      CREDIT_LEFT_PATTERN = r'<tr class="active">\s*<td>([0-9 ,]+) (KiB|MiB|GiB)</td>\s*<td>([^<]*)</td>\s*</tr>'      def loadAccountInfo(self, user, req): -        self.relogin(user)          html = req.load("http://czshare.com/prehled_kreditu/") -         +          found = re.search(self.CREDIT_LEFT_PATTERN, html) -        if found is None: -            credits, validuntil = 0, 0 +        if not found: +            return {"validuntil": 0, "trafficleft": 0}          else: -            credits = float(found.group(1).replace(' ', '').replace(',','.')) -            credits = credits * 1024**{'KiB' : 0, 'MiB' : 1, 'GiB' : 2}[found.group(2)] +            credits = float(found.group(1).replace(' ', '').replace(',', '.')) +            credits = credits * 1024 ** {'KiB': 0, 'MiB': 1, 'GiB': 2}[found.group(2)]              validuntil = mktime(strptime(found.group(3), '%d.%m.%y %H:%M')) -         -        return {"validuntil": validuntil, "trafficleft": credits} -     +            return {"validuntil": validuntil, "trafficleft": credits} +      def login(self, user, data, req): -     +          html = req.load('https://czshare.com/index.php', post={ -                "Prihlasit": "Prihlasit", -                "login-password": data["password"], -                "login-name": user -                }) -                 +            "Prihlasit": "Prihlasit", +            "login-password": data["password"], +            "login-name": user +        }) +          if '<div class="login' in html:              self.wrongPassword() diff --git a/module/plugins/accounts/FastshareCz.py b/module/plugins/accounts/FastshareCz.py index 333ee3761..69bbb0827 100644 --- a/module/plugins/accounts/FastshareCz.py +++ b/module/plugins/accounts/FastshareCz.py @@ -21,32 +21,34 @@ import re  from module.plugins.Account import Account  from module.utils import parseFileSize +  class FastshareCz(Account):      __name__ = "FastshareCz" -    __version__ = "0.01" +    __version__ = "0.02"      __type__ = "account"      __description__ = """fastshare.cz account plugin""" -    __author_name__ = ("zoidberg") -    __author_mail__ = ("zoidberg@mujmail.cz") -     +    __author_name__ = ("zoidberg", "stickell") +    __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") +      def loadAccountInfo(self, user, req): -        html = req.load("http://www.fastshare.cz/user", decode = True) -                     -        found = re.search(r'Kredit: </td><td>(.+?) ', html)            +        html = req.load("http://www.fastshare.cz/user", decode=True) + +        found = re.search(r'(?:Kredit|Credit)\s*: </td><td>(.+?) ', html)          if found: -            trafficleft = parseFileSize(found.group(1)) / 1024     +            trafficleft = parseFileSize(found.group(1)) / 1024              premium = True if trafficleft else False          else:              trafficleft = None -            premium = False   +            premium = False          return {"validuntil": -1, "trafficleft": trafficleft, "premium": premium} -     +      def login(self, user, data, req): -        html = req.load('http://www.fastshare.cz/sql.php', post = { +        req.load('http://www.fastshare.cz/login')  # Do not remove or it will not login +        html = req.load('http://www.fastshare.cz/sql.php', post={              "heslo": data['password'],              "login": user -            }, decode = True) -         +        }, decode=True) +          if u'>Špatné uživatelské jméno nebo heslo.<' in html:              self.wrongPassword()
\ No newline at end of file diff --git a/module/plugins/accounts/FilefactoryCom.py b/module/plugins/accounts/FilefactoryCom.py index 356c5d22a..8e163e2f6 100644 --- a/module/plugins/accounts/FilefactoryCom.py +++ b/module/plugins/accounts/FilefactoryCom.py @@ -23,13 +23,13 @@ from time import mktime, strptime  class FilefactoryCom(Account):      __name__ = "FilefactoryCom" -    __version__ = "0.12" +    __version__ = "0.13"      __type__ = "account"      __description__ = """filefactory.com account plugin""" -    __author_name__ = ("zoidberg") -    __author_mail__ = ("zoidberg@mujmail.cz") +    __author_name__ = ("zoidberg", "stickell") +    __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") -    ACCOUNT_INFO_PATTERN = r'<a href="/premium/">.*?datetime="(.*?)"' +    ACCOUNT_INFO_PATTERN = r'<time datetime="([\d-]+)">'      def loadAccountInfo(self, user, req):                html = req.load("http://www.filefactory.com/member/") @@ -37,7 +37,7 @@ class FilefactoryCom(Account):          found = re.search(self.ACCOUNT_INFO_PATTERN, html)          if found:              premium = True -            validuntil = mktime(strptime(re.sub(r"(\d)[a-z]{2} ", r"\1 ", found.group(1)),"%d %B, %Y")) +            validuntil = mktime(strptime(found.group(1),"%Y-%m-%d"))          else:              premium = False              validuntil = -1    diff --git a/module/plugins/accounts/MultiDebridCom.py b/module/plugins/accounts/MultiDebridCom.py new file mode 100644 index 000000000..904be5ee7 --- /dev/null +++ b/module/plugins/accounts/MultiDebridCom.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- + +############################################################################ +# This program is free software: you can redistribute it and/or modify     # +# it under the terms of the GNU Affero 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 Affero General Public License for more details.                      # +#                                                                          # +# You should have received a copy of the GNU Affero General Public License # +# along with this program.  If not, see <http://www.gnu.org/licenses/>.    # +############################################################################ + +from time import time + +from module.plugins.Account import Account +from module.common.json_layer import json_loads + + +class MultiDebridCom(Account): +    __name__ = "MultiDebridCom" +    __version__ = "0.01" +    __type__ = "account" +    __description__ = """Multi-debrid.com account plugin""" +    __author_name__ = ("stickell") +    __author_mail__ = ("l.stickell@yahoo.it") + +    def loadAccountInfo(self, user, req): +        if 'days_left' in self.json_data: +            validuntil = int(time() + self.json_data['days_left'] * 86400) +            return {"premium": True, "validuntil": validuntil, "trafficleft": -1} +        else: +            self.logError('Unable to get account information') + +    def login(self, user, data, req): +        # Password to use is the API-Password written in http://multi-debrid.com/myaccount +        self.html = req.load("http://multi-debrid.com/api.php", +                             get={"user": user, "pass": data["password"]}) +        self.logDebug('JSON data: ' + self.html) +        self.json_data = json_loads(self.html) +        if self.json_data['status'] != 'ok': +            self.logError('Invalid login. The password to use is the API-Password you find in your "My Account" page') +            self.wrongPassword() diff --git a/module/plugins/accounts/RapidgatorNet.py b/module/plugins/accounts/RapidgatorNet.py index 74825a0f9..85adc71a3 100644 --- a/module/plugins/accounts/RapidgatorNet.py +++ b/module/plugins/accounts/RapidgatorNet.py @@ -24,7 +24,7 @@ from module.common.json_layer import json_loads  class RapidgatorNet(Account):      __name__ = "RapidgatorNet" -    __version__ = "0.03" +    __version__ = "0.04"      __type__ = "account"      __description__ = """rapidgator.net account plugin"""      __author_name__ = ("zoidberg") @@ -46,7 +46,7 @@ class RapidgatorNet(Account):                      self.scheduleRefresh(user, json['response']['reset_in'])                  return {"validuntil": json['response']['expire_date'],  -                        "trafficleft": json['response']['traffic_left'] / 1024,  +                        "trafficleft": int(json['response']['traffic_left']) / 1024,                           "premium": True}              else:                  self.logError(json['response_details']) @@ -71,4 +71,4 @@ class RapidgatorNet(Account):          except Exception, e:              self.logError(e) -        self.wrongPassword()
\ No newline at end of file +        self.wrongPassword() | 
