diff options
Diffstat (limited to 'module/plugins/internal')
-rw-r--r-- | module/plugins/internal/XFSAccount.py (renamed from module/plugins/internal/XFSPAccount.py) | 20 | ||||
-rw-r--r-- | module/plugins/internal/XFSCrypter.py (renamed from module/plugins/internal/XFSPCrypter.py) | 13 | ||||
-rw-r--r-- | module/plugins/internal/XFSHoster.py (renamed from module/plugins/internal/XFSPHoster.py) | 36 |
3 files changed, 36 insertions, 33 deletions
diff --git a/module/plugins/internal/XFSPAccount.py b/module/plugins/internal/XFSAccount.py index 381e919e6..597964d4c 100644 --- a/module/plugins/internal/XFSPAccount.py +++ b/module/plugins/internal/XFSAccount.py @@ -9,12 +9,12 @@ from module.plugins.Account import Account from module.plugins.internal.SimpleHoster import parseHtmlForm, set_cookies -class XFSPAccount(Account): - __name__ = "XFSPAccount" +class XFSAccount(Account): + __name__ = "XFSAccount" __type__ = "account" - __version__ = "0.22" + __version__ = "0.23" - __description__ = """XFileSharingPro account plugin""" + __description__ = """XFileSharing account plugin""" __license__ = "GPLv3" __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), ("Walter Purcaro", "vuolter@gmail.com")] @@ -30,9 +30,9 @@ class XFSPAccount(Account): example: PREMIUM_PATTERN = r'>Renew premium' """ - HOSTER_NAME = None + HOSTER_DOMAIN = None - COOKIES = [(HOSTER_NAME, "lang", "english")] #: or list of tuples [(domain, name, value)] + COOKIES = [(HOSTER_DOMAIN, "lang", "english")] #: or list of tuples [(domain, name, value)] VALID_UNTIL_PATTERN = r'>Premium.[Aa]ccount expire:.*?(\d{1,2} [\w^_]+ \d{4})' @@ -44,15 +44,15 @@ class XFSPAccount(Account): def __init__(self, manager, accounts): #@TODO: remove in 0.4.10 self.init() - return super(XFSPAccount, self).__init__(manager, accounts) + return super(XFSAccount, self).__init__(manager, accounts) def init(self): - # if not self.HOSTER_NAME: - # self.fail(_("Missing HOSTER_NAME")) + # if not self.HOSTER_DOMAIN: + # self.fail(_("Missing HOSTER_DOMAIN")) if not hasattr(self, "HOSTER_URL"): - self.HOSTER_URL = "http://www.%s/" % self.HOSTER_NAME.replace("www.", "", 1) + self.HOSTER_URL = "http://www.%s/" % self.HOSTER_DOMAIN.replace("www.", "", 1) def loadAccountInfo(self, user, req): diff --git a/module/plugins/internal/XFSPCrypter.py b/module/plugins/internal/XFSCrypter.py index 378b78d02..5a126707b 100644 --- a/module/plugins/internal/XFSPCrypter.py +++ b/module/plugins/internal/XFSCrypter.py @@ -3,26 +3,27 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter -class XFSPCrypter(SimpleCrypter): - __name__ = "XFSPCrypter" +class XFSCrypter(SimpleCrypter): + __name__ = "XFSCrypter" __type__ = "crypter" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = None - __description__ = """XFileSharingPro decrypter plugin""" + __description__ = """XFileSharing decrypter plugin""" __license__ = "GPLv3" __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + HOSTER_DOMAIN = None HOSTER_NAME = None URL_REPLACEMENTS = [(r'[?/&]+$', r''), (r'(.+/[^?]*)$', r'\1?'), (r'$', r'&per_page=10000')] - COOKIES = [(HOSTER_NAME, "lang", "english")] + COOKIES = [(HOSTER_DOMAIN, "lang", "english")] LINK_PATTERN = r'<(?:td|TD) [^>]*>\s*<a href="(.+?)"[^>]*>.+?(?:</a>)?\s*</(?:td|TD)>' - TITLE_PATTERN = r'<[tT]itle>.*?\: (.+) folder</[tT]itle>' + NAME_PATTERN = r'<[tT]itle>.*?\: (.+) folder</[tT]itle>' OFFLINE_PATTERN = r'>\s*\w+ (Not Found|file (was|has been) removed)' TEMP_OFFLINE_PATTERN = r'>\s*\w+ server (is in )?(maintenance|maintainance)' diff --git a/module/plugins/internal/XFSPHoster.py b/module/plugins/internal/XFSHoster.py index 72a4a9d8c..b7a407a19 100644 --- a/module/plugins/internal/XFSPHoster.py +++ b/module/plugins/internal/XFSHoster.py @@ -11,29 +11,28 @@ from module.plugins.Plugin import Fail from module.utils import html_unescape -class XFSPHoster(SimpleHoster): - __name__ = "XFSPHoster" +class XFSHoster(SimpleHoster): + __name__ = "XFSHoster" __type__ = "hoster" - __version__ = "0.07" + __version__ = "0.08" __pattern__ = None - __description__ = """XFileSharingPro hoster plugin""" + __description__ = """XFileSharing hoster plugin""" __license__ = "GPLv3" __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), ("stickell", "l.stickell@yahoo.it"), ("Walter Purcaro", "vuolter@gmail.com")] + HOSTER_DOMAIN = None HOSTER_NAME = None - FILE_URL_REPLACEMENTS = [] + COOKIES = [(HOSTER_DOMAIN, "lang", "english")] - COOKIES = [(HOSTER_NAME, "lang", "english")] - - FILE_INFO_PATTERN = r'<tr><td align=right><b>Filename:</b></td><td nowrap>(?P<N>[^<]+)</td></tr>\s*.*?<small>\((?P<S>[^<]+)\)</small>' - FILE_NAME_PATTERN = r'<input type="hidden" name="fname" value="(?P<N>[^"]+)"' - FILE_SIZE_PATTERN = r'You have requested .*\((?P<S>[\d\.\,]+) ?(?P<U>[\w^_]+)?\)</font>' + INFO_PATTERN = r'<tr><td align=right><b>Filename:</b></td><td nowrap>(?P<N>[^<]+)</td></tr>\s*.*?<small>\((?P<S>[^<]+)\)</small>' + NAME_PATTERN = r'<input type="hidden" name="fname" value="(?P<N>[^"]+)"' + SIZE_PATTERN = r'You have requested .*\((?P<S>[\d\.\,]+) ?(?P<U>[\w^_]+)?\)</font>' OFFLINE_PATTERN = r'>\s*\w+ (Not Found|file (was|has been) removed)' TEMP_OFFLINE_PATTERN = r'>\s*\w+ server (is in )?(maintenance|maintainance)' @@ -58,18 +57,21 @@ class XFSPHoster(SimpleHoster): def prepare(self): """ Initialize important variables """ + if not self.HOSTER_DOMAIN: + self.fail(_("Missing HOSTER_DOMAIN")) + if not self.HOSTER_NAME: - self.fail(_("Missing HOSTER_NAME")) + self.HOSTER_NAME = "".join([str.capitalize() for str in self.HOSTER_DOMAIN.split('.')]) if not self.LINK_PATTERN: pattern = r'(https?://(www\.)?([^/]*?%s|\d+\.\d+\.\d+\.\d+)(\:\d+)?(/d/|(/files)?/\d+/\w+/).+?)["\'<]' - self.LINK_PATTERN = pattern % self.HOSTER_NAME + self.LINK_PATTERN = pattern % self.HOSTER_DOMAIN.replace('.', '\.') self.captcha = None self.errmsg = None self.passwords = self.getPassword().splitlines() - return super(XFSPHoster, self).prepare() + return super(XFSHoster, self).prepare() def handleFree(self): @@ -127,7 +129,7 @@ class XFSPHoster(SimpleHoster): inputs['url_mass'] = self.pyfile.url inputs['up1oad_type'] = 'url' - self.logDebug(self.HOSTER_NAME, action, inputs) + self.logDebug(action, inputs) #wait for file to upload to easybytez.com self.req.http.c.setopt(LOW_SPEED_TIME, 600) self.html = self.load(action, post=inputs) @@ -135,7 +137,7 @@ class XFSPHoster(SimpleHoster): action, inputs = self.parseHtmlForm('F1') if not inputs: self.error(_("TEXTAREA not found")) - self.logDebug(self.HOSTER_NAME, inputs) + self.logDebug(inputs) if inputs['st'] == 'OK': self.html = self.load(action, post=inputs) elif inputs['st'] == 'Can not leech file': @@ -212,7 +214,7 @@ class XFSPHoster(SimpleHoster): else: self.error(_("Form not found")) - self.logDebug(self.HOSTER_NAME, inputs) + self.logDebug(inputs) if 'op' in inputs and inputs['op'] in ("download2", "download3"): if "password" in inputs: @@ -269,7 +271,7 @@ class XFSPHoster(SimpleHoster): self.logDebug(captcha_div) numerals = re.findall(r'<span.*?padding-left\s*:\s*(\d+).*?>(\d)</span>', html_unescape(captcha_div)) inputs['code'] = "".join([a[1] for a in sorted(numerals, key=lambda num: int(num[0]))]) - self.logDebug("CAPTCHA", inputs['code'], numerals) + self.logDebug("Captcha code: %s" % inputs['code'], numerals) return 2 recaptcha = ReCaptcha(self) |