diff options
Diffstat (limited to 'module')
| -rw-r--r-- | module/plugins/accounts/DdlstorageCom.py | 12 | ||||
| -rw-r--r-- | module/plugins/hoster/DdlstorageCom.py | 16 | ||||
| -rw-r--r-- | module/plugins/internal/XFSPAccount.py | 65 | 
3 files changed, 93 insertions, 0 deletions
| diff --git a/module/plugins/accounts/DdlstorageCom.py b/module/plugins/accounts/DdlstorageCom.py new file mode 100644 index 000000000..01d165f23 --- /dev/null +++ b/module/plugins/accounts/DdlstorageCom.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +from module.plugins.internal.XFSPAccount import XFSPAccount + +class DdlstorageCom(XFSPAccount): +    __name__ = "DdlstorageCom" +    __version__ = "0.01" +    __type__ = "account" +    __description__ = """DDLStorage.com account plugin""" +    __author_name__ = ("zoidberg") +    __author_mail__ = ("zoidberg@mujmail.cz") +     +    MAIN_PAGE = "http://ddlstorage.com/"
\ No newline at end of file diff --git a/module/plugins/hoster/DdlstorageCom.py b/module/plugins/hoster/DdlstorageCom.py new file mode 100644 index 000000000..31c4f4605 --- /dev/null +++ b/module/plugins/hoster/DdlstorageCom.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +from module.plugins.hoster.XFileSharingPro import XFileSharingPro, create_getInfo + +class DdlstorageCom(XFileSharingPro): +    __name__ = "DdlstorageCom" +    __type__ = "hoster" +    __pattern__ = r"http://(?:\w*\.)*?ddlstorage.com/\w{12}" +    __version__ = "0.01" +    __description__ = """DDLStorage.com hoster plugin""" +    __author_name__ = ("zoidberg") +    __author_mail__ = ("zoidberg@mujmail.cz") +     +    def setup(self): +        self.resumeDownload = self.multiDL = self.premium + +getInfo = create_getInfo(DdlstorageCom)
\ No newline at end of file diff --git a/module/plugins/internal/XFSPAccount.py b/module/plugins/internal/XFSPAccount.py new file mode 100644 index 000000000..f187109b7 --- /dev/null +++ b/module/plugins/internal/XFSPAccount.py @@ -0,0 +1,65 @@ +# -*- 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: zoidberg +""" + +import re +from time import mktime, strptime +from module.plugins.Account import Account + +class XFSPAccount(Account): +    __name__ = "XFSPAccount" +    __version__ = "0.01" +    __type__ = "account" +    __description__ = """XFileSharingPro account base""" +    __author_name__ = ("zoidberg") +    __author_mail__ = ("zoidberg@mujmail.cz") +     +    MAIN_PAGE = None +     +    VALID_UNTIL_PATTERN = r'<TR><TD>Premium account expire:</TD><TD><b>([^<]+)</b>' +    TRAFFIC_LEFT_PATTERN = r'<TR><TD>Traffic available today:</TD><TD><b>(?P<S>[^<]+)</b>'    + +    def loadAccountInfo(self, user, req): +        html = req.load(self.MAIN_PAGE + "?op=my_account", decode = True) +         +        validuntil = -1 +        found = re.search(self.VALID_UNTIL_PATTERN, html) +        if found: +            premium = True +            try: +                self.logDebug(found.group(1)) +                validuntil = mktime(strptime(found.group(1), "%d %B %Y")) +            except Exception, e: +                self.logError(e) +        else: +            premium = False +                     +        trafficleft = -1  +         +        return ({"validuntil": validuntil, "trafficleft": trafficleft, "premium": premium}) +     +    def login(self, user, data, req): +        html = req.load(self.MAIN_PAGE, post = { +            "login": user, +            "op": "login", +            "password": data['password'], +            "redirect": self.MAIN_PAGE +            }, decode = True) +         +        if 'Incorrect Login or Password' in html:           +            self.wrongPassword()
\ No newline at end of file | 
