diff options
Diffstat (limited to 'module/plugins/hoster/BasePlugin.py')
-rw-r--r-- | module/plugins/hoster/BasePlugin.py | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/module/plugins/hoster/BasePlugin.py b/module/plugins/hoster/BasePlugin.py index d64834a7c..1952309fe 100644 --- a/module/plugins/hoster/BasePlugin.py +++ b/module/plugins/hoster/BasePlugin.py @@ -12,7 +12,7 @@ from module.plugins.internal.Hoster import Hoster class BasePlugin(Hoster): __name__ = "BasePlugin" __type__ = "hoster" - __version__ = "0.45" + __version__ = "0.46" __status__ = "testing" __pattern__ = r'^unmatchable$' @@ -33,48 +33,48 @@ class BasePlugin(Hoster): """ Main function """ + netloc = urlparse.urlparse(pyfile.url).netloc + pyfile.name = self.get_info(pyfile.url)['name'] if not pyfile.url.startswith("http"): self.fail(_("No plugin matched")) - for _i in xrange(5): - try: - link = self.direct_link(urllib.unquote(pyfile.url)) + try: + link = self.direct_link(urllib.unquote(pyfile.url)) - if link: - self.download(link, ref=False, disposition=True) - else: - self.fail(_("File not found")) + if link: + self.download(link, ref=False, disposition=True) + else: + self.fail(_("File not found")) - except BadHeader, e: - if e.code == 404: - self.offline() + except BadHeader, e: + if e.code == 404: + self.offline() - elif e.code in (401, 403): - self.log_debug("Auth required", "Received HTTP status code: %d" % e.code) + elif e.code in (401, 403): + self.log_debug("Auth required", "Received HTTP status code: %d" % e.code) - account = self.pyload.accountManager.getAccountPlugin('Http') - servers = [x['login'] for x in account.getAllAccounts()] #@TODO: Recheck in 0.4.10 - server = urlparse.urlparse(pyfile.url).netloc + #@TODO: Recheck in 0.4.10 + if self.account: + servers = [x['login'] for x in self.account.getAllAccounts()] + else: + servers = [] + + if netloc in servers: + self.log_debug("Logging on to %s" % netloc) + self.req.addAuth(self.account.get_login('password')) - if server in servers: - self.log_debug("Logging on to %s" % server) - self.req.addAuth(account.get_info(server)['login']['password']) - else: - pwd = self.get_password() - if ':' in pwd: - self.req.addAuth(pwd) - else: - self.fail(_("Authorization required")) else: - self.fail(e) + pwd = self.get_password() + if ':' in pwd: + self.req.addAuth(pwd) + else: + self.fail(_("Authorization required")) else: - break - else: - self.fail(_("No file downloaded")) #@TODO: Move to hoster class in 0.4.10 + self.fail(e) - errmsg = self.check_download({'Empty file' : re.compile(r'\A\s*\Z'), + errmsg = self.check_file({'Empty file' : re.compile(r'\A\s*\Z'), 'Html error' : re.compile(r'\A(?:\s*<.+>)?((?:[\w\s]*(?:[Ee]rror|ERROR)\s*\:?)?\s*\d{3})(?:\Z|\s+)'), 'Html file' : re.compile(r'\A\s*<!DOCTYPE html'), 'Request error': re.compile(r'([Aa]n error occured while processing your request)')}) |