diff options
Diffstat (limited to 'module/plugins')
482 files changed, 3125 insertions, 3093 deletions
diff --git a/module/plugins/accounts/AlldebridCom.py b/module/plugins/accounts/AlldebridCom.py index a109faf4f..eb58da928 100644 --- a/module/plugins/accounts/AlldebridCom.py +++ b/module/plugins/accounts/AlldebridCom.py @@ -12,36 +12,36 @@ from module.plugins.internal.Account import Account class AlldebridCom(Account): __name__ = "AlldebridCom" __type__ = "account" - __version__ = "0.25" + __version__ = "0.26" __description__ = """AllDebrid.com account plugin""" __license__ = "GPLv3" __authors__ = [("Andy Voigt", "spamsales@online.de")] - def loadAccountInfo(self, user, req): - data = self.getAccountData(user) + def load_account_info(self, user, req): + data = self.get_account_data(user) html = self.load("http://www.alldebrid.com/account/", req=req) soup = BeautifulSoup(html) - #Try to parse expiration date directly from the control panel page (better accuracy) + # Try to parse expiration date directly from the control panel page (better accuracy) try: time_text = soup.find('div', attrs={'class': 'remaining_time_text'}).strong.string - self.logDebug("Account expires in: %s" % time_text) + self.log_debug("Account expires in: %s" % time_text) p = re.compile('\d+') exp_data = p.findall(time_text) exp_time = time.time() + int(exp_data[0]) * 24 * 60 * 60 + int( exp_data[1]) * 60 * 60 + (int(exp_data[2]) - 1) * 60 - #Get expiration date from API + # Get expiration date from API except Exception: - data = self.getAccountData(user) + data = self.get_account_data(user) html = self.load("https://www.alldebrid.com/api.php", get={'action': "info_user", 'login': user, 'pw': data['password']}, req=req) - self.logDebug(html) + self.log_debug(html) xml = dom.parseString(html) exp_time = time.time() + int(xml.getElementsByTagName("date")[0].childNodes[0].nodeValue) * 24 * 60 * 60 @@ -60,4 +60,4 @@ class AlldebridCom(Account): if "This login doesn't exist" in html \ or "The password is not valid" in html \ or "Invalid captcha" in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/BackinNet.py b/module/plugins/accounts/BackinNet.py index 46c8d7ac5..c0c88d6f1 100644 --- a/module/plugins/accounts/BackinNet.py +++ b/module/plugins/accounts/BackinNet.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class BackinNet(XFSAccount): __name__ = "BackinNet" __type__ = "account" - __version__ = "0.01" + __version__ = "0.02" __description__ = """Backin.net account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/BitshareCom.py b/module/plugins/accounts/BitshareCom.py index 8f748b9e9..912b58173 100644 --- a/module/plugins/accounts/BitshareCom.py +++ b/module/plugins/accounts/BitshareCom.py @@ -6,21 +6,21 @@ from module.plugins.internal.Account import Account class BitshareCom(Account): __name__ = "BitshareCom" __type__ = "account" - __version__ = "0.14" + __version__ = "0.15" __description__ = """Bitshare account plugin""" __license__ = "GPLv3" __authors__ = [("Paul King", None)] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): html = self.load("http://bitshare.com/mysettings.html", req=req) if "\"http://bitshare.com/myupgrade.html\">Free" in html: return {"validuntil": -1, "trafficleft": -1, "premium": False} if not '<input type="checkbox" name="directdownload" checked="checked" />' in html: - self.logWarning(_("Activate direct Download in your Bitshare Account")) + self.log_warning(_("Activate direct Download in your Bitshare Account")) return {"validuntil": -1, "trafficleft": -1, "premium": True} @@ -30,4 +30,4 @@ class BitshareCom(Account): post={"user": user, "password": data['password'], "submit": "Login"}, req=req) if "login" in req.lastEffectiveURL: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/CatShareNet.py b/module/plugins/accounts/CatShareNet.py index 79e94cc17..8eb422962 100644 --- a/module/plugins/accounts/CatShareNet.py +++ b/module/plugins/accounts/CatShareNet.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class CatShareNet(Account): __name__ = "CatShareNet" __type__ = "account" - __version__ = "0.07" + __version__ = "0.08" __description__ = """Catshare.net account plugin""" __license__ = "GPLv3" @@ -21,7 +21,7 @@ class CatShareNet(Account): TRAFFIC_LEFT_PATTERN = r'<a href="/premium">([0-9.]+ [kMG]B)' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): premium = False validuntil = -1 trafficleft = -1 @@ -33,7 +33,7 @@ class CatShareNet(Account): try: expiredate = re.search(self.VALID_UNTIL_PATTERN, html).group(1) - self.logDebug("Expire date: " + expiredate) + self.log_debug("Expire date: " + expiredate) validuntil = time.mktime(time.strptime(expiredate, "%Y-%m-%d %H:%M:%S")) @@ -41,7 +41,7 @@ class CatShareNet(Account): pass try: - trafficleft = self.parseTraffic(re.search(self.TRAFFIC_LEFT_PATTERN, html).group(1)) + trafficleft = self.parse_traffic(re.search(self.TRAFFIC_LEFT_PATTERN, html).group(1)) except Exception: pass @@ -57,4 +57,4 @@ class CatShareNet(Account): 'user[submit]': "Login"}, req=req) if not '<a href="/logout">Wyloguj</a>' in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/CloudzillaTo.py b/module/plugins/accounts/CloudzillaTo.py index 2328b0a86..5716c8d94 100644 --- a/module/plugins/accounts/CloudzillaTo.py +++ b/module/plugins/accounts/CloudzillaTo.py @@ -8,7 +8,7 @@ from module.plugins.internal.Account import Account class CloudzillaTo(Account): __name__ = "CloudzillaTo" __type__ = "account" - __version__ = "0.03" + __version__ = "0.04" __description__ = """Cloudzilla.to account plugin""" __license__ = "GPLv3" @@ -18,7 +18,7 @@ class CloudzillaTo(Account): PREMIUM_PATTERN = r'<h2>account type</h2>\s*Premium Account' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): html = self.load("http://www.cloudzilla.to/", req=req) premium = True if re.search(self.PREMIUM_PATTERN, html) else False @@ -33,4 +33,4 @@ class CloudzillaTo(Account): 'w' : "dologin"}, req=req) if "ERROR" in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/CramitIn.py b/module/plugins/accounts/CramitIn.py index a9e2274a2..1e6dcca20 100644 --- a/module/plugins/accounts/CramitIn.py +++ b/module/plugins/accounts/CramitIn.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class CramitIn(XFSAccount): __name__ = "CramitIn" __type__ = "account" - __version__ = "0.03" + __version__ = "0.04" __description__ = """Cramit.in account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/CzshareCom.py b/module/plugins/accounts/CzshareCom.py index c53c1807b..f86264cf5 100644 --- a/module/plugins/accounts/CzshareCom.py +++ b/module/plugins/accounts/CzshareCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class CzshareCom(Account): __name__ = "CzshareCom" __type__ = "account" - __version__ = "0.19" + __version__ = "0.20" __description__ = """Czshare.com account plugin, now Sdilej.cz""" __license__ = "GPLv3" @@ -20,7 +20,7 @@ class CzshareCom(Account): CREDIT_LEFT_PATTERN = r'<tr class="active">\s*<td>([\d ,]+) (KiB|MiB|GiB)</td>\s*<td>([^<]*)</td>\s*</tr>' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): premium = False validuntil = None trafficleft = None @@ -29,11 +29,11 @@ class CzshareCom(Account): try: m = re.search(self.CREDIT_LEFT_PATTERN, html) - trafficleft = self.parseTraffic(m.group(1).replace(' ', '').replace(',', '.')) + m.group(2) + trafficleft = self.parse_traffic(m.group(1).replace(' ', '').replace(',', '.')) + m.group(2) validuntil = time.mktime(time.strptime(m.group(3), '%d.%m.%y %H:%M')) except Exception, e: - self.logError(e) + self.log_error(e) else: premium = True @@ -50,4 +50,4 @@ class CzshareCom(Account): "login-name": user}, req=req) if '<div class="login' in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/DebridItaliaCom.py b/module/plugins/accounts/DebridItaliaCom.py index defa1a313..16101d177 100644 --- a/module/plugins/accounts/DebridItaliaCom.py +++ b/module/plugins/accounts/DebridItaliaCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class DebridItaliaCom(Account): __name__ = "DebridItaliaCom" __type__ = "account" - __version__ = "0.14" + __version__ = "0.15" __description__ = """Debriditalia.com account plugin""" __license__ = "GPLv3" @@ -20,7 +20,7 @@ class DebridItaliaCom(Account): WALID_UNTIL_PATTERN = r'Premium valid till: (.+?) \|' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): info = {"premium": False, "validuntil": None, "trafficleft": None} html = self.load("http://debriditalia.com/", req=req) @@ -30,7 +30,7 @@ class DebridItaliaCom(Account): validuntil = time.mktime(time.strptime(m.group(1), "%d/%m/%Y %H:%M")) info = {"premium": True, "validuntil": validuntil, "trafficleft": -1} else: - self.logError(_("Unable to retrieve account information")) + self.log_error(_("Unable to retrieve account information")) return info @@ -40,4 +40,4 @@ class DebridItaliaCom(Account): get={'u': user, 'p': data['password']}, req=req) if 'NO' in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/DepositfilesCom.py b/module/plugins/accounts/DepositfilesCom.py index e89f0add8..24cbad486 100644 --- a/module/plugins/accounts/DepositfilesCom.py +++ b/module/plugins/accounts/DepositfilesCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class DepositfilesCom(Account): __name__ = "DepositfilesCom" __type__ = "account" - __version__ = "0.33" + __version__ = "0.34" __description__ = """Depositfiles.com account plugin""" __license__ = "GPLv3" @@ -18,7 +18,7 @@ class DepositfilesCom(Account): ("Walter Purcaro", "vuolter@gmail.com")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): html = self.load("https://dfiles.eu/de/gold/", req=req) validuntil = re.search(r"Sie haben Gold Zugang bis: <b>(.*?)</b></div>", html).group(1) @@ -32,4 +32,4 @@ class DepositfilesCom(Account): post={"login": user, "password": data['password']}, req=req) if r'<div class="error_message">Sie haben eine falsche Benutzername-Passwort-Kombination verwendet.</div>' in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/EasybytezCom.py b/module/plugins/accounts/EasybytezCom.py index 93d3e2c19..b78523b62 100644 --- a/module/plugins/accounts/EasybytezCom.py +++ b/module/plugins/accounts/EasybytezCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class EasybytezCom(XFSAccount): __name__ = "EasybytezCom" __type__ = "account" - __version__ = "0.12" + __version__ = "0.13" __description__ = """EasyBytez.com account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/EuroshareEu.py b/module/plugins/accounts/EuroshareEu.py index 4af9803b7..ffe30d02f 100644 --- a/module/plugins/accounts/EuroshareEu.py +++ b/module/plugins/accounts/EuroshareEu.py @@ -9,14 +9,14 @@ from module.plugins.internal.Account import Account class EuroshareEu(Account): __name__ = "EuroshareEu" __type__ = "account" - __version__ = "0.03" + __version__ = "0.04" __description__ = """Euroshare.eu account plugin""" __license__ = "GPLv3" __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): self.relogin(user) html = self.load("http://euroshare.eu/customer-zone/settings/", req=req) @@ -38,4 +38,4 @@ class EuroshareEu(Account): "password": data['password']}, req=req) if u">Nesprávne prihlasovacie meno alebo heslo" in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/ExashareCom.py b/module/plugins/accounts/ExashareCom.py index 431798522..907592bf7 100644 --- a/module/plugins/accounts/ExashareCom.py +++ b/module/plugins/accounts/ExashareCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class ExashareCom(XFSAccount): __name__ = "ExashareCom" __type__ = "account" - __version__ = "0.01" + __version__ = "0.02" __description__ = """Exashare.com account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/FastixRu.py b/module/plugins/accounts/FastixRu.py index dedbc0d5d..eaf12619a 100644 --- a/module/plugins/accounts/FastixRu.py +++ b/module/plugins/accounts/FastixRu.py @@ -7,15 +7,15 @@ from module.common.json_layer import json_loads class FastixRu(Account): __name__ = "FastixRu" __type__ = "account" - __version__ = "0.04" + __version__ = "0.05" __description__ = """Fastix account plugin""" __license__ = "GPLv3" __authors__ = [("Massimo Rosamilia", "max@spiritix.eu")] - def loadAccountInfo(self, user, req): - data = self.getAccountData(user) + def load_account_info(self, user, req): + data = self.get_account_data(user) html = json_loads(self.load("http://fastix.ru/api_v2/", get={'apikey': data['api'], 'sub': "getaccountdetails"}), req=req) points = html['points'] @@ -38,4 +38,4 @@ class FastixRu(Account): data['api'] = api if "error_code" in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/FastshareCz.py b/module/plugins/accounts/FastshareCz.py index 54253041c..be3a91a16 100644 --- a/module/plugins/accounts/FastshareCz.py +++ b/module/plugins/accounts/FastshareCz.py @@ -8,7 +8,7 @@ from module.plugins.internal.Account import Account class FastshareCz(Account): __name__ = "FastshareCz" __type__ = "account" - __version__ = "0.07" + __version__ = "0.08" __description__ = """Fastshare.cz account plugin""" __license__ = "GPLv3" @@ -19,7 +19,7 @@ class FastshareCz(Account): CREDIT_PATTERN = r'Credit\s*:\s*</td>\s*<td>(.+?)\s*<' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): validuntil = -1 trafficleft = None premium = False @@ -28,7 +28,7 @@ class FastshareCz(Account): m = re.search(self.CREDIT_PATTERN, html) if m: - trafficleft = self.parseTraffic(m.group(1)) + trafficleft = self.parse_traffic(m.group(1)) premium = bool(trafficleft) @@ -46,4 +46,4 @@ class FastshareCz(Account): post={'login': user, 'heslo': data['password']}, req=req) if ">Wrong username or password" in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/File4SafeCom.py b/module/plugins/accounts/File4SafeCom.py index 50fe1aac8..74038a457 100644 --- a/module/plugins/accounts/File4SafeCom.py +++ b/module/plugins/accounts/File4SafeCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class File4SafeCom(XFSAccount): __name__ = "File4SafeCom" __type__ = "account" - __version__ = "0.05" + __version__ = "0.06" __description__ = """File4Safe.com account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/FileParadoxIn.py b/module/plugins/accounts/FileParadoxIn.py index c12d99d6a..4bf179fbf 100644 --- a/module/plugins/accounts/FileParadoxIn.py +++ b/module/plugins/accounts/FileParadoxIn.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class FileParadoxIn(XFSAccount): __name__ = "FileParadoxIn" __type__ = "account" - __version__ = "0.02" + __version__ = "0.03" __description__ = """FileParadox.in account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/FilecloudIo.py b/module/plugins/accounts/FilecloudIo.py index 4d69a2ae2..3c3f79ed8 100644 --- a/module/plugins/accounts/FilecloudIo.py +++ b/module/plugins/accounts/FilecloudIo.py @@ -7,7 +7,7 @@ from module.common.json_layer import json_loads class FilecloudIo(Account): __name__ = "FilecloudIo" __type__ = "account" - __version__ = "0.05" + __version__ = "0.06" __description__ = """FilecloudIo account plugin""" __license__ = "GPLv3" @@ -15,16 +15,16 @@ class FilecloudIo(Account): ("stickell", "l.stickell@yahoo.it")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): #: It looks like the first API request always fails, so we retry 5 times, it should work on the second try for _i in xrange(5): rep = self.load("https://secure.filecloud.io/api-fetch_apikey.api", - post={"username": user, "password": self.getAccountData(user)['password']}) + post={"username": user, "password": self.get_account_data(user)['password']}) rep = json_loads(rep) if rep['status'] == 'ok': break elif rep['status'] == 'error' and rep['message'] == 'no such user or wrong password': - self.logError(_("Wrong username or password")) + self.log_error(_("Wrong username or password")) return {"valid": False, "premium": False} else: return {"premium": False} @@ -56,4 +56,4 @@ class FilecloudIo(Account): req=req) if "you have successfully logged in" not in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/FilefactoryCom.py b/module/plugins/accounts/FilefactoryCom.py index 9d61ea927..a950217f4 100644 --- a/module/plugins/accounts/FilefactoryCom.py +++ b/module/plugins/accounts/FilefactoryCom.py @@ -10,7 +10,7 @@ from module.plugins.internal.Account import Account class FilefactoryCom(Account): __name__ = "FilefactoryCom" __type__ = "account" - __version__ = "0.16" + __version__ = "0.17" __description__ = """Filefactory.com account plugin""" __license__ = "GPLv3" @@ -21,7 +21,7 @@ class FilefactoryCom(Account): VALID_UNTIL_PATTERN = r'Premium valid until: <strong>(?P<D>\d{1,2})\w{1,2} (?P<M>\w{3}), (?P<Y>\d{4})</strong>' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): html = self.load("http://www.filefactory.com/account/", req=req) m = re.search(self.VALID_UNTIL_PATTERN, html) @@ -45,4 +45,4 @@ class FilefactoryCom(Account): "Submit" : "Sign In"}, req=req) if req.lastEffectiveURL != "http://www.filefactory.com/account/": - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/FilejungleCom.py b/module/plugins/accounts/FilejungleCom.py index 459c70c95..5b4092681 100644 --- a/module/plugins/accounts/FilejungleCom.py +++ b/module/plugins/accounts/FilejungleCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class FilejungleCom(Account): __name__ = "FilejungleCom" __type__ = "account" - __version__ = "0.13" + __version__ = "0.14" __description__ = """Filejungle.com account plugin""" __license__ = "GPLv3" @@ -23,7 +23,7 @@ class FilejungleCom(Account): LOGIN_FAILED_PATTERN = r'<span htmlfor="loginUser(Name|Password)" generated="true" class="fail_info">' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): html = self.load(self.URL + "dashboard.php", req=req) m = re.search(self.TRAFFIC_LEFT_PATTERN, html) if m: @@ -46,4 +46,4 @@ class FilejungleCom(Account): "recaptcha_shortencode_field": ""}, req=req) if re.search(self.LOGIN_FAILED_PATTERN, html): - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/FileomCom.py b/module/plugins/accounts/FileomCom.py index 7c743f56a..820185497 100644 --- a/module/plugins/accounts/FileomCom.py +++ b/module/plugins/accounts/FileomCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class FileomCom(XFSAccount): __name__ = "FileomCom" __type__ = "account" - __version__ = "0.02" + __version__ = "0.03" __description__ = """Fileom.com account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/FilerNet.py b/module/plugins/accounts/FilerNet.py index 9ab900831..acee71912 100644 --- a/module/plugins/accounts/FilerNet.py +++ b/module/plugins/accounts/FilerNet.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class FilerNet(Account): __name__ = "FilerNet" __type__ = "account" - __version__ = "0.06" + __version__ = "0.07" __description__ = """Filer.net account plugin""" __license__ = "GPLv3" @@ -22,7 +22,7 @@ class FilerNet(Account): FREE_PATTERN = r'Account Status</th>\s*<td>\s*Free' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): html = self.load("https://filer.net/profile", req=req) #: Free user @@ -34,11 +34,11 @@ class FilerNet(Account): if until and traffic: validuntil = time.mktime(time.strptime(until.group(1), "%d.%m.%Y %H:%M:%S")) - trafficleft = self.parseTraffic(traffic.group(1)) + trafficleft = self.parse_traffic(traffic.group(1)) return {"premium": True, "validuntil": validuntil, "trafficleft": trafficleft} else: - self.logError(_("Unable to retrieve account information")) + self.log_error(_("Unable to retrieve account information")) return {"premium": False, "validuntil": None, "trafficleft": None} @@ -55,4 +55,4 @@ class FilerNet(Account): "_target_path": "https://filer.net/"}, req=req) if 'Logout' not in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/FilerioCom.py b/module/plugins/accounts/FilerioCom.py index 4c6755293..6c34ab04c 100644 --- a/module/plugins/accounts/FilerioCom.py +++ b/module/plugins/accounts/FilerioCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class FilerioCom(XFSAccount): __name__ = "FilerioCom" __type__ = "account" - __version__ = "0.03" + __version__ = "0.04" __description__ = """FileRio.in account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/FilesMailRu.py b/module/plugins/accounts/FilesMailRu.py index a1f86f7b5..c8490bf2f 100644 --- a/module/plugins/accounts/FilesMailRu.py +++ b/module/plugins/accounts/FilesMailRu.py @@ -6,14 +6,14 @@ from module.plugins.internal.Account import Account class FilesMailRu(Account): __name__ = "FilesMailRu" __type__ = "account" - __version__ = "0.12" + __version__ = "0.13" __description__ = """Filesmail.ru account plugin""" __license__ = "GPLv3" __authors__ = [("RaNaN", "RaNaN@pyload.org")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): return {"validuntil": None, "trafficleft": None} @@ -27,4 +27,4 @@ class FilesMailRu(Account): "Page": "http://files.mail.ru/"}, req=req) if "ÐевеÑМПе ÐžÐŒÑ Ð¿ÐŸÐ»ÑзПваÑÐµÐ»Ñ ÐžÐ»Ðž паÑПлÑ" in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/FileserveCom.py b/module/plugins/accounts/FileserveCom.py index bda6efc8d..5c6c15167 100644 --- a/module/plugins/accounts/FileserveCom.py +++ b/module/plugins/accounts/FileserveCom.py @@ -9,15 +9,15 @@ from module.common.json_layer import json_loads class FileserveCom(Account): __name__ = "FileserveCom" __type__ = "account" - __version__ = "0.21" + __version__ = "0.22" __description__ = """Fileserve.com account plugin""" __license__ = "GPLv3" __authors__ = [("mkaay", "mkaay@mkaay.de")] - def loadAccountInfo(self, user, req): - data = self.getAccountData(user) + def load_account_info(self, user, req): + data = self.get_account_data(user) html = self.load("http://app.fileserve.com/api/login/", post={"username": user, "password": data['password'], "submit": "Submit+Query"}, req=req) @@ -36,9 +36,9 @@ class FileserveCom(Account): res = json_loads(html) if not res['type']: - self.wrongPassword() + self.wrong_password() - #login at fileserv html + # login at fileserv html self.load("http://www.fileserve.com/login.php", post={"loginUserName": user, "loginUserPassword": data['password'], "autoLogin": "checked", "loginFormSubmit": "Login"}, req=req) diff --git a/module/plugins/accounts/FourSharedCom.py b/module/plugins/accounts/FourSharedCom.py index 2f79d944c..9471e49ca 100644 --- a/module/plugins/accounts/FourSharedCom.py +++ b/module/plugins/accounts/FourSharedCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.Account import Account class FourSharedCom(Account): __name__ = "FourSharedCom" __type__ = "account" - __version__ = "0.05" + __version__ = "0.06" __description__ = """FourShared.com account plugin""" __license__ = "GPLv3" @@ -14,7 +14,7 @@ class FourSharedCom(Account): ("stickell", "l.stickell@yahoo.it")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): #: Free mode only for now return {"premium": False} @@ -30,4 +30,4 @@ class FourSharedCom(Account): 'returnTo' : "http://www.4shared.com/account/home.jsp"}, req=req) if 'Please log in to access your 4shared account' in res: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/FreakshareCom.py b/module/plugins/accounts/FreakshareCom.py index b33790071..7548338f4 100644 --- a/module/plugins/accounts/FreakshareCom.py +++ b/module/plugins/accounts/FreakshareCom.py @@ -9,14 +9,14 @@ from module.plugins.internal.Account import Account class FreakshareCom(Account): __name__ = "FreakshareCom" __type__ = "account" - __version__ = "0.14" + __version__ = "0.15" __description__ = """Freakshare.com account plugin""" __license__ = "GPLv3" __authors__ = [("RaNaN", "RaNaN@pyload.org")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): premium = False validuntil = None trafficleft = None @@ -32,7 +32,7 @@ class FreakshareCom(Account): try: m = re.search(r'Traffic verbleibend:</td>\s*<td>([^<]+)', html, re.M) - trafficleft = self.parseTraffic(m.group(1)) + trafficleft = self.parse_traffic(m.group(1)) except Exception: pass @@ -47,4 +47,4 @@ class FreakshareCom(Account): post={"submit": "Login", "user": user, "pass": data['password']}, req=req) if ">Wrong Username or Password" in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/FreeWayMe.py b/module/plugins/accounts/FreeWayMe.py index b9a0acea7..95977bd0f 100644 --- a/module/plugins/accounts/FreeWayMe.py +++ b/module/plugins/accounts/FreeWayMe.py @@ -7,21 +7,21 @@ from module.common.json_layer import json_loads class FreeWayMe(Account): __name__ = "FreeWayMe" __type__ = "account" - __version__ = "0.15" + __version__ = "0.16" __description__ = """FreeWayMe account plugin""" __license__ = "GPLv3" __authors__ = [("Nicolas Giese", "james@free-way.me")] - def loadAccountInfo(self, user, req): - status = self.getAccountStatus(user, req) + def load_account_info(self, user, req): + status = self.get_account_status(user, req) - self.logDebug(status) + self.log_debug(status) account_info = {"validuntil": -1, "premium": False} if status['premium'] == "Free": - account_info['trafficleft'] = self.parseTraffic(status['guthaben'] + "MB") + account_info['trafficleft'] = self.parse_traffic(status['guthaben'] + "MB") elif status['premium'] == "Spender": account_info['trafficleft'] = -1 elif status['premium'] == "Flatrate": @@ -33,20 +33,20 @@ class FreeWayMe(Account): def login(self, user, data, req): - status = self.getAccountStatus(user, req) + status = self.get_account_status(user, req) #: Check if user and password are valid if not status: - self.wrongPassword() + self.wrong_password() - def getAccountStatus(self, user, req): + def get_account_status(self, user, req): answer = self.load("http://www.free-way.bz/ajax/jd.php", #@TODO: Revert to `https` in 0.4.10 - get={"id": 4, "user": user, "pass": self.getAccountData(user)['password']}) + get={"id": 4, "user": user, "pass": self.get_account_data(user)['password']}) - self.logDebug("Login: %s" % answer) + self.log_debug("Login: %s" % answer) if answer == "Invalid login": - self.wrongPassword() + self.wrong_password() return json_loads(answer) diff --git a/module/plugins/accounts/FshareVn.py b/module/plugins/accounts/FshareVn.py index 67aafae86..3149d6548 100644 --- a/module/plugins/accounts/FshareVn.py +++ b/module/plugins/accounts/FshareVn.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class FshareVn(Account): __name__ = "FshareVn" __type__ = "account" - __version__ = "0.10" + __version__ = "0.11" __description__ = """Fshare.vn account plugin""" __license__ = "GPLv3" @@ -23,19 +23,19 @@ class FshareVn(Account): DIRECT_DOWNLOAD_PATTERN = ur'<input type="checkbox"\s*([^=>]*)[^>]*/>KÃch hoạt download trá»±c tiếp</dt>' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): html = self.load("http://www.fshare.vn/account_info.php", req=req) if re.search(self.LIFETIME_PATTERN, html): - self.logDebug("Lifetime membership detected") - trafficleft = self.getTrafficLeft() + self.log_debug("Lifetime membership detected") + trafficleft = self.get_traffic_left() return {"validuntil": -1, "trafficleft": trafficleft, "premium": True} m = re.search(self.VALID_UNTIL_PATTERN, html) if m: premium = True validuntil = time.mktime(time.strptime(m.group(1), '%I:%M:%S %p %d-%m-%Y')) - trafficleft = self.getTrafficLeft() + trafficleft = self.get_traffic_left() else: premium = False validuntil = None @@ -53,9 +53,9 @@ class FshareVn(Account): referer=True, req=req) if not re.search(r'<img\s+alt="VIP"', html): - self.wrongPassword() + self.wrong_password() - def getTrafficLeft(self): + def get_traffic_left(self): m = re.search(self.TRAFFIC_LEFT_PATTERN, html) - return self.parseTraffic(m.group(1) + m.group(2)) if m else 0 + return self.parse_traffic(m.group(1) + m.group(2)) if m else 0 diff --git a/module/plugins/accounts/Ftp.py b/module/plugins/accounts/Ftp.py index 145ba47be..bebe0e2d6 100644 --- a/module/plugins/accounts/Ftp.py +++ b/module/plugins/accounts/Ftp.py @@ -6,7 +6,7 @@ from module.plugins.internal.Account import Account class Ftp(Account): __name__ = "Ftp" __type__ = "account" - __version__ = "0.02" + __version__ = "0.03" __description__ = """Ftp dummy account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/HellshareCz.py b/module/plugins/accounts/HellshareCz.py index a1f50eb8b..76a9597ee 100644 --- a/module/plugins/accounts/HellshareCz.py +++ b/module/plugins/accounts/HellshareCz.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class HellshareCz(Account): __name__ = "HellshareCz" __type__ = "account" - __version__ = "0.17" + __version__ = "0.18" __description__ = """Hellshare.cz account plugin""" __license__ = "GPLv3" @@ -19,7 +19,7 @@ class HellshareCz(Account): CREDIT_LEFT_PATTERN = r'<div class="credit-link">\s*<table>\s*<tr>\s*<th>(\d+|\d\d\.\d\d\.)</th>' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): self.relogin(user) html = self.load("http://www.hellshare.com/", req=req) @@ -33,18 +33,18 @@ class HellshareCz(Account): premium = True try: if "." in credit: - #Time-based account + # Time-based account vt = [int(x) for x in credit.split('.')[:2]] lt = time.localtime() year = lt.tm_year + int(vt[1] < lt.tm_mon or (vt[1] == lt.tm_mon and vt[0] < lt.tm_mday)) validuntil = time.mktime(time.strptime("%s%d 23:59:59" % (credit, year), "%d.%m.%Y %H:%M:%S")) trafficleft = -1 else: - #Traffic-based account - trafficleft = self.parseTraffic(credit + "MB") + # Traffic-based account + trafficleft = self.parse_traffic(credit + "MB") validuntil = -1 except Exception, e: - self.logError(_("Unable to parse credit info"), e) + self.log_error(_("Unable to parse credit info"), e) validuntil = -1 trafficleft = -1 @@ -54,18 +54,18 @@ class HellshareCz(Account): def login(self, user, data, req): html = self.load('http://www.hellshare.com/', req=req) if req.lastEffectiveURL != 'http://www.hellshare.com/': - #Switch to English - self.logDebug("Switch lang - URL: %s" % req.lastEffectiveURL) + # Switch to English + self.log_debug("Switch lang - URL: %s" % req.lastEffectiveURL) json = self.load("%s?do=locRouter-show" % req.lastEffectiveURL, req=req) hash = re.search(r"(\-\-[0-9a-f]+\-)", json).group(1) - self.logDebug("Switch lang - HASH: %s" % hash) + self.log_debug("Switch lang - HASH: %s" % hash) html = self.load('http://www.hellshare.com/%s/' % hash, req=req) if re.search(self.CREDIT_LEFT_PATTERN, html): - self.logDebug("Already logged in") + self.log_debug("Already logged in") return html = self.load('https://www.hellshare.com/login?do=loginForm-submit', @@ -75,4 +75,4 @@ class HellshareCz(Account): "perm_login": "on"}, req=req) if "<p>You input a wrong user name or wrong password</p>" in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/HighWayMe.py b/module/plugins/accounts/HighWayMe.py index d85db9769..f6baaa0a1 100644 --- a/module/plugins/accounts/HighWayMe.py +++ b/module/plugins/accounts/HighWayMe.py @@ -7,21 +7,21 @@ from module.plugins.internal.Account import Account class HighWayMe(Account): __name__ = "HighWayMe.py" __type__ = "account" - __version__ = "0.03" + __version__ = "0.04" __description__ = """High-Way.me account plugin""" __license__ = "GPLv3" __authors__ = [("EvolutionClip", "evolutionclip@live.de")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): premium = False validuntil = -1 trafficleft = None json_data = self.load('https://high-way.me/api.php?user', req=req) - self.logDebug("JSON data: %s" % json_data) + self.log_debug("JSON data: %s" % json_data) json_data = json_loads(json_data) @@ -44,4 +44,4 @@ class HighWayMe(Account): post={'login': '1', 'user': user, 'pass': data['password']}, req=req) if 'UserOrPassInvalid' in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/Http.py b/module/plugins/accounts/Http.py index 2f12e56d9..369deade4 100644 --- a/module/plugins/accounts/Http.py +++ b/module/plugins/accounts/Http.py @@ -6,7 +6,7 @@ from module.plugins.internal.Account import Account class Http(Account): __name__ = "Http" __type__ = "account" - __version__ = "0.02" + __version__ = "0.03" __description__ = """Http dummy account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/HugefilesNet.py b/module/plugins/accounts/HugefilesNet.py index 5da3bbc37..9fd7b319b 100644 --- a/module/plugins/accounts/HugefilesNet.py +++ b/module/plugins/accounts/HugefilesNet.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class HugefilesNet(XFSAccount): __name__ = "HugefilesNet" __type__ = "account" - __version__ = "0.02" + __version__ = "0.03" __description__ = """Hugefiles.net account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/HundredEightyUploadCom.py b/module/plugins/accounts/HundredEightyUploadCom.py index 319a3feee..f8dcd2252 100644 --- a/module/plugins/accounts/HundredEightyUploadCom.py +++ b/module/plugins/accounts/HundredEightyUploadCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class HundredEightyUploadCom(XFSAccount): __name__ = "HundredEightyUploadCom" __type__ = "account" - __version__ = "0.03" + __version__ = "0.04" __description__ = """180upload.com account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/JunkyvideoCom.py b/module/plugins/accounts/JunkyvideoCom.py index 8275ff176..f4c12affb 100644 --- a/module/plugins/accounts/JunkyvideoCom.py +++ b/module/plugins/accounts/JunkyvideoCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class JunkyvideoCom(XFSAccount): __name__ = "JunkyvideoCom" __type__ = "account" - __version__ = "0.01" + __version__ = "0.02" __description__ = """Junkyvideo.com account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/JunocloudMe.py b/module/plugins/accounts/JunocloudMe.py index b0fc160f3..a72b1a634 100644 --- a/module/plugins/accounts/JunocloudMe.py +++ b/module/plugins/accounts/JunocloudMe.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class JunocloudMe(XFSAccount): __name__ = "JunocloudMe" __type__ = "account" - __version__ = "0.02" + __version__ = "0.03" __description__ = """Junocloud.me account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/Keep2ShareCc.py b/module/plugins/accounts/Keep2ShareCc.py index 617e18f25..71c099bea 100644 --- a/module/plugins/accounts/Keep2ShareCc.py +++ b/module/plugins/accounts/Keep2ShareCc.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class Keep2ShareCc(Account): __name__ = "Keep2ShareCc" __type__ = "account" - __version__ = "0.06" + __version__ = "0.07" __description__ = """Keep2Share.cc account plugin""" __license__ = "GPLv3" @@ -23,7 +23,7 @@ class Keep2ShareCc(Account): LOGIN_FAIL_PATTERN = r'Please fix the following input errors' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): validuntil = None trafficleft = -1 premium = False @@ -33,7 +33,7 @@ class Keep2ShareCc(Account): m = re.search(self.VALID_UNTIL_PATTERN, html) if m: expiredate = m.group(1).strip() - self.logDebug("Expire date: " + expiredate) + self.log_debug("Expire date: " + expiredate) if expiredate == "LifeTime": premium = True @@ -43,7 +43,7 @@ class Keep2ShareCc(Account): validuntil = time.mktime(time.strptime(expiredate, "%Y.%m.%d")) except Exception, e: - self.logError(e) + self.log_error(e) else: premium = True if validuntil > time.mktime(time.gmtime()) else False @@ -51,10 +51,10 @@ class Keep2ShareCc(Account): m = re.search(self.TRAFFIC_LEFT_PATTERN, html) if m: try: - trafficleft = self.parseTraffic(m.group(1)) + trafficleft = self.parse_traffic(m.group(1)) except Exception, e: - self.logError(e) + self.log_error(e) return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium} @@ -69,4 +69,4 @@ class Keep2ShareCc(Account): 'yt0' : ""}, req=req) if re.search(self.LOGIN_FAIL_PATTERN, html): - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/LetitbitNet.py b/module/plugins/accounts/LetitbitNet.py index 811abd971..6b8fcf960 100644 --- a/module/plugins/accounts/LetitbitNet.py +++ b/module/plugins/accounts/LetitbitNet.py @@ -7,23 +7,23 @@ from module.plugins.internal.Account import Account class LetitbitNet(Account): __name__ = "LetitbitNet" __type__ = "account" - __version__ = "0.03" + __version__ = "0.04" __description__ = """Letitbit.net account plugin""" __license__ = "GPLv3" __authors__ = [("stickell", "l.stickell@yahoo.it")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): ## DISABLED BECAUSE IT GET 'key exausted' EVEN IF VALID ## - # api_key = self.getAccountData(user)['password'] + # api_key = self.get_account_data(user)['password'] # json_data = [api_key, ['key/info']] # api_rep = self.load('http://api.letitbit.net/json', post={'r': json_dumps(json_data)}, req=req) - # self.logDebug("API Key Info: " + api_rep) + # self.log_debug("API Key Info: " + api_rep) # api_rep = json_loads(api_rep) # # if api_rep['status'] == 'FAIL': - # self.logWarning(api_rep['data']) + # self.log_warning(api_rep['data']) # return {'valid': False, 'premium': False} return {"premium": True} @@ -31,4 +31,4 @@ class LetitbitNet(Account): def login(self, user, data, req): #: API_KEY is the username and the PREMIUM_KEY is the password - self.logInfo(_("You must use your API KEY as username and the PREMIUM KEY as password")) + self.log_info(_("You must use your API KEY as username and the PREMIUM KEY as password")) diff --git a/module/plugins/accounts/LinestorageCom.py b/module/plugins/accounts/LinestorageCom.py index a48d5beb9..6f6f21c4f 100644 --- a/module/plugins/accounts/LinestorageCom.py +++ b/module/plugins/accounts/LinestorageCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class LinestorageCom(XFSAccount): __name__ = "LinestorageCom" __type__ = "account" - __version__ = "0.03" + __version__ = "0.04" __description__ = """Linestorage.com account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/LinksnappyCom.py b/module/plugins/accounts/LinksnappyCom.py index 4a475bd24..466495ac0 100644 --- a/module/plugins/accounts/LinksnappyCom.py +++ b/module/plugins/accounts/LinksnappyCom.py @@ -9,19 +9,19 @@ from module.common.json_layer import json_loads class LinksnappyCom(Account): __name__ = "LinksnappyCom" __type__ = "account" - __version__ = "0.06" + __version__ = "0.07" __description__ = """Linksnappy.com account plugin""" __license__ = "GPLv3" __authors__ = [("stickell", "l.stickell@yahoo.it")] - def loadAccountInfo(self, user, req): - data = self.getAccountData(user) + def load_account_info(self, user, req): + data = self.get_account_data(user) r = self.load('http://gen.linksnappy.com/lseAPI.php', get={'act': 'USERDETAILS', 'username': user, 'password': hashlib.md5(data['password'], req=req).hexdigest()}) - self.logDebug("JSON data: " + r) + self.log_debug("JSON data: " + r) j = json_loads(r) @@ -42,7 +42,7 @@ class LinksnappyCom(Account): if 'trafficleft' not in j['return'] or isinstance(j['return']['trafficleft'], str): trafficleft = -1 else: - trafficleft = self.parseTraffic("%d MB" % j['return']['trafficleft']) + trafficleft = self.parse_traffic("%d MB" % j['return']['trafficleft']) return {'premium' : True , 'validuntil' : validuntil , @@ -56,4 +56,4 @@ class LinksnappyCom(Account): 'password': hashlib.md5(data['password'], req=req).hexdigest()}) if "Invalid Account Details" in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/MegaDebridEu.py b/module/plugins/accounts/MegaDebridEu.py index 53c67833c..7a6e36f05 100644 --- a/module/plugins/accounts/MegaDebridEu.py +++ b/module/plugins/accounts/MegaDebridEu.py @@ -7,7 +7,7 @@ from module.common.json_layer import json_loads class MegaDebridEu(Account): __name__ = "MegaDebridEu" __type__ = "account" - __version__ = "0.21" + __version__ = "0.22" __description__ = """Mega-debrid.eu account plugin""" __license__ = "GPLv3" @@ -18,8 +18,8 @@ class MegaDebridEu(Account): API_URL = "https://www.mega-debrid.eu/api.php" - def loadAccountInfo(self, user, req): - data = self.getAccountData(user) + def load_account_info(self, user, req): + data = self.get_account_data(user) jsonResponse = self.load(self.API_URL, get={'action': 'connectUser', 'login': user, 'password': data['password']}, req=req) res = json_loads(jsonResponse) @@ -27,7 +27,7 @@ class MegaDebridEu(Account): if res['response_code'] == "ok": return {"premium": True, "validuntil": float(res['vip_end']), "status": True} else: - self.logError(res) + self.log_error(res) return {"status": False, "premium": False} @@ -36,4 +36,4 @@ class MegaDebridEu(Account): get={'action': 'connectUser', 'login': user, 'password': data['password']}, req=req) res = json_loads(jsonResponse) if res['response_code'] != "ok": - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/MegaRapidCz.py b/module/plugins/accounts/MegaRapidCz.py index af23b7bf3..c8650ed8e 100644 --- a/module/plugins/accounts/MegaRapidCz.py +++ b/module/plugins/accounts/MegaRapidCz.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class MegaRapidCz(Account): __name__ = "MegaRapidCz" __type__ = "account" - __version__ = "0.36" + __version__ = "0.37" __description__ = """MegaRapid.cz account plugin""" __license__ = "GPLv3" @@ -24,12 +24,12 @@ class MegaRapidCz(Account): TRAFFIC_LEFT_PATTERN = r'<tr><td>Kredit</td><td>(.*?) GiB' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): htmll = self.load("http://megarapid.cz/mujucet/", req=req) m = re.search(self.LIMITDL_PATTERN, htmll) if m: - data = self.getAccountData(user) + data = self.get_account_data(user) data['options']['limitDL'] = [int(m.group(1))] m = re.search(self.VALID_UNTIL_PATTERN, htmll) diff --git a/module/plugins/accounts/MegaRapidoNet.py b/module/plugins/accounts/MegaRapidoNet.py index de1c775c7..ddb7e090a 100644 --- a/module/plugins/accounts/MegaRapidoNet.py +++ b/module/plugins/accounts/MegaRapidoNet.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class MegaRapidoNet(Account): __name__ = "MegaRapidoNet" __type__ = "account" - __version__ = "0.03" + __version__ = "0.04" __description__ = """MegaRapido.net account plugin""" __license__ = "GPLv3" @@ -20,7 +20,7 @@ class MegaRapidoNet(Account): USER_ID_PATTERN = r'<\s*?div[^>]*?class\s*?=\s*?["\']checkbox_compartilhar["\'].*?>.*?<\s*?input[^>]*?name\s*?=\s*?["\']usar["\'].*?>.*?<\s*?input[^>]*?name\s*?=\s*?["\']user["\'][^>]*?value\s*?=\s*?["\'](.*?)\s*?["\']' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): validuntil = None trafficleft = None premium = False @@ -29,7 +29,7 @@ class MegaRapidoNet(Account): validuntil = re.search(self.VALID_UNTIL_PATTERN, html) if validuntil: - #hier weitermachen!!! (mÃŒssen umbedingt die zeit richtig machen damit! (sollte aber möglich)) + # hier weitermachen!!! (mÃŒssen umbedingt die zeit richtig machen damit! (sollte aber möglich)) validuntil = time.time() + int(validuntil.group(1)) * 24 * 3600 + int(validuntil.group(2)) * 3600 + int(validuntil.group(3)) * 60 + int(validuntil.group(4)) trafficleft = -1 premium = True @@ -47,7 +47,7 @@ class MegaRapidoNet(Account): html = self.load("http://megarapido.net/gerador", req=req) if "sair" not in html.lower(): - self.wrongPassword() + self.wrong_password() else: m = re.search(self.USER_ID_PATTERN, html) if m: diff --git a/module/plugins/accounts/MegasharesCom.py b/module/plugins/accounts/MegasharesCom.py index af0987ed3..3aa26692c 100644 --- a/module/plugins/accounts/MegasharesCom.py +++ b/module/plugins/accounts/MegasharesCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class MegasharesCom(Account): __name__ = "MegasharesCom" __type__ = "account" - __version__ = "0.04" + __version__ = "0.05" __description__ = """Megashares.com account plugin""" __license__ = "GPLv3" @@ -19,8 +19,8 @@ class MegasharesCom(Account): VALID_UNTIL_PATTERN = r'<p class="premium_info_box">Period Ends: (\w{3} \d{1,2}, \d{4})</p>' - def loadAccountInfo(self, user, req): - #self.relogin(user) + def load_account_info(self, user, req): + # self.relogin(user) html = self.load("http://d01.megashares.com/myms.php", req=req) premium = False if '>Premium Upgrade<' in html else True @@ -28,10 +28,10 @@ class MegasharesCom(Account): validuntil = trafficleft = -1 try: timestr = re.search(self.VALID_UNTIL_PATTERN, html).group(1) - self.logDebug(timestr) + self.log_debug(timestr) validuntil = time.mktime(time.strptime(timestr, "%b %d, %Y")) except Exception, e: - self.logError(e) + self.log_error(e) return {"validuntil": validuntil, "trafficleft": -1, "premium": premium} @@ -44,4 +44,4 @@ class MegasharesCom(Account): "mymspassword" : data['password']}, req=req) if not '<span class="b ml">%s</span>' % user in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/MovReelCom.py b/module/plugins/accounts/MovReelCom.py index 6128cddc8..885204615 100644 --- a/module/plugins/accounts/MovReelCom.py +++ b/module/plugins/accounts/MovReelCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class MovReelCom(XFSAccount): __name__ = "MovReelCom" __type__ = "account" - __version__ = "0.03" + __version__ = "0.04" __description__ = """Movreel.com account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/MultihostersCom.py b/module/plugins/accounts/MultihostersCom.py index e98f17b2d..65c6ea778 100644 --- a/module/plugins/accounts/MultihostersCom.py +++ b/module/plugins/accounts/MultihostersCom.py @@ -6,7 +6,7 @@ from module.plugins.accounts.ZeveraCom import ZeveraCom class MultihostersCom(ZeveraCom): __name__ = "MultihostersCom" __type__ = "account" - __version__ = "0.03" + __version__ = "0.04" __description__ = """Multihosters.com account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/MultishareCz.py b/module/plugins/accounts/MultishareCz.py index be947f7f2..ddb605ac7 100644 --- a/module/plugins/accounts/MultishareCz.py +++ b/module/plugins/accounts/MultishareCz.py @@ -8,7 +8,7 @@ from module.plugins.internal.Account import Account class MultishareCz(Account): __name__ = "MultishareCz" __type__ = "account" - __version__ = "0.06" + __version__ = "0.07" __description__ = """Multishare.cz account plugin""" __license__ = "GPLv3" @@ -19,12 +19,12 @@ class MultishareCz(Account): ACCOUNT_INFO_PATTERN = r'<input type="hidden" id="(u_ID|u_hash)" name=".+?" value="(.+?)">' - def loadAccountInfo(self, user, req): - #self.relogin(user) + def load_account_info(self, user, req): + # self.relogin(user) html = self.load("http://www.multishare.cz/profil/", req=req) m = re.search(self.TRAFFIC_LEFT_PATTERN, html) - trafficleft = self.parseTraffic(m.group('S') + m.group('U')) if m else 0 + trafficleft = self.parse_traffic(m.group('S') + m.group('U')) if m else 0 self.premium = True if trafficleft else False html = self.load("http://www.multishare.cz/", req=req) @@ -40,4 +40,4 @@ class MultishareCz(Account): "jmeno": user}, req=req) if '<div class="akce-chyba akce">' in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/MyfastfileCom.py b/module/plugins/accounts/MyfastfileCom.py index 258c99346..aa2dde191 100644 --- a/module/plugins/accounts/MyfastfileCom.py +++ b/module/plugins/accounts/MyfastfileCom.py @@ -9,19 +9,19 @@ from module.plugins.internal.Account import Account class MyfastfileCom(Account): __name__ = "MyfastfileCom" __type__ = "account" - __version__ = "0.05" + __version__ = "0.06" __description__ = """Myfastfile.com account plugin""" __license__ = "GPLv3" __authors__ = [("stickell", "l.stickell@yahoo.it")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): if 'days_left' in self.json_data: validuntil = time.time() + self.json_data['days_left'] * 24 * 60 * 60 return {"premium": True, "validuntil": validuntil, "trafficleft": -1} else: - self.logError(_("Unable to get account information")) + self.log_error(_("Unable to get account information")) def login(self, user, data, req): @@ -29,9 +29,9 @@ class MyfastfileCom(Account): html = self.load("https://myfastfile.com/api.php", get={"user": user, "pass": data['password']}, req=req) - self.logDebug("JSON data: " + html) + self.log_debug("JSON data: " + html) self.json_data = json_loads(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() + self.log_error(_('Invalid login. The password to use is the API-Password you find in your "My Account" page')) + self.wrong_password() diff --git a/module/plugins/accounts/NitroflareCom.py b/module/plugins/accounts/NitroflareCom.py index cc2f4e232..c17f0b8b4 100644 --- a/module/plugins/accounts/NitroflareCom.py +++ b/module/plugins/accounts/NitroflareCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class NitroflareCom(Account): __name__ = "NitroflareCom" __type__ = "account" - __version__ = "0.05" + __version__ = "0.06" __description__ = """Nitroflare.com account plugin""" __license__ = "GPLv3" @@ -23,7 +23,7 @@ class NitroflareCom(Account): TOKEN_PATTERN = r'name="token" value="(.+?)"' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): validuntil = -1 trafficleft = None premium = False @@ -34,16 +34,16 @@ class NitroflareCom(Account): m = re.search(self.VALID_UNTIL_PATTERN, html) if m: expiredate = m.group(1).strip() - self.logDebug("Time Left: " + expiredate) + self.log_debug("Time Left: " + expiredate) try: validuntil = sum(int(v) * {'day': 24 * 3600, 'hour': 3600, 'minute': 60}[u.lower()] for v, u in re.findall(r'(\d+)\s*(day|hour|minute)', expiredate, re.I)) except Exception, e: - self.logError(e) + self.log_error(e) else: - self.logDebug("Valid until: %s" % validuntil) + self.log_debug("Valid until: %s" % validuntil) if validuntil: validuntil += time.time() @@ -54,12 +54,12 @@ class NitroflareCom(Account): m = re.search(self.TRAFFIC_LEFT_PATTERN, html) if m: try: - trafficleft = self.parseTraffic(str(max(0, 50 - float(m.group(1)))) + " GB") + trafficleft = self.parse_traffic(str(max(0, 50 - float(m.group(1)))) + " GB") except Exception, e: - self.logError(e) + self.log_error(e) else: - self.logDebug("TRAFFIC_LEFT_PATTERN not found") + self.log_debug("TRAFFIC_LEFT_PATTERN not found") return {'validuntil' : validuntil, 'trafficleft': trafficleft, @@ -78,4 +78,4 @@ class NitroflareCom(Account): 'token' : token}, req=req) if re.search(self.LOGIN_FAIL_PATTERN, html): - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/NoPremiumPl.py b/module/plugins/accounts/NoPremiumPl.py index 01060250b..6f82f3c97 100644 --- a/module/plugins/accounts/NoPremiumPl.py +++ b/module/plugins/accounts/NoPremiumPl.py @@ -11,7 +11,7 @@ from module.plugins.internal.Account import Account class NoPremiumPl(Account): __name__ = "NoPremiumPl" __type__ = "account" - __version__ = "0.02" + __version__ = "0.03" __description__ = "NoPremium.pl account plugin" __license__ = "GPLv3" @@ -31,10 +31,10 @@ class NoPremiumPl(Account): _pwd = None - def loadAccountInfo(self, name, req): + def load_account_info(self, name, req): self._req = req try: - result = json_loads(self.runAuthQuery()) + result = json_loads(self.run_auth_query()) except Exception: #@TODO: return or let it be thrown? return @@ -59,23 +59,23 @@ class NoPremiumPl(Account): self._req = req try: - response = json_loads(self.runAuthQuery()) + response = json_loads(self.run_auth_query()) except Exception: - self.wrongPassword() + self.wrong_password() if "errno" in response.keys(): - self.wrongPassword() + self.wrong_password() data['usr'] = self._usr data['pwd'] = self._pwd - def createAuthQuery(self): + def create_auth_query(self): query = self.API_QUERY query['username'] = self._usr query['password'] = self._pwd return query - def runAuthQuery(self): - return self._self.load(self.API_URL, post=self.createAuthQuery(), req=req) + def run_auth_query(self): + return self._self.load(self.API_URL, post=self.create_auth_query(), req=req) diff --git a/module/plugins/accounts/NosuploadCom.py b/module/plugins/accounts/NosuploadCom.py index e523ee2f4..9fb1a6484 100644 --- a/module/plugins/accounts/NosuploadCom.py +++ b/module/plugins/accounts/NosuploadCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class NosuploadCom(XFSAccount): __name__ = "NosuploadCom" __type__ = "account" - __version__ = "0.02" + __version__ = "0.03" __description__ = """Nosupload.com account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/NovafileCom.py b/module/plugins/accounts/NovafileCom.py index ab61bf0fc..077312c9d 100644 --- a/module/plugins/accounts/NovafileCom.py +++ b/module/plugins/accounts/NovafileCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class NovafileCom(XFSAccount): __name__ = "NovafileCom" __type__ = "account" - __version__ = "0.02" + __version__ = "0.03" __description__ = """Novafile.com account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/NowVideoSx.py b/module/plugins/accounts/NowVideoSx.py index 81267d413..e679367d6 100644 --- a/module/plugins/accounts/NowVideoSx.py +++ b/module/plugins/accounts/NowVideoSx.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class NowVideoSx(Account): __name__ = "NowVideoSx" __type__ = "account" - __version__ = "0.04" + __version__ = "0.05" __description__ = """NowVideo.at account plugin""" __license__ = "GPLv3" @@ -19,7 +19,7 @@ class NowVideoSx(Account): VALID_UNTIL_PATTERN = r'>Your premium membership expires on: (.+?)<' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): validuntil = None trafficleft = -1 premium = None @@ -29,13 +29,13 @@ class NowVideoSx(Account): m = re.search(self.VALID_UNTIL_PATTERN, html) if m: expiredate = m.group(1).strip() - self.logDebug("Expire date: " + expiredate) + self.log_debug("Expire date: " + expiredate) try: validuntil = time.mktime(time.strptime(expiredate, "%Y-%b-%d")) except Exception, e: - self.logError(e) + self.log_error(e) else: if validuntil > time.mktime(time.gmtime()): @@ -52,4 +52,4 @@ class NowVideoSx(Account): post={'user': user, 'pass': data['password']}, req=req) if re.search(r'>Log In<', html): - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/OboomCom.py b/module/plugins/accounts/OboomCom.py index 96ef51f1e..958613e9e 100644 --- a/module/plugins/accounts/OboomCom.py +++ b/module/plugins/accounts/OboomCom.py @@ -23,31 +23,31 @@ from module.plugins.internal.Account import Account class OboomCom(Account): __name__ = "OboomCom" __type__ = "account" - __version__ = "0.25" + __version__ = "0.26" __description__ = """Oboom.com account plugin""" __license__ = "GPLv3" __authors__ = [("stanley", "stanley.foerster@gmail.com")] - def loadAccountData(self, user, req): - passwd = self.getAccountData(user)['password'] + def load_account_data(self, user, req): + passwd = self.get_account_data(user)['password'] salt = passwd[::-1] pbkdf2 = PBKDF2(passwd, salt, 1000).hexread(16) result = json_loads(self.load("https://www.oboom.com/1/login", get={"auth": user, "pass": pbkdf2}), req=req) if not result[0] == 200: - self.logWarning(_("Failed to log in: %s") % result[1]) - self.wrongPassword() + self.log_warning(_("Failed to log in: %s") % result[1]) + self.wrong_password() return result[1] - def loadAccountInfo(self, name, req): - accountData = self.loadAccountData(name, req) + def load_account_info(self, name, req): + account_data = self.load_account_data(name, req) - userData = accountData['user'] + userData = account_data['user'] if userData['premium'] == "null": premium = False @@ -64,7 +64,7 @@ class OboomCom(Account): trafficLeft = traffic['current'] / 1024 #@TODO: Remove `/ 1024` in 0.4.10 maxTraffic = traffic['max'] / 1024 #@TODO: Remove `/ 1024` in 0.4.10 - session = accountData['session'] + session = account_data['session'] return {'premium' : premium, 'validuntil' : validUntil, @@ -74,4 +74,4 @@ class OboomCom(Account): def login(self, user, data, req): - self.loadAccountData(user, req) + self.load_account_data(user, req) diff --git a/module/plugins/accounts/OneFichierCom.py b/module/plugins/accounts/OneFichierCom.py index 3a345bd9f..12be92c3e 100644 --- a/module/plugins/accounts/OneFichierCom.py +++ b/module/plugins/accounts/OneFichierCom.py @@ -10,7 +10,7 @@ from module.plugins.internal.Account import Account class OneFichierCom(Account): __name__ = "OneFichierCom" __type__ = "account" - __version__ = "0.13" + __version__ = "0.14" __description__ = """1fichier.com account plugin""" __license__ = "GPLv3" @@ -21,7 +21,7 @@ class OneFichierCom(Account): VALID_UNTIL_PATTERN = r'Your Premium Status will end the (\d+/\d+/\d+)' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): validuntil = None trafficleft = -1 premium = None @@ -31,12 +31,12 @@ class OneFichierCom(Account): m = re.search(self.VALID_UNTIL_PATTERN, html) if m: expiredate = m.group(1) - self.logDebug("Expire date: " + expiredate) + self.log_debug("Expire date: " + expiredate) try: validuntil = time.mktime(time.strptime(expiredate, "%d/%m/%Y")) except Exception, e: - self.logError(e) + self.log_error(e) else: premium = True @@ -54,4 +54,4 @@ class OneFichierCom(Account): 'valider': "Send"}, req=req) if '>Invalid email address' in html or '>Invalid password' in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/OverLoadMe.py b/module/plugins/accounts/OverLoadMe.py index 898c122cd..d47a579f2 100644 --- a/module/plugins/accounts/OverLoadMe.py +++ b/module/plugins/accounts/OverLoadMe.py @@ -7,21 +7,21 @@ from module.common.json_layer import json_loads class OverLoadMe(Account): __name__ = "OverLoadMe" __type__ = "account" - __version__ = "0.05" + __version__ = "0.06" __description__ = """Over-Load.me account plugin""" __license__ = "GPLv3" __authors__ = [("marley", "marley@over-load.me")] - def loadAccountInfo(self, user, req): - data = self.getAccountData(user) + def load_account_info(self, user, req): + data = self.get_account_data(user) html = self.load("https://api.over-load.me/account.php", get={'user': user, 'auth': data['password']}, req=req).strip() data = json_loads(html) - self.logDebug(data) + self.log_debug(data) #: Check for premium if data['membership'] == "Free": @@ -38,4 +38,4 @@ class OverLoadMe(Account): data = json_loads(jsondata) if data['err'] == 1: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/PremiumTo.py b/module/plugins/accounts/PremiumTo.py index fb99cfd59..639ea1529 100644 --- a/module/plugins/accounts/PremiumTo.py +++ b/module/plugins/accounts/PremiumTo.py @@ -6,7 +6,7 @@ from module.plugins.internal.Account import Account class PremiumTo(Account): __name__ = "PremiumTo" __type__ = "account" - __version__ = "0.10" + __version__ = "0.11" __description__ = """Premium.to account plugin""" __license__ = "GPLv3" @@ -15,7 +15,7 @@ class PremiumTo(Account): ("stickell", "l.stickell@yahoo.it")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): traffic = self.load("http://premium.to/api/straffic.php", #@TODO: Revert to `https` in 0.4.10 get={'username': self.username, 'password': self.password}, req=req) @@ -33,4 +33,4 @@ class PremiumTo(Account): get={'username': user, 'password': self.password}, req=req) if "wrong username" in authcode: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/PremiumizeMe.py b/module/plugins/accounts/PremiumizeMe.py index d7f0b7391..a2a6c139c 100644 --- a/module/plugins/accounts/PremiumizeMe.py +++ b/module/plugins/accounts/PremiumizeMe.py @@ -7,17 +7,17 @@ from module.plugins.internal.Account import Account class PremiumizeMe(Account): __name__ = "PremiumizeMe" __type__ = "account" - __version__ = "0.18" + __version__ = "0.19" __description__ = """Premiumize.me account plugin""" __license__ = "GPLv3" __authors__ = [("Florian Franzen", "FlorianFranzen@gmail.com")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): #: Get user data from premiumize.me - status = self.getAccountStatus(user, req) - self.logDebug(status) + status = self.get_account_status(user, req) + self.log_debug(status) #: Parse account info account_info = {"validuntil": float(status['result']['expires']), @@ -31,18 +31,18 @@ class PremiumizeMe(Account): def login(self, user, data, req): #: Get user data from premiumize.me - status = self.getAccountStatus(user, req) + status = self.get_account_status(user, req) #: Check if user and password are valid if status['status'] != 200: - self.wrongPassword() + self.wrong_password() - def getAccountStatus(self, user, req): + def get_account_status(self, user, req): #: Use premiumize.me API v1 (see https://secure.premiumize.me/?show=api) #: to retrieve account info and return the parsed json answer answer = self.load("http://api.premiumize.me/pm-api/v1.php", #@TODO: Revert to `https` in 0.4.10 get={'method' : "accountstatus", 'params[login]': user, - 'params[pass]' : self.getAccountData(user)['password']}) + 'params[pass]' : self.get_account_data(user)['password']}) return json_loads(answer) diff --git a/module/plugins/accounts/PutdriveCom.py b/module/plugins/accounts/PutdriveCom.py index 4f2fadbcc..61f59fd75 100644 --- a/module/plugins/accounts/PutdriveCom.py +++ b/module/plugins/accounts/PutdriveCom.py @@ -6,7 +6,7 @@ from module.plugins.accounts.ZeveraCom import ZeveraCom class PutdriveCom(ZeveraCom): __name__ = "PutdriveCom" __type__ = "account" - __version__ = "0.02" + __version__ = "0.03" __description__ = """Putdrive.com account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/QuickshareCz.py b/module/plugins/accounts/QuickshareCz.py index c3cfe6f6f..17d3bfce8 100644 --- a/module/plugins/accounts/QuickshareCz.py +++ b/module/plugins/accounts/QuickshareCz.py @@ -8,7 +8,7 @@ from module.plugins.internal.Account import Account class QuickshareCz(Account): __name__ = "QuickshareCz" __type__ = "account" - __version__ = "0.04" + __version__ = "0.05" __description__ = """Quickshare.cz account plugin""" __license__ = "GPLv3" @@ -18,12 +18,12 @@ class QuickshareCz(Account): TRAFFIC_LEFT_PATTERN = r'Stav kreditu: <strong>(.+?)</strong>' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): html = self.load("http://www.quickshare.cz/premium", req=req) m = re.search(self.TRAFFIC_LEFT_PATTERN, html) if m: - trafficleft = self.parseTraffic(m.group(1)) + trafficleft = self.parse_traffic(m.group(1)) premium = True if trafficleft else False else: trafficleft = None @@ -39,4 +39,4 @@ class QuickshareCz(Account): "jmeno": user}, req=req) if u'>TakovÃœ uÅŸivatel neexistuje.<' in html or u'>Å patné heslo.<' in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/RPNetBiz.py b/module/plugins/accounts/RPNetBiz.py index be456f2d7..d103e918d 100644 --- a/module/plugins/accounts/RPNetBiz.py +++ b/module/plugins/accounts/RPNetBiz.py @@ -7,16 +7,16 @@ from module.common.json_layer import json_loads class RPNetBiz(Account): __name__ = "RPNetBiz" __type__ = "account" - __version__ = "0.13" + __version__ = "0.14" __description__ = """RPNet.biz account plugin""" __license__ = "GPLv3" __authors__ = [("Dman", "dmanugm@gmail.com")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): #: Get account information from rpnet.biz - res = self.getAccountStatus(user, req) + res = self.get_account_status(user, req) try: if res['accountInfo']['isPremium']: #: Parse account info. Change the trafficleft later to support per host info. @@ -26,7 +26,7 @@ class RPNetBiz(Account): account_info = {"validuntil": None, "trafficleft": None, "premium": False} except KeyError: - #handle wrong password exception + # handle wrong password exception account_info = {"validuntil": None, "trafficleft": None, "premium": False} return account_info @@ -34,18 +34,18 @@ class RPNetBiz(Account): def login(self, user, data, req): #: Get account information from rpnet.biz - res = self.getAccountStatus(user, req) + res = self.get_account_status(user, req) #: If we have an error in the res, we have wrong login information if 'error' in res: - self.wrongPassword() + self.wrong_password() - def getAccountStatus(self, user, req): + def get_account_status(self, user, req): #: Using the rpnet API, check if valid premium account res = self.load("https://premium.rpnet.biz/client_api.php", - get={"username": user, "password": self.getAccountData(user)['password'], + get={"username": user, "password": self.get_account_data(user)['password'], "action": "showAccountInformation"}) - self.logDebug("JSON data: %s" % res) + self.log_debug("JSON data: %s" % res) return json_loads(res) diff --git a/module/plugins/accounts/RapideoPl.py b/module/plugins/accounts/RapideoPl.py index f5ce2e2b1..1f4140846 100644 --- a/module/plugins/accounts/RapideoPl.py +++ b/module/plugins/accounts/RapideoPl.py @@ -11,7 +11,7 @@ from module.plugins.internal.Account import Account class RapideoPl(Account): __name__ = "RapideoPl" __type__ = "account" - __version__ = "0.02" + __version__ = "0.03" __description__ = "Rapideo.pl account plugin" __license__ = "GPLv3" @@ -31,10 +31,10 @@ class RapideoPl(Account): _pwd = None - def loadAccountInfo(self, name, req): + def load_account_info(self, name, req): self._req = req try: - result = json_loads(self.runAuthQuery()) + result = json_loads(self.run_auth_query()) except Exception: #@TODO: return or let it be thrown? return @@ -59,23 +59,23 @@ class RapideoPl(Account): self._req = req try: - response = json_loads(self.runAuthQuery()) + response = json_loads(self.run_auth_query()) except Exception: - self.wrongPassword() + self.wrong_password() if "errno" in response.keys(): - self.wrongPassword() + self.wrong_password() data['usr'] = self._usr data['pwd'] = self._pwd - def createAuthQuery(self): + def create_auth_query(self): query = self.API_QUERY query['username'] = self._usr query['password'] = self._pwd return query - def runAuthQuery(self): - return self._self.load(self.API_URL, post=self.createAuthQuery(), req=req) + def run_auth_query(self): + return self._self.load(self.API_URL, post=self.create_auth_query(), req=req) diff --git a/module/plugins/accounts/RapidfileshareNet.py b/module/plugins/accounts/RapidfileshareNet.py index c0dd7eaee..8758e799b 100644 --- a/module/plugins/accounts/RapidfileshareNet.py +++ b/module/plugins/accounts/RapidfileshareNet.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class RapidfileshareNet(XFSAccount): __name__ = "RapidfileshareNet" __type__ = "account" - __version__ = "0.05" + __version__ = "0.06" __description__ = """Rapidfileshare.net account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/RapidgatorNet.py b/module/plugins/accounts/RapidgatorNet.py index c14490dd5..c17765e12 100644 --- a/module/plugins/accounts/RapidgatorNet.py +++ b/module/plugins/accounts/RapidgatorNet.py @@ -7,7 +7,7 @@ from module.common.json_layer import json_loads class RapidgatorNet(Account): __name__ = "RapidgatorNet" __type__ = "account" - __version__ = "0.10" + __version__ = "0.11" __description__ = """Rapidgator.net account plugin""" __license__ = "GPLv3" @@ -17,34 +17,34 @@ class RapidgatorNet(Account): API_URL = "http://rapidgator.net/api/user" - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): validuntil = None trafficleft = None premium = False sid = None try: - sid = self.getAccountData(user).get('sid', None) + sid = self.get_account_data(user).get('sid', None) assert sid html = self.load("%s/info" % self.API_URL, get={'sid': sid}, req=req) - self.logDebug("API:USERINFO", html) + self.log_debug("API:USERINFO", html) json = json_loads(html) if json['response_status'] == 200: if "reset_in" in json['response']: - self.scheduleRefresh(user, json['response']['reset_in']) + self.schedule_refresh(user, json['response']['reset_in']) validuntil = json['response']['expire_date'] trafficleft = float(json['response']['traffic_left']) / 1024 #@TODO: Remove `/ 1024` in 0.4.10 premium = True else: - self.logError(json['response_details']) + self.log_error(json['response_details']) except Exception, e: - self.logError(e) + self.log_error(e) return {'validuntil' : validuntil, 'trafficleft': trafficleft, @@ -56,7 +56,7 @@ class RapidgatorNet(Account): try: html = self.load('%s/login' % self.API_URL, post={"username": user, "password": data['password']}, req=req) - self.logDebug("API:LOGIN", html) + self.log_debug("API:LOGIN", html) json = json_loads(html) @@ -64,9 +64,9 @@ class RapidgatorNet(Account): data['sid'] = str(json['response']['session_id']) return else: - self.logError(json['response_details']) + self.log_error(json['response_details']) except Exception, e: - self.logError(e) + self.log_error(e) - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/RapiduNet.py b/module/plugins/accounts/RapiduNet.py index 5e74e18bb..256b612a1 100644 --- a/module/plugins/accounts/RapiduNet.py +++ b/module/plugins/accounts/RapiduNet.py @@ -10,7 +10,7 @@ from module.common.json_layer import json_loads class RapiduNet(Account): __name__ = "RapiduNet" __type__ = "account" - __version__ = "0.06" + __version__ = "0.07" __description__ = """Rapidu.net account plugin""" __license__ = "GPLv3" @@ -25,7 +25,7 @@ class RapiduNet(Account): TRAFFIC_LEFT_PATTERN = r'class="tipsyS"><b>(.+?)<' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): validuntil = None trafficleft = -1 premium = False @@ -41,7 +41,7 @@ class RapiduNet(Account): m = re.search(self.TRAFFIC_LEFT_PATTERN, html) if m: - trafficleft = self.parseTraffic(m.group(1)) + trafficleft = self.parse_traffic(m.group(1)) return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium} @@ -59,7 +59,7 @@ class RapiduNet(Account): 'pass' : data['password'], 'remember': "1"}, req=req)) - self.logDebug(json) + self.log_debug(json) if not json['message'] == "success": - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/RarefileNet.py b/module/plugins/accounts/RarefileNet.py index 577a6c8f6..e8be7925b 100644 --- a/module/plugins/accounts/RarefileNet.py +++ b/module/plugins/accounts/RarefileNet.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class RarefileNet(XFSAccount): __name__ = "RarefileNet" __type__ = "account" - __version__ = "0.04" + __version__ = "0.05" __description__ = """RareFile.net account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/RealdebridCom.py b/module/plugins/accounts/RealdebridCom.py index 83fdc5dbc..f16ebed27 100644 --- a/module/plugins/accounts/RealdebridCom.py +++ b/module/plugins/accounts/RealdebridCom.py @@ -8,14 +8,14 @@ from module.plugins.internal.Account import Account class RealdebridCom(Account): __name__ = "RealdebridCom" __type__ = "account" - __version__ = "0.47" + __version__ = "0.48" __description__ = """Real-Debrid.com account plugin""" __license__ = "GPLv3" __authors__ = [("Devirex Hazzard", "naibaf_11@yahoo.de")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): if self.pin_code: return @@ -36,8 +36,8 @@ class RealdebridCom(Account): get={"user": user, "pass": data['password']}, req=req) if "Your login informations are incorrect" in html: - self.wrongPassword() + self.wrong_password() elif "PIN Code required" in html: - self.logWarning(_("PIN code required. Please login to https://real-debrid.com using the PIN or disable the double authentication in your control panel on https://real-debrid.com")) + self.log_warning(_("PIN code required. Please login to https://real-debrid.com using the PIN or disable the double authentication in your control panel on https://real-debrid.com")) self.pin_code = True diff --git a/module/plugins/accounts/RehostTo.py b/module/plugins/accounts/RehostTo.py index 5f0c1253e..43c0cb029 100644 --- a/module/plugins/accounts/RehostTo.py +++ b/module/plugins/accounts/RehostTo.py @@ -6,14 +6,14 @@ from module.plugins.internal.Account import Account class RehostTo(Account): __name__ = "RehostTo" __type__ = "account" - __version__ = "0.17" + __version__ = "0.18" __description__ = """Rehost.to account plugin""" __license__ = "GPLv3" __authors__ = [("RaNaN", "RaNaN@pyload.org")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): premium = False trafficleft = None validuntil = -1 @@ -21,7 +21,7 @@ class RehostTo(Account): html = self.load("https://rehost.to/api.php", get={'cmd' : "login", 'user': user, - 'pass': self.getAccountData(user)['password']}) + 'pass': self.get_account_data(user)['password']}) try: session = html.split(",")[1].split("=")[1] @@ -29,12 +29,12 @@ class RehostTo(Account): get={'cmd': "get_premium_credits", 'long_ses': session}, req=req) if html.strip() == "0,0" or "ERROR" in html: - self.logDebug(html) + self.log_debug(html) else: traffic, valid = html.split(",") premium = True - trafficleft = self.parseTraffic(traffic + "MB") + trafficleft = self.parse_traffic(traffic + "MB") validuntil = float(valid) finally: @@ -49,5 +49,5 @@ class RehostTo(Account): get={'cmd': "login", 'user': user, 'pass': data['password']}, req=req) if "ERROR" in html: - self.logDebug(html) - self.wrongPassword() + self.log_debug(html) + self.wrong_password() diff --git a/module/plugins/accounts/RyushareCom.py b/module/plugins/accounts/RyushareCom.py index 8c56ff20f..de627a8f7 100644 --- a/module/plugins/accounts/RyushareCom.py +++ b/module/plugins/accounts/RyushareCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class RyushareCom(XFSAccount): __name__ = "RyushareCom" __type__ = "account" - __version__ = "0.06" + __version__ = "0.07" __description__ = """Ryushare.com account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/SafesharingEu.py b/module/plugins/accounts/SafesharingEu.py index 2e58d33b3..a42c06ac6 100644 --- a/module/plugins/accounts/SafesharingEu.py +++ b/module/plugins/accounts/SafesharingEu.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class SafesharingEu(XFSAccount): __name__ = "SafesharingEu" __type__ = "account" - __version__ = "0.02" + __version__ = "0.03" __description__ = """Safesharing.eu account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/SecureUploadEu.py b/module/plugins/accounts/SecureUploadEu.py index b335c94da..3686e07e2 100644 --- a/module/plugins/accounts/SecureUploadEu.py +++ b/module/plugins/accounts/SecureUploadEu.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class SecureUploadEu(XFSAccount): __name__ = "SecureUploadEu" __type__ = "account" - __version__ = "0.02" + __version__ = "0.03" __description__ = """SecureUpload.eu account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/SendmywayCom.py b/module/plugins/accounts/SendmywayCom.py index 4fcbe0b7a..eb5c3b033 100644 --- a/module/plugins/accounts/SendmywayCom.py +++ b/module/plugins/accounts/SendmywayCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class SendmywayCom(XFSAccount): __name__ = "SendmywayCom" __type__ = "account" - __version__ = "0.02" + __version__ = "0.03" __description__ = """Sendmyway.com account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/SharebeastCom.py b/module/plugins/accounts/SharebeastCom.py index d233ffd37..68b76fda8 100644 --- a/module/plugins/accounts/SharebeastCom.py +++ b/module/plugins/accounts/SharebeastCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class SharebeastCom(XFSAccount): __name__ = "SharebeastCom" __type__ = "account" - __version__ = "0.01" + __version__ = "0.02" __description__ = """Sharebeast.com account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/ShareonlineBiz.py b/module/plugins/accounts/ShareonlineBiz.py index 5a3359496..56c1d08f2 100644 --- a/module/plugins/accounts/ShareonlineBiz.py +++ b/module/plugins/accounts/ShareonlineBiz.py @@ -8,7 +8,7 @@ from module.plugins.internal.Account import Account class ShareonlineBiz(Account): __name__ = "ShareonlineBiz" __type__ = "account" - __version__ = "0.34" + __version__ = "0.35" __description__ = """Share-online.biz account plugin""" __license__ = "GPLv3" @@ -20,10 +20,10 @@ class ShareonlineBiz(Account): get={'q' : "userdetails", 'aux' : "traffic", 'username': user, - 'password': self.getAccountData(user)['password']}) + 'password': self.get_account_data(user)['password']}) - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): premium = False validuntil = None trafficleft = -1 @@ -35,7 +35,7 @@ class ShareonlineBiz(Account): key, value = line.split("=") api[key] = value - self.logDebug(api) + self.log_debug(api) if api['a'].lower() != "not_available": req.cj.setCookie("share-online.biz", 'a', api['a']) @@ -64,5 +64,5 @@ class ShareonlineBiz(Account): html = self.api_response(user, req) err = re.search(r'\*\*(.+?)\*\*', html) if err: - self.logError(err.group(1).strip()) - self.wrongPassword() + self.log_error(err.group(1).strip()) + self.wrong_password() diff --git a/module/plugins/accounts/SimplyPremiumCom.py b/module/plugins/accounts/SimplyPremiumCom.py index 053f2c33b..e030a7dd8 100644 --- a/module/plugins/accounts/SimplyPremiumCom.py +++ b/module/plugins/accounts/SimplyPremiumCom.py @@ -7,21 +7,21 @@ from module.plugins.internal.Account import Account class SimplyPremiumCom(Account): __name__ = "SimplyPremiumCom" __type__ = "account" - __version__ = "0.06" + __version__ = "0.07" __description__ = """Simply-Premium.com account plugin""" __license__ = "GPLv3" __authors__ = [("EvolutionClip", "evolutionclip@live.de")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): premium = False validuntil = -1 trafficleft = None json_data = self.load('http://www.simply-premium.com/api/user.php?format=json', req=req) - self.logDebug("JSON data: %s" % json_data) + self.log_debug("JSON data: %s" % json_data) json_data = json_loads(json_data) @@ -44,4 +44,4 @@ class SimplyPremiumCom(Account): post={'key': user} if not data['password'] else {'login_name': user, 'login_pass': data['password']}, req=req) if 'logout' not in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/SimplydebridCom.py b/module/plugins/accounts/SimplydebridCom.py index e9fda682b..14e33e827 100644 --- a/module/plugins/accounts/SimplydebridCom.py +++ b/module/plugins/accounts/SimplydebridCom.py @@ -8,14 +8,14 @@ from module.plugins.internal.Account import Account class SimplydebridCom(Account): __name__ = "SimplydebridCom" __type__ = "account" - __version__ = "0.12" + __version__ = "0.13" __description__ = """Simply-Debrid.com account plugin""" __license__ = "GPLv3" __authors__ = [("Kagenoshin", "kagenoshin@gmx.ch")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): get_data = {'login': 2, 'u': self.loginname, 'p': self.password} res = self.load("http://simply-debrid.com/api.php", get=get_data, req=req) data = [x.strip() for x in res.split(";")] @@ -32,4 +32,4 @@ class SimplydebridCom(Account): res = self.load("https://simply-debrid.com/api.php", get=get_data, req=req) if res != "02: loggin success": - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/SmoozedCom.py b/module/plugins/accounts/SmoozedCom.py index 0b0d7ed74..853963c4a 100644 --- a/module/plugins/accounts/SmoozedCom.py +++ b/module/plugins/accounts/SmoozedCom.py @@ -26,17 +26,17 @@ from module.plugins.internal.Account import Account class SmoozedCom(Account): __name__ = "SmoozedCom" __type__ = "account" - __version__ = "0.06" + __version__ = "0.07" __description__ = """Smoozed.com account plugin""" __license__ = "GPLv3" __authors__ = [("", "")] - def loadAccountInfo(self, user, req): - status = self.getAccountStatus(user, req) + def load_account_info(self, user, req): + status = self.get_account_status(user, req) - self.logDebug(status) + self.log_debug(status) if status['state'] != 'ok': info = {'validuntil' : None, @@ -62,15 +62,15 @@ class SmoozedCom(Account): def login(self, user, data, req): #: Get user data from premiumize.me - status = self.getAccountStatus(user, req) + status = self.get_account_status(user, req) #: Check if user and password are valid if status['state'] != 'ok': - self.wrongPassword() + self.wrong_password() - def getAccountStatus(self, user, req): - password = self.getAccountData(user)['password'] + def get_account_status(self, user, req): + password = self.get_account_data(user)['password'] salt = hashlib.sha256(password).hexdigest() encrypted = PBKDF2(password, salt, iterations=1000).hexread(32) diff --git a/module/plugins/accounts/StreamcloudEu.py b/module/plugins/accounts/StreamcloudEu.py index aa1eafcbd..46b1e97de 100644 --- a/module/plugins/accounts/StreamcloudEu.py +++ b/module/plugins/accounts/StreamcloudEu.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class StreamcloudEu(XFSAccount): __name__ = "StreamcloudEu" __type__ = "account" - __version__ = "0.02" + __version__ = "0.03" __description__ = """Streamcloud.eu account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/TurbobitNet.py b/module/plugins/accounts/TurbobitNet.py index 7e3bd628f..518ed66f8 100644 --- a/module/plugins/accounts/TurbobitNet.py +++ b/module/plugins/accounts/TurbobitNet.py @@ -9,14 +9,14 @@ from module.plugins.internal.Account import Account class TurbobitNet(Account): __name__ = "TurbobitNet" __type__ = "account" - __version__ = "0.03" + __version__ = "0.04" __description__ = """TurbobitNet account plugin""" __license__ = "GPLv3" __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): html = self.load("http://turbobit.net", req=req) m = re.search(r'<u>Turbo Access</u> to ([\d.]+)', html) @@ -39,4 +39,4 @@ class TurbobitNet(Account): "user[submit]": "Login"}, req=req) if not '<div class="menu-item user-name">' in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/TusfilesNet.py b/module/plugins/accounts/TusfilesNet.py index 18e7b0b57..bada60fe0 100644 --- a/module/plugins/accounts/TusfilesNet.py +++ b/module/plugins/accounts/TusfilesNet.py @@ -9,7 +9,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class TusfilesNet(XFSAccount): __name__ = "TusfilesNet" __type__ = "account" - __version__ = "0.06" + __version__ = "0.07" __description__ = """Tusfile.net account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/UlozTo.py b/module/plugins/accounts/UlozTo.py index 3763e2a16..e83124b81 100644 --- a/module/plugins/accounts/UlozTo.py +++ b/module/plugins/accounts/UlozTo.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class UlozTo(Account): __name__ = "UlozTo" __type__ = "account" - __version__ = "0.11" + __version__ = "0.12" __description__ = """Uloz.to account plugin""" __license__ = "GPLv3" @@ -20,7 +20,7 @@ class UlozTo(Account): TRAFFIC_LEFT_PATTERN = r'<li class="menu-kredit"><a .*?title=".+?GB = ([\d.]+) MB"' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): html = self.load("http://www.ulozto.net/", req=req) m = re.search(self.TRAFFIC_LEFT_PATTERN, html) @@ -45,4 +45,4 @@ class UlozTo(Account): 'remember': "on"}) if '<div class="flash error">' in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/UploadableCh.py b/module/plugins/accounts/UploadableCh.py index 2936a2a6b..e196620af 100644 --- a/module/plugins/accounts/UploadableCh.py +++ b/module/plugins/accounts/UploadableCh.py @@ -6,14 +6,14 @@ from module.plugins.internal.Account import Account class UploadableCh(Account): __name__ = "UploadableCh" __type__ = "account" - __version__ = "0.04" + __version__ = "0.05" __description__ = """Uploadable.ch account plugin""" __license__ = "GPLv3" __authors__ = [("Sasch", "gsasch@gmail.com")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): html = self.load("http://www.uploadable.ch/login.php", req=req) premium = '<a href="/logout.php"' in html @@ -30,4 +30,4 @@ class UploadableCh(Account): 'action__login': "normalLogin"}, req=req) if "Login failed" in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/UploadcCom.py b/module/plugins/accounts/UploadcCom.py index d1e1a2ead..7ccfe481d 100644 --- a/module/plugins/accounts/UploadcCom.py +++ b/module/plugins/accounts/UploadcCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class UploadcCom(XFSAccount): __name__ = "UploadcCom" __type__ = "account" - __version__ = "0.02" + __version__ = "0.03" __description__ = """Uploadc.com account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/UploadedTo.py b/module/plugins/accounts/UploadedTo.py index 55bddabae..6a9270153 100644 --- a/module/plugins/accounts/UploadedTo.py +++ b/module/plugins/accounts/UploadedTo.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class UploadedTo(Account): __name__ = "UploadedTo" __type__ = "account" - __version__ = "0.31" + __version__ = "0.32" __description__ = """Uploaded.to account plugin""" __license__ = "GPLv3" @@ -21,7 +21,7 @@ class UploadedTo(Account): TRAFFIC_LEFT_PATTERN = r'<b class="cB">(?P<S>[\d.,]+) (?P<U>[\w^_]+)' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): validuntil = None trafficleft = None premium = None @@ -53,7 +53,7 @@ class UploadedTo(Account): trafficleft = float(size.replace(',', '.')) / 1024 trafficleft *= 1 << 40 else: - trafficleft = self.parseTraffic(size + unit) + trafficleft = self.parse_traffic(size + unit) return {'validuntil' : validuntil, 'trafficleft': trafficleft, @@ -67,4 +67,4 @@ class UploadedTo(Account): post={'id': user, 'pw': data['password'], '_': ""}, req=req) if '"err"' in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/UploadheroCom.py b/module/plugins/accounts/UploadheroCom.py index 598b7ac57..b72102300 100644 --- a/module/plugins/accounts/UploadheroCom.py +++ b/module/plugins/accounts/UploadheroCom.py @@ -10,17 +10,17 @@ from module.plugins.internal.Account import Account class UploadheroCom(Account): __name__ = "UploadheroCom" __type__ = "account" - __version__ = "0.22" + __version__ = "0.23" __description__ = """Uploadhero.co account plugin""" __license__ = "GPLv3" __authors__ = [("mcmyst", "mcmyst@hotmail.fr")] - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): premium_pattern = re.compile('Il vous reste <span class="bleu">(\d+)</span> jours premium') - data = self.getAccountData(user) + data = self.get_account_data(user) html = self.load("http://uploadhero.co/my-account", req=req) if premium_pattern.search(html): @@ -38,4 +38,4 @@ class UploadheroCom(Account): post={"pseudo_login": user, "password_login": data['password']}, req=req) if "mot de passe invalide" in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/UploadingCom.py b/module/plugins/accounts/UploadingCom.py index c701fb8fa..5052266a4 100644 --- a/module/plugins/accounts/UploadingCom.py +++ b/module/plugins/accounts/UploadingCom.py @@ -10,7 +10,7 @@ from module.plugins.internal.Plugin import set_cookies class UploadingCom(Account): __name__ = "UploadingCom" __type__ = "account" - __version__ = "0.13" + __version__ = "0.14" __description__ = """Uploading.com account plugin""" __license__ = "GPLv3" @@ -21,7 +21,7 @@ class UploadingCom(Account): VALID_UNTIL_PATTERN = r'Valid Until:(.+?)<' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): validuntil = None trafficleft = None premium = None @@ -33,13 +33,13 @@ class UploadingCom(Account): m = re.search(self.VALID_UNTIL_PATTERN, html) if m: expiredate = m.group(1).strip() - self.logDebug("Expire date: " + expiredate) + self.log_debug("Expire date: " + expiredate) try: validuntil = time.mktime(time.strptime(expiredate, "%b %d, %Y")) except Exception, e: - self.logError(e) + self.log_error(e) else: if validuntil > time.mktime(time.gmtime()): diff --git a/module/plugins/accounts/UptoboxCom.py b/module/plugins/accounts/UptoboxCom.py index c40dbd6e6..fcadce927 100644 --- a/module/plugins/accounts/UptoboxCom.py +++ b/module/plugins/accounts/UptoboxCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class UptoboxCom(XFSAccount): __name__ = "UptoboxCom" __type__ = "account" - __version__ = "0.08" + __version__ = "0.09" __description__ = """DDLStorage.com account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/VidPlayNet.py b/module/plugins/accounts/VidPlayNet.py index 5bfc24963..01e16bb78 100644 --- a/module/plugins/accounts/VidPlayNet.py +++ b/module/plugins/accounts/VidPlayNet.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class VidPlayNet(XFSAccount): __name__ = "VidPlayNet" __type__ = "account" - __version__ = "0.02" + __version__ = "0.03" __description__ = """VidPlay.net account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/WebshareCz.py b/module/plugins/accounts/WebshareCz.py index b1ecef3fd..c8711838f 100644 --- a/module/plugins/accounts/WebshareCz.py +++ b/module/plugins/accounts/WebshareCz.py @@ -12,7 +12,7 @@ from module.plugins.internal.Account import Account class WebshareCz(Account): __name__ = "WebshareCz" __type__ = "account" - __version__ = "0.09" + __version__ = "0.10" __description__ = """Webshare.cz account plugin""" __license__ = "GPLv3" @@ -24,17 +24,17 @@ class WebshareCz(Account): TRAFFIC_LEFT_PATTERN = r'<bytes>(.+)</bytes>' - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): html = self.load("https://webshare.cz/api/user_data/", - post={'wst': self.getAccountData(user).get('wst', None)}) + post={'wst': self.get_account_data(user).get('wst', None)}) - self.logDebug("Response: " + html) + self.log_debug("Response: " + html) expiredate = re.search(self.VALID_UNTIL_PATTERN, html).group(1) - self.logDebug("Expire date: " + expiredate) + self.log_debug("Expire date: " + expiredate) validuntil = time.mktime(time.strptime(expiredate, "%Y-%m-%d %H:%M:%S")) - trafficleft = self.parseTraffic(re.search(self.TRAFFIC_LEFT_PATTERN, html).group(1)) + trafficleft = self.parse_traffic(re.search(self.TRAFFIC_LEFT_PATTERN, html).group(1)) premium = validuntil > time.time() return {'validuntil': validuntil, 'trafficleft': -1, 'premium': premium} @@ -46,7 +46,7 @@ class WebshareCz(Account): 'wst' : ""}, req=req) if "<status>OK</status>" not in salt: - self.wrongPassword() + self.wrong_password() salt = re.search('<salt>(.+)</salt>', salt).group(1) password = hashlib.sha1(md5_crypt.encrypt(data['password'], salt=salt)).hexdigest() @@ -60,6 +60,6 @@ class WebshareCz(Account): 'wst' : ""}, req=req) if "<status>OK</status>" not in login: - self.wrongPassword() + self.wrong_password() data['wst'] = re.search('<token>(.+)</token>', login).group(1) diff --git a/module/plugins/accounts/WorldbytezCom.py b/module/plugins/accounts/WorldbytezCom.py index a90dbea56..6ad4f2543 100644 --- a/module/plugins/accounts/WorldbytezCom.py +++ b/module/plugins/accounts/WorldbytezCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class WorldbytezCom(XFSAccount): __name__ = "WorldbytezCom" __type__ = "account" - __version__ = "0.01" + __version__ = "0.02" __description__ = """Worldbytez.com account plugin""" __license__ = "GPLv3" diff --git a/module/plugins/accounts/XFileSharingPro.py b/module/plugins/accounts/XFileSharingPro.py index 8dc7f3a30..e47e8fafc 100644 --- a/module/plugins/accounts/XFileSharingPro.py +++ b/module/plugins/accounts/XFileSharingPro.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class XFileSharingPro(XFSAccount): __name__ = "XFileSharingPro" __type__ = "account" - __version__ = "0.06" + __version__ = "0.07" __description__ = """XFileSharingPro multi-purpose account plugin""" __license__ = "GPLv3" @@ -21,8 +21,8 @@ class XFileSharingPro(XFSAccount): return super(XFileSharingPro, self).init() - def loadAccountInfo(self, user, req): - return super(XFileSharingPro if self.HOSTER_DOMAIN else XFSAccount, self).loadAccountInfo(user, req) + def load_account_info(self, user, req): + return super(XFileSharingPro if self.HOSTER_DOMAIN else XFSAccount, self).load_account_info(user, req) def login(self, user, data, req): diff --git a/module/plugins/accounts/YibaishiwuCom.py b/module/plugins/accounts/YibaishiwuCom.py index 9d1d1d38f..fad22b4c6 100644 --- a/module/plugins/accounts/YibaishiwuCom.py +++ b/module/plugins/accounts/YibaishiwuCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.Account import Account class YibaishiwuCom(Account): __name__ = "YibaishiwuCom" __type__ = "account" - __version__ = "0.03" + __version__ = "0.04" __description__ = """115.com account plugin""" __license__ = "GPLv3" @@ -18,8 +18,8 @@ class YibaishiwuCom(Account): ACCOUNT_INFO_PATTERN = r'var USER_PERMISSION = {(.*?)}' - def loadAccountInfo(self, user, req): - #self.relogin(user) + def load_account_info(self, user, req): + # self.relogin(user) html = self.load("http://115.com/", req=req) m = re.search(self.ACCOUNT_INFO_PATTERN, html, re.S) @@ -36,4 +36,4 @@ class YibaishiwuCom(Account): "login[passwd]": data['password']}, req=req) if not 'var USER_PERMISSION = {' in html: - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/accounts/ZeveraCom.py b/module/plugins/accounts/ZeveraCom.py index 0ca7fba45..bec59be46 100644 --- a/module/plugins/accounts/ZeveraCom.py +++ b/module/plugins/accounts/ZeveraCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.Account import Account class ZeveraCom(Account): __name__ = "ZeveraCom" __type__ = "account" - __version__ = "0.27" + __version__ = "0.28" __description__ = """Zevera.com account plugin""" __license__ = "GPLv3" @@ -26,13 +26,13 @@ class ZeveraCom(Account): def init(self): if not self.HOSTER_DOMAIN: - self.logError(_("Missing HOSTER_DOMAIN")) + self.log_error(_("Missing HOSTER_DOMAIN")) if not hasattr(self, "API_URL"): self.API_URL = "http://api.%s/jDownloader.ashx" % (self.HOSTER_DOMAIN or "") - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): validuntil = None trafficleft = None premium = False @@ -52,7 +52,7 @@ class ZeveraCom(Account): self.password = data['password'] if self.api_response(req) == "No trafic": - self.wrongPassword() + self.wrong_password() def api_response(self, req, just_header=False, **kwargs): @@ -66,7 +66,7 @@ class ZeveraCom(Account): get=get_data, just_header=just_header, req=req) - self.logDebug(res) + self.log_debug(res) if ':' in res: if not just_header: diff --git a/module/plugins/captcha/CircleCaptcha.py b/module/plugins/captcha/CircleCaptcha.py index c7a3a3fe9..54bd5a975 100644 --- a/module/plugins/captcha/CircleCaptcha.py +++ b/module/plugins/captcha/CircleCaptcha.py @@ -29,7 +29,7 @@ class ImageSequence: class CircleCaptcha(OCR): __name__ = "CircleCaptcha" __type__ = "ocr" - __version__ = "1.01" + __version__ = "1.02" __description__ = """Circle captcha ocr plugin""" __license__ = "GPLv3" @@ -43,7 +43,7 @@ class CircleCaptcha(OCR): BLACKCOLOR = 5 - def cleanImage(self, im, pix): + def clean_image(self, im, pix): cleandeep = 1 imageheight = xrange(1, int(im.size[1])) @@ -114,7 +114,7 @@ class CircleCaptcha(OCR): #: return -1 - def findFirstPixelX(self, im, pix, curx, cury, color = -1, ExitWithBlack = False): + def find_first_pixel_x(self, im, pix, curx, cury, color = -1, ExitWithBlack = False): imageheight = xrange(1, int(im.size[1])) imagewidth = xrange(curx+1, int(im.size[0])) jump = True @@ -145,7 +145,7 @@ class CircleCaptcha(OCR): return newx - def findLastPixelX(self, im, pix, curx, cury, color = -1, ExitWithBlack = False): + def find_last_pixel_x(self, im, pix, curx, cury, color = -1, ExitWithBlack = False): imageheight = xrange(1, int(im.size[1])) imagewidth = xrange(curx+1, int(im.size[0])) newx = (-1,-1) @@ -173,7 +173,7 @@ class CircleCaptcha(OCR): return newx - def findLastPixelY(self, im, pix, curx, cury, DownToUp, color = -1, ExitWithBlack = False): + def find_last_pixel_y(self, im, pix, curx, cury, DownToUp, color = -1, ExitWithBlack = False): if DownToUp == False: imageheight = xrange(int(cury)+1, int(im.size[1])-1) else: @@ -204,7 +204,7 @@ class CircleCaptcha(OCR): return newy - def findCircle(self, pix, x1, y1, x2, y2, x3, y3): + def find_circle(self, pix, x1, y1, x2, y2, x3, y3): #: trasposizione coordinate #: A(0, 0) B(x2-x1, y2-y1) C(x3-x1, y3-y1) #: x**2+y**2+ax+bx+c=0 @@ -232,7 +232,7 @@ class CircleCaptcha(OCR): return cx, cy, r - def verifyCircleNew(self, im, pix, c): + def verify_circle_new(self, im, pix, c): """ This is the MAIN function to recognize the circle returns: @@ -269,21 +269,21 @@ class CircleCaptcha(OCR): return -2 cardinalpoints = 0 - if self.verifyPoint(im, pix, c[0] + c[2],c[1],True) == 1: + if self.verify_point(im, pix, c[0] + c[2],c[1],True) == 1: cardinalpoints = cardinalpoints + 1 - if self.verifyPoint(im, pix, c[0] + c[2],c[1],False) == -1: + if self.verify_point(im, pix, c[0] + c[2],c[1],False) == -1: return -2 - if self.verifyPoint(im, pix, c[0] - c[2],c[1],True) == 1: + if self.verify_point(im, pix, c[0] - c[2],c[1],True) == 1: cardinalpoints = cardinalpoints + 1 - if self.verifyPoint(im, pix, c[0] - c[2],c[1],False) == -1: + if self.verify_point(im, pix, c[0] - c[2],c[1],False) == -1: return -2 - if self.verifyPoint(im, pix, c[0],c[1] + c[2],True) == 1: + if self.verify_point(im, pix, c[0],c[1] + c[2],True) == 1: cardinalpoints = cardinalpoints + 1 - if self.verifyPoint(im, pix, c[0],c[1] + c[2],False) == -1: + if self.verify_point(im, pix, c[0],c[1] + c[2],False) == -1: return -2 - if self.verifyPoint(im, pix, c[0],c[1] - c[2],True) == 1: + if self.verify_point(im, pix, c[0],c[1] - c[2],True) == 1: cardinalpoints = cardinalpoints + 1 - if self.verifyPoint(im, pix, c[0],c[1] - c[2],False) == -1: + if self.verify_point(im, pix, c[0],c[1] - c[2],False) == -1: return -2 if cardinalpoints < 3: return -1 @@ -294,26 +294,26 @@ class CircleCaptcha(OCR): y2= int(round(c[1]+ math.sqrt(c[2]**2-(c[0]-x)**2))) howmany = howmany + 2 - if self.verifyPoint(im, pix, x, y, exactfind) == 0: + if self.verify_point(im, pix, x, y, exactfind) == 0: missing = missing + 1 missinglist.append((x, y)) else: pointsofcircle.append((x, y)) - if self.verifyPoint(im, pix, x, y, False) == -1: + if self.verify_point(im, pix, x, y, False) == -1: return -2 - if self.verifyPoint(im, pix, x, y2, exactfind) == 0: + if self.verify_point(im, pix, x, y2, exactfind) == 0: missing = missing + 1 missinglist.append((x, y2)) else: pointsofcircle.append((x, y2)) - if self.verifyPoint(im, pix, x, y2, False) == -1: + if self.verify_point(im, pix, x, y2, False) == -1: return -2 - def verifyCircle(self, im, pix, c): + def verify_circle(self, im, pix, c): """ This is the MAIN function to recognize the circle returns: @@ -350,21 +350,21 @@ class CircleCaptcha(OCR): return -2 cardinalpoints = 0 - if self.verifyPoint(im, pix, c[0] + c[2],c[1],True) == 1: + if self.verify_point(im, pix, c[0] + c[2],c[1],True) == 1: cardinalpoints = cardinalpoints + 1 - if self.verifyPoint(im, pix, c[0] + c[2],c[1],False) == -1: + if self.verify_point(im, pix, c[0] + c[2],c[1],False) == -1: return -2 - if self.verifyPoint(im, pix, c[0] - c[2],c[1],True) == 1: + if self.verify_point(im, pix, c[0] - c[2],c[1],True) == 1: cardinalpoints = cardinalpoints + 1 - if self.verifyPoint(im, pix, c[0] - c[2],c[1],False) == -1: + if self.verify_point(im, pix, c[0] - c[2],c[1],False) == -1: return -2 - if self.verifyPoint(im, pix, c[0],c[1] + c[2],True) == 1: + if self.verify_point(im, pix, c[0],c[1] + c[2],True) == 1: cardinalpoints = cardinalpoints + 1 - if self.verifyPoint(im, pix, c[0],c[1] + c[2],False) == -1: + if self.verify_point(im, pix, c[0],c[1] + c[2],False) == -1: return -2 - if self.verifyPoint(im, pix, c[0],c[1] - c[2],True) == 1: + if self.verify_point(im, pix, c[0],c[1] - c[2],True) == 1: cardinalpoints = cardinalpoints + 1 - if self.verifyPoint(im, pix, c[0],c[1] - c[2],False) == -1: + if self.verify_point(im, pix, c[0],c[1] - c[2],False) == -1: return -2 if cardinalpoints < 3: return -1 @@ -375,22 +375,22 @@ class CircleCaptcha(OCR): y2= int(round(c[1]+ math.sqrt(c[2]**2-(c[0]-x)**2))) howmany = howmany + 2 - if self.verifyPoint(im, pix, x, y, exactfind) == 0: + if self.verify_point(im, pix, x, y, exactfind) == 0: missing = missing + 1 missinglist.append((x, y)) else: pointsofcircle.append((x, y)) - if self.verifyPoint(im, pix, x, y, False) == -1: + if self.verify_point(im, pix, x, y, False) == -1: return -2 - if self.verifyPoint(im, pix, x, y2, exactfind) == 0: + if self.verify_point(im, pix, x, y2, exactfind) == 0: missing = missing + 1 missinglist.append((x, y2)) else: pointsofcircle.append((x, y2)) - if self.verifyPoint(im, pix, x, y2, False) == -1: + if self.verify_point(im, pix, x, y2, False) == -1: return -2 for y in imageheight: @@ -399,39 +399,39 @@ class CircleCaptcha(OCR): x2= int(round(c[0]+ math.sqrt(c[2]**2-(c[1]-y)**2))) howmany = howmany + 2 - if self.verifyPoint(im, pix, x, y, exactfind) == 0: + if self.verify_point(im, pix, x, y, exactfind) == 0: missing = missing + 1 missinglist.append((x, y)) else: pointsofcircle.append((x, y)) - if self.verifyPoint(im, pix, x, y, False) == -1: + if self.verify_point(im, pix, x, y, False) == -1: return -2 - if self.verifyPoint(im, pix, x2, y, exactfind) == 0: + if self.verify_point(im, pix, x2, y, exactfind) == 0: missing = missing + 1 missinglist.append((x2, y)) else: pointsofcircle.append((x2, y)) - if self.verifyPoint(im, pix, x2, y, exactfind) == -1: + if self.verify_point(im, pix, x2, y, exactfind) == -1: return -2 for p in missinglist: #: left and bottom - if (self.verifyPoint(im, pix, p[0]-1, p[1],exactfind) == 1 and \ - self.verifyPoint(im, pix, p[0], p[1]+1, exactfind) == 1): + if (self.verify_point(im, pix, p[0]-1, p[1],exactfind) == 1 and \ + self.verify_point(im, pix, p[0], p[1]+1, exactfind) == 1): missing = missing - 1 - elif (self.verifyPoint(im, pix, p[0]-1, p[1],exactfind) == 1 and \ - self.verifyPoint(im, pix, p[0], p[1]-1, exactfind) == 1): + elif (self.verify_point(im, pix, p[0]-1, p[1],exactfind) == 1 and \ + self.verify_point(im, pix, p[0], p[1]-1, exactfind) == 1): missing = missing - 1 #: right and bottom - elif (self.verifyPoint(im, pix, p[0]+1, p[1],exactfind) == 1 and \ - self.verifyPoint(im, pix, p[0], p[1]+1, exactfind) == 1): + elif (self.verify_point(im, pix, p[0]+1, p[1],exactfind) == 1 and \ + self.verify_point(im, pix, p[0], p[1]+1, exactfind) == 1): missing = missing - 1 #: right and up - elif (self.verifyPoint(im, pix, p[0]+1, p[1],exactfind) == 1 and \ - self.verifyPoint(im, pix, p[0], p[1]-1, exactfind) == 1): + elif (self.verify_point(im, pix, p[0]+1, p[1],exactfind) == 1 and \ + self.verify_point(im, pix, p[0], p[1]-1, exactfind) == 1): missing = missing - 1 if (p[0], p[1]+1) in missinglist or \ @@ -442,7 +442,7 @@ class CircleCaptcha(OCR): (p[0]-1, p[1]+1) in missinglist or \ (p[0]+1, p[1]-1) in missinglist or \ (p[0]-1, p[1]-1) in missinglist or \ - self.verifyPoint(im, pix, p[0], p[1],False) == 1: + self.verify_point(im, pix, p[0], p[1],False) == 1: missingconsecutive = missingconsecutive + 1 # else: # pix[p[0], p[1]] = 0 @@ -498,7 +498,7 @@ class CircleCaptcha(OCR): return 1 - def verifyPoint(self, im, pix, x, y, exact, color = -1): + def verify_point(self, im, pix, x, y, exact, color = -1): #: Verify point result = 0 @@ -569,7 +569,7 @@ class CircleCaptcha(OCR): pixcopy = imdebug.load() #: Clean image for powerfull search - self.cleanImage(im, pix) + self.clean_image(im, pix) im.save("cleaned" + str(iDebugSaveFile) + ".png", "png") found = set() @@ -581,7 +581,7 @@ class CircleCaptcha(OCR): curcolor = -1 for k in xrange(1, 100): findnewcircle = False - retval = self.findFirstPixelX(im, pix, x1, y1, -1, False) + retval = self.find_first_pixel_x(im, pix, x1, y1, -1, False) x1 = retval[0] curcolor = retval[1] if x1 == -2: @@ -599,7 +599,7 @@ class CircleCaptcha(OCR): x2 = x1 y2 = y1 for i in xrange(1, 100): - retval = self.findLastPixelX(im, pix, x2, y2, -1, True) + retval = self.find_last_pixel_x(im, pix, x2, y2, -1, True) x2 = retval[0] if x1 == -2: findnewcircle = True @@ -622,7 +622,7 @@ class CircleCaptcha(OCR): x3 = math.floor(x2 - ((x2 - x1) / 2)) y3 = y1 for j in xrange(1, 50): - retval = self.findLastPixelY(im, pix, x3, y3, True if invert == 1 else False, -1, True) + retval = self.find_last_pixel_y(im, pix, x3, y3, True if invert == 1 else False, -1, True) #: print (x3, y3, retval[0],invert) y3 = retval[0] if y3 == -2: @@ -642,14 +642,14 @@ class CircleCaptcha(OCR): if self._DEBUG == True: pixcopy[x3, y3] = 85 #: found 3 pixel. try circle - c = self.findCircle(pix, x1, y1, x2, y2, x3, y3) + c = self.find_circle(pix, x1, y1, x2, y2, x3, y3) if c[0] + c[2] >= im.size[0] or c[1] + c[2] >= im.size[1] or c[0] - c[2] <= 0 or c[1] - c[2] <= 0: continue if self._DEBUG == True: pixcopy[c[0],c[1]] = 0 #: (x-r, y-r, x+r, y+r) - verified = self.verifyCircle(im, pix, c) + verified = self.verify_circle(im, pix, c) if verified == -1: verified = -1 diff --git a/module/plugins/captcha/GigasizeCom.py b/module/plugins/captcha/GigasizeCom.py index 66b848e3f..83fc393e4 100644 --- a/module/plugins/captcha/GigasizeCom.py +++ b/module/plugins/captcha/GigasizeCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.OCR import OCR class GigasizeCom(OCR): __name__ = "GigasizeCom" __type__ = "ocr" - __version__ = "0.12" + __version__ = "0.13" __description__ = """Gigasize.com ocr plugin""" __license__ = "GPLv3" diff --git a/module/plugins/captcha/LinksaveIn.py b/module/plugins/captcha/LinksaveIn.py index 7aeffbe79..cf00acf15 100644 --- a/module/plugins/captcha/LinksaveIn.py +++ b/module/plugins/captcha/LinksaveIn.py @@ -14,7 +14,7 @@ from module.plugins.internal.OCR import OCR class LinksaveIn(OCR): __name__ = "LinksaveIn" __type__ = "ocr" - __version__ = "0.12" + __version__ = "0.13" __description__ = """Linksave.in ocr plugin""" __license__ = "GPLv3" diff --git a/module/plugins/captcha/NetloadIn.py b/module/plugins/captcha/NetloadIn.py index 2f1477f5d..16902128d 100644 --- a/module/plugins/captcha/NetloadIn.py +++ b/module/plugins/captcha/NetloadIn.py @@ -6,7 +6,7 @@ from module.plugins.internal.OCR import OCR class NetloadIn(OCR): __name__ = "NetloadIn" __type__ = "ocr" - __version__ = "0.12" + __version__ = "0.13" __description__ = """Netload.in ocr plugin""" __license__ = "GPLv3" diff --git a/module/plugins/captcha/ShareonlineBiz.py b/module/plugins/captcha/ShareonlineBiz.py index a95435444..a8c1a3abe 100644 --- a/module/plugins/captcha/ShareonlineBiz.py +++ b/module/plugins/captcha/ShareonlineBiz.py @@ -6,7 +6,7 @@ from module.plugins.internal.OCR import OCR class ShareonlineBiz(OCR): __name__ = "ShareonlineBiz" __type__ = "ocr" - __version__ = "0.12" + __version__ = "0.13" __description__ = """Shareonline.biz ocr plugin""" __license__ = "GPLv3" @@ -23,8 +23,8 @@ class ShareonlineBiz(OCR): self.image = self.image.resize((160, 50)) self.pixels = self.image.load() self.threshold(1.85) - #self.eval_black_white(240) - #self.derotate_by_average() + # self.eval_black_white(240) + # self.derotate_by_average() letters = self.split_captcha_letters() @@ -36,4 +36,4 @@ class ShareonlineBiz(OCR): return final - #tesseract at 60% + # tesseract at 60% diff --git a/module/plugins/container/CCF.py b/module/plugins/container/CCF.py index 314a76eb5..ca77f0c00 100644 --- a/module/plugins/container/CCF.py +++ b/module/plugins/container/CCF.py @@ -13,7 +13,7 @@ from module.utils import fs_encode, save_join as fs_join class CCF(Container): __name__ = "CCF" __type__ = "container" - __version__ = "0.24" + __version__ = "0.25" __pattern__ = r'.+\.ccf$' diff --git a/module/plugins/container/DLC.py b/module/plugins/container/DLC.py index 31037fd45..7d71165b3 100644 --- a/module/plugins/container/DLC.py +++ b/module/plugins/container/DLC.py @@ -14,7 +14,7 @@ from module.utils import decode, fs_encode class DLC(Container): __name__ = "DLC" __type__ = "container" - __version__ = "0.25" + __version__ = "0.26" __pattern__ = r'.+\.dlc$' @@ -53,20 +53,20 @@ class DLC(Container): self.data = AES.new(key, AES.MODE_CBC, iv).decrypt(dlc_data).decode('base64') self.packages = [(name or pyfile.name, links, name or pyfile.name) \ - for name, links in self.getPackages()] + for name, links in self.get_packages()] - def getPackages(self): + def get_packages(self): root = xml.dom.minidom.parseString(self.data).documentElement content = root.getElementsByTagName("content")[0] - return self.parsePackages(content) + return self.parse_packages(content) - def parsePackages(self, startNode): - return [(decode(node.getAttribute("name")).decode('base64'), self.parseLinks(node)) \ + def parse_packages(self, startNode): + return [(decode(node.getAttribute("name")).decode('base64'), self.parse_links(node)) \ for node in startNode.getElementsByTagName("package")] - def parseLinks(self, startNode): + def parse_links(self, startNode): return [node.getElementsByTagName("url")[0].firstChild.data.decode('base64') \ for node in startNode.getElementsByTagName("file")] diff --git a/module/plugins/container/RSDF.py b/module/plugins/container/RSDF.py index e3a88c8ae..06b5c065f 100644 --- a/module/plugins/container/RSDF.py +++ b/module/plugins/container/RSDF.py @@ -14,7 +14,7 @@ from module.utils import fs_encode class RSDF(Container): __name__ = "RSDF" __type__ = "container" - __version__ = "0.30" + __version__ = "0.31" __pattern__ = r'.+\.rsdf$' diff --git a/module/plugins/container/TXT.py b/module/plugins/container/TXT.py index 76cf41f60..b7355d80c 100644 --- a/module/plugins/container/TXT.py +++ b/module/plugins/container/TXT.py @@ -9,7 +9,7 @@ from module.utils import fs_encode class TXT(Container): __name__ = "TXT" __type__ = "container" - __version__ = "0.16" + __version__ = "0.17" __pattern__ = r'.+\.(txt|text)$' __config__ = [("flush" , "bool" , "Flush list after adding", False ), @@ -23,7 +23,7 @@ class TXT(Container): def decrypt(self, pyfile): try: - encoding = codecs.lookup(self.getConfig('encoding')).name + encoding = codecs.lookup(self.get_config('encoding')).name except Exception: encoding = "utf-8" @@ -57,13 +57,13 @@ class TXT(Container): if not value: packages.pop(key, None) - if self.getConfig('flush'): + if self.get_config('flush'): try: txt = open(fs_filename, 'wb') txt.close() except IOError: - self.logWarning(_("Failed to flush list")) + self.log_warning(_("Failed to flush list")) for name, links in packages.iteritems(): self.packages.append((name, links, name)) diff --git a/module/plugins/crypter/BitshareComFolder.py b/module/plugins/crypter/BitshareComFolder.py index f0dd9e570..85ada3379 100644 --- a/module/plugins/crypter/BitshareComFolder.py +++ b/module/plugins/crypter/BitshareComFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class BitshareComFolder(SimpleCrypter): __name__ = "BitshareComFolder" __type__ = "crypter" - __version__ = "0.04" + __version__ = "0.05" __pattern__ = r'http://(?:www\.)?bitshare\.com/\?d=\w+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), diff --git a/module/plugins/crypter/C1NeonCom.py b/module/plugins/crypter/C1NeonCom.py index 9b6093081..4b577de2e 100644 --- a/module/plugins/crypter/C1NeonCom.py +++ b/module/plugins/crypter/C1NeonCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class C1NeonCom(DeadCrypter): __name__ = "C1NeonCom" __type__ = "crypter" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'http://(?:www\.)?c1neon\.com/.+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/ChipDe.py b/module/plugins/crypter/ChipDe.py index 6938a2225..64a3b4f25 100644 --- a/module/plugins/crypter/ChipDe.py +++ b/module/plugins/crypter/ChipDe.py @@ -7,7 +7,7 @@ from module.plugins.internal.Crypter import Crypter class ChipDe(Crypter): __name__ = "ChipDe" __type__ = "crypter" - __version__ = "0.11" + __version__ = "0.12" __pattern__ = r'http://(?:www\.)?chip\.de/video/.+\.html' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), @@ -26,4 +26,4 @@ class ChipDe(Crypter): self.fail(_("Failed to find the URL")) else: self.urls = [f.group(1)] - self.logDebug("The file URL is %s" % self.urls[0]) + self.log_debug("The file URL is %s" % self.urls[0]) diff --git a/module/plugins/crypter/CloudzillaToFolder.py b/module/plugins/crypter/CloudzillaToFolder.py index 96d7245f1..93bf14716 100644 --- a/module/plugins/crypter/CloudzillaToFolder.py +++ b/module/plugins/crypter/CloudzillaToFolder.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class CloudzillaToFolder(SimpleHoster): __name__ = "CloudzillaToFolder" __type__ = "crypter" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'http://(?:www\.)?cloudzilla\.to/share/folder/(?P<ID>[\w^_]+)' @@ -26,10 +26,10 @@ class CloudzillaToFolder(SimpleHoster): PASSWORD_PATTERN = r'<div id="pwd_protected">' - def checkErrors(self): + def check_errors(self): m = re.search(self.PASSWORD_PATTERN, self.html) if m: - self.html = self.load(self.pyfile.url, get={'key': self.getPassword()}) + self.html = self.load(self.pyfile.url, get={'key': self.get_password()}) if re.search(self.PASSWORD_PATTERN, self.html): self.retry(reason="Wrong password") diff --git a/module/plugins/crypter/CrockoComFolder.py b/module/plugins/crypter/CrockoComFolder.py index f56cc449a..913eba821 100644 --- a/module/plugins/crypter/CrockoComFolder.py +++ b/module/plugins/crypter/CrockoComFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class CrockoComFolder(SimpleCrypter): __name__ = "CrockoComFolder" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?crocko\.com/f/.+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), diff --git a/module/plugins/crypter/CryptItCom.py b/module/plugins/crypter/CryptItCom.py index 1c9e841b7..55658c563 100644 --- a/module/plugins/crypter/CryptItCom.py +++ b/module/plugins/crypter/CryptItCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class CryptItCom(DeadCrypter): __name__ = "CryptItCom" __type__ = "crypter" - __version__ = "0.11" + __version__ = "0.12" __pattern__ = r'http://(?:www\.)?crypt-it\.com/(s|e|d|c)/\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/CzshareComFolder.py b/module/plugins/crypter/CzshareComFolder.py index 5b5e6fd27..446440ac4 100644 --- a/module/plugins/crypter/CzshareComFolder.py +++ b/module/plugins/crypter/CzshareComFolder.py @@ -7,7 +7,7 @@ from module.plugins.internal.Crypter import Crypter class CzshareComFolder(Crypter): __name__ = "CzshareComFolder" __type__ = "crypter" - __version__ = "0.21" + __version__ = "0.22" __pattern__ = r'http://(?:www\.)?(czshare|sdilej)\.(com|cz)/folders/.+' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), diff --git a/module/plugins/crypter/DailymotionComFolder.py b/module/plugins/crypter/DailymotionComFolder.py index e839cf9df..93ff6a0a4 100644 --- a/module/plugins/crypter/DailymotionComFolder.py +++ b/module/plugins/crypter/DailymotionComFolder.py @@ -11,7 +11,7 @@ from module.utils import save_join as fs_join class DailymotionComFolder(Crypter): __name__ = "DailymotionComFolder" __type__ = "crypter" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'https?://(?:www\.)?dailymotion\.com/((playlists/)?(?P<TYPE>playlist|user)/)?(?P<ID>[\w^_]+)(?(TYPE)|#)' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), @@ -28,7 +28,7 @@ class DailymotionComFolder(Crypter): return json_loads(html) - def getPlaylistInfo(self, id): + def get_playlist_info(self, id): ref = "playlist/" + id req = {"fields": "name,owner.screenname"} playlist = self.api_response(ref, req) @@ -41,7 +41,7 @@ class DailymotionComFolder(Crypter): return name, owner - def _getPlaylists(self, user_id, page=1): + def _get_playlists(self, user_id, page=1): ref = "user/%s/playlists" % user_id req = {"fields": "id", "page": page, "limit": 100} user = self.api_response(ref, req) @@ -53,15 +53,15 @@ class DailymotionComFolder(Crypter): yield playlist['id'] if user['has_more']: - for item in self._getPlaylists(user_id, page + 1): + for item in self._get_playlists(user_id, page + 1): yield item - def getPlaylists(self, user_id): - return [(id,) + self.getPlaylistInfo(id) for id in self._getPlaylists(user_id)] + def get_playlists(self, user_id): + return [(id,) + self.get_playlist_info(id) for id in self._get_playlists(user_id)] - def _getVideos(self, id, page=1): + def _get_videos(self, id, page=1): ref = "playlist/%s/videos" % id req = {"fields": "url", "page": page, "limit": 100} playlist = self.api_response(ref, req) @@ -73,12 +73,12 @@ class DailymotionComFolder(Crypter): yield video['url'] if playlist['has_more']: - for item in self._getVideos(id, page + 1): + for item in self._get_videos(id, page + 1): yield item - def getVideos(self, playlist_id): - return list(self._getVideos(playlist_id))[::-1] + def get_videos(self, playlist_id): + return list(self._get_videos(playlist_id))[::-1] def decrypt(self, pyfile): @@ -87,19 +87,19 @@ class DailymotionComFolder(Crypter): m_type = m.group('TYPE') if m_type == "playlist": - self.logDebug("Url recognized as Playlist") - p_info = self.getPlaylistInfo(m_id) + self.log_debug("Url recognized as Playlist") + p_info = self.get_playlist_info(m_id) playlists = [(m_id,) + p_info] if p_info else None else: - self.logDebug("Url recognized as Channel") - playlists = self.getPlaylists(m_id) - self.logDebug("%s playlist\s found on channel \"%s\"" % (len(playlists), m_id)) + self.log_debug("Url recognized as Channel") + playlists = self.get_playlists(m_id) + self.log_debug("%s playlist\s found on channel \"%s\"" % (len(playlists), m_id)) if not playlists: self.fail(_("No playlist available")) for p_id, p_name, p_owner in playlists: - p_videos = self.getVideos(p_id) + p_videos = self.get_videos(p_id) p_folder = fs_join(self.core.config.get("general", "download_folder"), p_owner, p_name) - self.logDebug("%s video\s found on playlist \"%s\"" % (len(p_videos), p_name)) + self.log_debug("%s video\s found on playlist \"%s\"" % (len(p_videos), p_name)) self.packages.append((p_name, p_videos, p_folder)) #: folder is NOT recognized by pyload 0.4.9! diff --git a/module/plugins/crypter/DataHuFolder.py b/module/plugins/crypter/DataHuFolder.py index 0b241bf66..9e228472d 100644 --- a/module/plugins/crypter/DataHuFolder.py +++ b/module/plugins/crypter/DataHuFolder.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class DataHuFolder(SimpleCrypter): __name__ = "DataHuFolder" __type__ = "crypter" - __version__ = "0.07" + __version__ = "0.08" __pattern__ = r'http://(?:www\.)?data\.hu/dir/\w+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -29,11 +29,11 @@ class DataHuFolder(SimpleCrypter): super(DataHuFolder, self).prepare() if u'K\xe9rlek add meg a jelsz\xf3t' in self.html: #: Password protected - password = self.getPassword() + password = self.get_password() if not password: self.fail(_("Password required")) - self.logDebug("The folder is password protected', 'Using password: " + password) + self.log_debug("The folder is password protected', 'Using password: " + password) self.html = self.load(self.pyfile.url, post={'mappa_pass': password}) diff --git a/module/plugins/crypter/DdlstorageComFolder.py b/module/plugins/crypter/DdlstorageComFolder.py index dc6ec1da5..9eb7bb997 100644 --- a/module/plugins/crypter/DdlstorageComFolder.py +++ b/module/plugins/crypter/DdlstorageComFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class DdlstorageComFolder(DeadCrypter): __name__ = "DdlstorageComFolder" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'https?://(?:www\.)?ddlstorage\.com/folder/\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/DepositfilesComFolder.py b/module/plugins/crypter/DepositfilesComFolder.py index 46ec265c3..3e283e1ee 100644 --- a/module/plugins/crypter/DepositfilesComFolder.py +++ b/module/plugins/crypter/DepositfilesComFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class DepositfilesComFolder(SimpleCrypter): __name__ = "DepositfilesComFolder" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?depositfiles\.com/folders/\w+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), diff --git a/module/plugins/crypter/Dereferer.py b/module/plugins/crypter/Dereferer.py index 5c73b2622..88d9aab85 100644 --- a/module/plugins/crypter/Dereferer.py +++ b/module/plugins/crypter/Dereferer.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter class Dereferer(SimpleCrypter): __name__ = "Dereferer" __type__ = "crypter" - __version__ = "0.16" + __version__ = "0.17" __pattern__ = r'https?://(?:www\.)?(?:\w+\.)*?(?P<DOMAIN>(?:[\d.]+|[\w\-]{3,}(?:\.[a-zA-Z]{2,}){1,2})(?:\:\d+)?)/.*?(?P<LINK>(?:ht|f)tps?://.+)' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), @@ -36,5 +36,5 @@ class Dereferer(SimpleCrypter): self.HOSTER_NAME = "".join(part.capitalize() for part in re.split(r'(\.|\d+)', self.HOSTER_DOMAIN) if part != '.') - def getLinks(self): + def get_links(self): return [re.match(self.__pattern__, self.pyfile.url).group('LINK').strip()] diff --git a/module/plugins/crypter/DevhostStFolder.py b/module/plugins/crypter/DevhostStFolder.py index c9e809cae..2c3f9d46b 100644 --- a/module/plugins/crypter/DevhostStFolder.py +++ b/module/plugins/crypter/DevhostStFolder.py @@ -12,7 +12,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class DevhostStFolder(SimpleCrypter): __name__ = "DevhostStFolder" __type__ = "crypter" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'http://(?:www\.)?d-h\.st/users/(?P<USER>\w+)(/\?fld_id=(?P<ID>\d+))?' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -29,11 +29,11 @@ class DevhostStFolder(SimpleCrypter): OFFLINE_PATTERN = r'"/cHP">test\.png<' - def checkNameSize(self, getinfo=True): + def check_name_size(self, getinfo=True): if not self.info or getinfo: - self.logDebug("File info (BEFORE): %s" % self.info) - self.info.update(self.getInfo(self.pyfile.url, self.html)) - self.logDebug("File info (AFTER): %s" % self.info) + self.log_debug("File info (BEFORE): %s" % self.info) + self.info.update(self.get_info(self.pyfile.url, self.html)) + self.log_debug("File info (AFTER): %s" % self.info) try: if self.info['pattern']['ID'] == "0": @@ -49,7 +49,7 @@ class DevhostStFolder(SimpleCrypter): self.pyfile.name = m.group(1) except Exception, e: - self.logDebug(e) + self.log_debug(e) self.pyfile.name = self.info['pattern']['USER'] try: @@ -58,7 +58,7 @@ class DevhostStFolder(SimpleCrypter): except Exception: pass - self.logDebug("File name: %s" % self.pyfile.name, + self.log_debug("File name: %s" % self.pyfile.name, "File folder: %s" % self.pyfile.name) diff --git a/module/plugins/crypter/DlProtectCom.py b/module/plugins/crypter/DlProtectCom.py index 6ced6a706..44cb881d4 100644 --- a/module/plugins/crypter/DlProtectCom.py +++ b/module/plugins/crypter/DlProtectCom.py @@ -11,7 +11,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class DlProtectCom(SimpleCrypter): __name__ = "DlProtectCom" __type__ = "crypter" - __version__ = "0.04" + __version__ = "0.05" __pattern__ = r'https?://(?:www\.)?dl-protect\.com/((en|fr)/)?\w+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -28,7 +28,7 @@ class DlProtectCom(SimpleCrypter): OFFLINE_PATTERN = r'Unfortunately, the link you are looking for is not found' - def getLinks(self): + def get_links(self): #: Direct link with redirect if not re.match(r"https?://(?:www\.)?dl-protect\.com/.+", self.req.http.lastEffectiveURL): return [self.req.http.lastEffectiveURL] @@ -48,12 +48,12 @@ class DlProtectCom(SimpleCrypter): 'submitform': "Decrypt+link"}) if "Password :" in self.html: - post_req['pwd'] = self.getPassword() + post_req['pwd'] = self.get_password() if "Security Code" in self.html: m = re.search(r'/captcha\.php\?key=(.+?)"', self.html) if m: - captcha_code = self.decryptCaptcha("http://www.dl-protect.com/captcha.php?key=" + m.group(1), imgtype="gif") + captcha_code = self.decrypt_captcha("http://www.dl-protect.com/captcha.php?key=" + m.group(1), imgtype="gif") post_req['secure'] = captcha_code self.html = self.load(self.pyfile.url, post=post_req) diff --git a/module/plugins/crypter/DuckCryptInfo.py b/module/plugins/crypter/DuckCryptInfo.py index 631ed00b7..7541ac1a6 100644 --- a/module/plugins/crypter/DuckCryptInfo.py +++ b/module/plugins/crypter/DuckCryptInfo.py @@ -10,7 +10,7 @@ from module.plugins.internal.Crypter import Crypter class DuckCryptInfo(Crypter): __name__ = "DuckCryptInfo" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?duckcrypt\.info/(folder|wait|link)/(\w+)/?(\w*)' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), @@ -31,29 +31,29 @@ class DuckCryptInfo(Crypter): if m is None: self.fail(_("Weird error in link")) if str(m.group(1)) == "link": - self.handleLink(url) + self.handle_link(url) else: - self.handleFolder(m) + self.handle_folder(m) - def handleFolder(self, m): + def handle_folder(self, m): html = self.load("http://duckcrypt.info/ajax/auth.php?hash=" + str(m.group(2))) m = re.match(self.__pattern__, html) - self.logDebug("Redirectet to " + str(m.group(0))) + self.log_debug("Redirectet to " + str(m.group(0))) html = self.load(str(m.group(0))) soup = BeautifulSoup(html) cryptlinks = soup.findAll("div", attrs={"class": "folderbox"}) - self.logDebug("Redirectet to " + str(cryptlinks)) + self.log_debug("Redirectet to " + str(cryptlinks)) if not cryptlinks: self.error(_("No link found")) for clink in cryptlinks: if clink.find("a"): - self.handleLink(clink.find("a")['href']) + self.handle_link(clink.find("a")['href']) - def handleLink(self, url): + def handle_link(self, url): html = self.load(url) soup = BeautifulSoup(html) self.urls = [soup.find("iframe")['src']] if not self.urls: - self.logInfo(_("No link found")) + self.log_info(_("No link found")) diff --git a/module/plugins/crypter/DuploadOrgFolder.py b/module/plugins/crypter/DuploadOrgFolder.py index d505806b7..234e3cb3c 100644 --- a/module/plugins/crypter/DuploadOrgFolder.py +++ b/module/plugins/crypter/DuploadOrgFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class DuploadOrgFolder(DeadCrypter): __name__ = "DuploadOrgFolder" __type__ = "crypter" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'http://(?:www\.)?dupload\.org/folder/\d+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/EasybytezComFolder.py b/module/plugins/crypter/EasybytezComFolder.py index fdd3d4ff4..62322e330 100644 --- a/module/plugins/crypter/EasybytezComFolder.py +++ b/module/plugins/crypter/EasybytezComFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSCrypter import XFSCrypter, create_getInfo class EasybytezComFolder(XFSCrypter): __name__ = "EasybytezComFolder" __type__ = "crypter" - __version__ = "0.10" + __version__ = "0.11" __pattern__ = r'http://(?:www\.)?easybytez\.com/users/\d+/\d+' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), diff --git a/module/plugins/crypter/EmbeduploadCom.py b/module/plugins/crypter/EmbeduploadCom.py index 3a830331f..6f98e6915 100644 --- a/module/plugins/crypter/EmbeduploadCom.py +++ b/module/plugins/crypter/EmbeduploadCom.py @@ -8,7 +8,7 @@ from module.network.HTTPRequest import BadHeader class EmbeduploadCom(Crypter): __name__ = "EmbeduploadCom" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?embedupload\.com/\?d=.+' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True ), @@ -30,25 +30,25 @@ class EmbeduploadCom(Crypter): m = re.findall(self.LINK_PATTERN, self.html) if m: - prefered_set = set(self.getConfig('preferedHoster').split('|')) + prefered_set = set(self.get_config('preferedHoster').split('|')) prefered_set = map(lambda s: s.lower().split('.')[0], prefered_set) - self.logDebug("PF: %s" % prefered_set) + self.log_debug("PF: %s" % prefered_set) tmp_links.extend(x[1] for x in m if x[0] in prefered_set) - self.urls = self.getLocation(tmp_links) + self.urls = self.get_location(tmp_links) if not self.urls: - ignored_set = set(self.getConfig('ignoredHoster').split('|')) + ignored_set = set(self.get_config('ignoredHoster').split('|')) ignored_set = map(lambda s: s.lower().split('.')[0], ignored_set) - self.logDebug("IG: %s" % ignored_set) + self.log_debug("IG: %s" % ignored_set) tmp_links.extend(x[1] for x in m if x[0] not in ignored_set) - self.urls = self.getLocation(tmp_links) + self.urls = self.get_location(tmp_links) - def getLocation(self, tmp_links): + def get_location(self, tmp_links): new_links = [] for link in tmp_links: try: diff --git a/module/plugins/crypter/FilebeerInfoFolder.py b/module/plugins/crypter/FilebeerInfoFolder.py index 5b401c555..8529f371d 100644 --- a/module/plugins/crypter/FilebeerInfoFolder.py +++ b/module/plugins/crypter/FilebeerInfoFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class FilebeerInfoFolder(DeadCrypter): __name__ = "FilebeerInfoFolder" __type__ = "crypter" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'http://(?:www\.)?filebeer\.info/\d*~f\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/FilecloudIoFolder.py b/module/plugins/crypter/FilecloudIoFolder.py index f900f4910..6eb26abb3 100644 --- a/module/plugins/crypter/FilecloudIoFolder.py +++ b/module/plugins/crypter/FilecloudIoFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class FilecloudIoFolder(SimpleCrypter): __name__ = "FilecloudIoFolder" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'https?://(?:www\.)?(filecloud\.io|ifile\.it)/_\w+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), diff --git a/module/plugins/crypter/FilecryptCc.py b/module/plugins/crypter/FilecryptCc.py index 769877802..341b1e13f 100644 --- a/module/plugins/crypter/FilecryptCc.py +++ b/module/plugins/crypter/FilecryptCc.py @@ -16,7 +16,7 @@ from module.plugins.internal.ReCaptcha import ReCaptcha class FilecryptCc(Crypter): __name__ = "FilecryptCc" __type__ = "crypter" - __version__ = "0.16" + __version__ = "0.17" __pattern__ = r'https?://(?:www\.)?filecrypt\.cc/Container/\w+' @@ -47,36 +47,36 @@ class FilecryptCc(Crypter): if "content notfound" in self.html: #@NOTE: "content notfound" is NOT a typo self.offline() - self.handlePasswordProtection() - self.handleCaptcha() - self.handleMirrorPages() + self.handle_password_protection() + self.handle_captcha() + self.handle_mirror_pages() - for handle in (self.handleCNL, self.handleWeblinks, self.handleDlcContainer): + for handle in (self.handle_CNL, self.handle_weblinks, self.handle_dlc_container): handle() if self.links: self.packages = [(pyfile.package().name, self.links, pyfile.package().name)] return - def handleMirrorPages(self): - if "mirror=" not in self.siteWithLinks: + def handle_mirror_pages(self): + if "mirror=" not in self.site_with_links: return - mirror = re.findall(self.MIRROR_PAGE_PATTERN, self.siteWithLinks) + mirror = re.findall(self.MIRROR_PAGE_PATTERN, self.site_with_links) - self.logInfo(_("Found %d mirrors") % len(mirror)) + self.log_info(_("Found %d mirrors") % len(mirror)) for i in mirror[1:]: - self.siteWithLinks = self.siteWithLinks + self.load(i).decode("utf-8", "replace") + self.site_with_links = self.site_with_links + self.load(i).decode("utf-8", "replace") - def handlePasswordProtection(self): + def handle_password_protection(self): if '<input type="text" name="password"' not in self.html: return - self.logInfo(_("Folder is password protected")) + self.log_info(_("Folder is password protected")) - password = self.getPassword() + password = self.get_password() if not password: self.fail(_("Please enter the password in package section and try again")) @@ -84,26 +84,26 @@ class FilecryptCc(Crypter): self.html = self.load(self.pyfile.url, post={"password": password}) - def handleCaptcha(self): + def handle_captcha(self): m = re.search(self.CAPTCHA_PATTERN, self.html) m2 = re.search(self.CIRCLE_CAPTCHA_PATTERN, self.html) if m: #: normal captcha - self.logDebug("Captcha-URL: %s" % m.group(1)) + self.log_debug("Captcha-URL: %s" % m.group(1)) - captcha_code = self.decryptCaptcha(urlparse.urljoin(self.base_url, m.group(1)), + captcha_code = self.decrypt_captcha(urlparse.urljoin(self.base_url, m.group(1)), forceUser=True, imgtype="gif") - self.siteWithLinks = self.load(self.pyfile.url, + self.site_with_links = self.load(self.pyfile.url, post={'recaptcha_response_field': captcha_code}) elif m2: #: circle captcha - self.logDebug("Captcha-URL: %s" % m2.group(1)) + self.log_debug("Captcha-URL: %s" % m2.group(1)) - captcha_code = self.decryptCaptcha('%s%s?c=abc' %(self.base_url, m2.group(1)), + captcha_code = self.decrypt_captcha('%s%s?c=abc' %(self.base_url, m2.group(1)), result_type='positional') - self.siteWithLinks = self.load(self.pyfile.url, + self.site_with_links = self.load(self.pyfile.url, post={'button.x': captcha_code[0], 'button.y': captcha_code[1]}) else: @@ -112,19 +112,19 @@ class FilecryptCc(Crypter): if captcha_key: response, challenge = recaptcha.challenge(captcha_key) - self.siteWithLinks = self.load(self.pyfile.url, + self.site_with_links = self.load(self.pyfile.url, post={'g-recaptcha-response': response}) else: - self.logInfo(_("No captcha found")) - self.siteWithLinks = self.html + self.log_info(_("No captcha found")) + self.site_with_links = self.html - if "recaptcha_image" in self.siteWithLinks or "data-sitekey" in self.siteWithLinks: - self.invalidCaptcha() + if "recaptcha_image" in self.site_with_links or "data-sitekey" in self.site_with_links: + self.invalid_captcha() self.retry() - def handleDlcContainer(self): - dlc = re.findall(self.DLC_LINK_PATTERN, self.siteWithLinks) + def handle_dlc_container(self): + dlc = re.findall(self.DLC_LINK_PATTERN, self.site_with_links) if not dlc: return @@ -133,9 +133,9 @@ class FilecryptCc(Crypter): self.links.append("%s/DLC/%s.dlc" % (self.base_url, i)) - def handleWeblinks(self): + def handle_weblinks(self): try: - weblinks = re.findall(self.WEBLINK_PATTERN, self.siteWithLinks) + weblinks = re.findall(self.WEBLINK_PATTERN, self.site_with_links) for link in weblinks: res = self.load("%s/Link/%s.html" % (self.base_url, link)) @@ -144,22 +144,22 @@ class FilecryptCc(Crypter): self.links.append(res2['location']) except Exception, e: - self.logDebug("Error decrypting weblinks: %s" % e) + self.log_debug("Error decrypting weblinks: %s" % e) - def handleCNL(self): + def handle_CNL(self): try: - vjk = re.findall('<input type="hidden" name="jk" value="function f\(\){ return \'(.*)\';}">', self.siteWithLinks) - vcrypted = re.findall('<input type="hidden" name="crypted" value="(.*)">', self.siteWithLinks) + vjk = re.findall('<input type="hidden" name="jk" value="function f\(\){ return \'(.*)\';}">', self.site_with_links) + vcrypted = re.findall('<input type="hidden" name="crypted" value="(.*)">', self.site_with_links) for i in xrange(len(vcrypted)): - self.links.extend(self._getLinks(vcrypted[i], vjk[i])) + self.links.extend(self._get_links(vcrypted[i], vjk[i])) except Exception, e: - self.logDebug("Error decrypting CNL: %s" % e) + self.log_debug("Error decrypting CNL: %s" % e) - def _getLinks(self, crypted, jk): + def _get_links(self, crypted, jk): #: Get key key = binascii.unhexlify(str(jk)) diff --git a/module/plugins/crypter/FilefactoryComFolder.py b/module/plugins/crypter/FilefactoryComFolder.py index c0cd028cc..14d8a6827 100644 --- a/module/plugins/crypter/FilefactoryComFolder.py +++ b/module/plugins/crypter/FilefactoryComFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class FilefactoryComFolder(SimpleCrypter): __name__ = "FilefactoryComFolder" __type__ = "crypter" - __version__ = "0.32" + __version__ = "0.33" __pattern__ = r'https?://(?:www\.)?filefactory\.com/(?:f|folder)/\w+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -25,7 +25,7 @@ class FilefactoryComFolder(SimpleCrypter): PAGES_PATTERN = r'data-paginator-totalPages="(\d+)' - def loadPage(self, page_n): + def load_page(self, page_n): return self.load(self.pyfile.url, get={'page': page_n, 'show': 100}) diff --git a/module/plugins/crypter/FilerNetFolder.py b/module/plugins/crypter/FilerNetFolder.py index e2b44e868..c95a2b490 100644 --- a/module/plugins/crypter/FilerNetFolder.py +++ b/module/plugins/crypter/FilerNetFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class FilerNetFolder(SimpleCrypter): __name__ = "FilerNetFolder" __type__ = "crypter" - __version__ = "0.42" + __version__ = "0.43" __pattern__ = r'https?://filer\.net/folder/\w{16}' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), diff --git a/module/plugins/crypter/FileserveComFolder.py b/module/plugins/crypter/FileserveComFolder.py index edd7562df..2c97cddde 100644 --- a/module/plugins/crypter/FileserveComFolder.py +++ b/module/plugins/crypter/FileserveComFolder.py @@ -8,7 +8,7 @@ from module.plugins.internal.Crypter import Crypter class FileserveComFolder(Crypter): __name__ = "FileserveComFolder" __type__ = "crypter" - __version__ = "0.12" + __version__ = "0.13" __pattern__ = r'http://(?:www\.)?fileserve\.com/list/\w+' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), diff --git a/module/plugins/crypter/FilesonicComFolder.py b/module/plugins/crypter/FilesonicComFolder.py index 6cd4d8b8c..59db89156 100644 --- a/module/plugins/crypter/FilesonicComFolder.py +++ b/module/plugins/crypter/FilesonicComFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class FilesonicComFolder(DeadCrypter): __name__ = "FilesonicComFolder" __type__ = "crypter" - __version__ = "0.12" + __version__ = "0.13" __pattern__ = r'http://(?:www\.)?filesonic\.com/folder/\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/FilestubeCom.py b/module/plugins/crypter/FilestubeCom.py index 9e6b5c114..60d15168d 100644 --- a/module/plugins/crypter/FilestubeCom.py +++ b/module/plugins/crypter/FilestubeCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class FilestubeCom(SimpleCrypter): __name__ = "FilestubeCom" __type__ = "crypter" - __version__ = "0.06" + __version__ = "0.07" __pattern__ = r'http://(?:www\.)?filestube\.(?:com|to)/\w+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), diff --git a/module/plugins/crypter/FiletramCom.py b/module/plugins/crypter/FiletramCom.py index b012d35bc..baf037551 100644 --- a/module/plugins/crypter/FiletramCom.py +++ b/module/plugins/crypter/FiletramCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class FiletramCom(SimpleCrypter): __name__ = "FiletramCom" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?filetram\.com/[^/]+/.+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), diff --git a/module/plugins/crypter/FiredriveComFolder.py b/module/plugins/crypter/FiredriveComFolder.py index 792f3198b..52fa92636 100644 --- a/module/plugins/crypter/FiredriveComFolder.py +++ b/module/plugins/crypter/FiredriveComFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class FiredriveComFolder(DeadCrypter): __name__ = "FiredriveComFolder" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'https?://(?:www\.)?(firedrive|putlocker)\.com/share/.+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/FourChanOrg.py b/module/plugins/crypter/FourChanOrg.py index f3195fe02..ac0cdc042 100644 --- a/module/plugins/crypter/FourChanOrg.py +++ b/module/plugins/crypter/FourChanOrg.py @@ -11,7 +11,7 @@ from module.plugins.internal.Crypter import Crypter class FourChanOrg(Crypter): __name__ = "FourChanOrg" __type__ = "crypter" - __version__ = "0.32" + __version__ = "0.33" __pattern__ = r'http://(?:www\.)?boards\.4chan\.org/\w+/res/(\d+)' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), diff --git a/module/plugins/crypter/FreakhareComFolder.py b/module/plugins/crypter/FreakhareComFolder.py index 59fa9cf32..ad2ca2040 100644 --- a/module/plugins/crypter/FreakhareComFolder.py +++ b/module/plugins/crypter/FreakhareComFolder.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class FreakhareComFolder(SimpleCrypter): __name__ = "FreakhareComFolder" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?freakshare\.com/folder/.+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -25,7 +25,7 @@ class FreakhareComFolder(SimpleCrypter): PAGES_PATTERN = r'Pages: +(\d+)' - def loadPage(self, page_n): + def load_page(self, page_n): if not hasattr(self, 'f_id') and not hasattr(self, 'f_md5'): m = re.search(r'http://freakshare.com/\?x=folder&f_id=(\d+)&f_md5=(\w+)', self.html) if m: diff --git a/module/plugins/crypter/FreetexthostCom.py b/module/plugins/crypter/FreetexthostCom.py index cf6fbb8a4..a1b063912 100644 --- a/module/plugins/crypter/FreetexthostCom.py +++ b/module/plugins/crypter/FreetexthostCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class FreetexthostCom(SimpleCrypter): __name__ = "FreetexthostCom" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?freetexthost\.com/\w+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -20,7 +20,7 @@ class FreetexthostCom(SimpleCrypter): __authors__ = [("stickell", "l.stickell@yahoo.it")] - def getLinks(self): + def get_links(self): m = re.search(r'<div id="contentsinner">\s*(.+)<div class="viewcount">', self.html, re.S) if m is None: self.error(_("Unable to extract links")) diff --git a/module/plugins/crypter/FshareVnFolder.py b/module/plugins/crypter/FshareVnFolder.py index bbee53337..e03f8a65e 100644 --- a/module/plugins/crypter/FshareVnFolder.py +++ b/module/plugins/crypter/FshareVnFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class FshareVnFolder(SimpleCrypter): __name__ = "FshareVnFolder" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?fshare\.vn/folder/.+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), diff --git a/module/plugins/crypter/FurLy.py b/module/plugins/crypter/FurLy.py index b8e9332e2..223cc7db3 100644 --- a/module/plugins/crypter/FurLy.py +++ b/module/plugins/crypter/FurLy.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class FurLy(SimpleCrypter): __name__ = "FurLy" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?fur\.ly/(\d/)?\w+' diff --git a/module/plugins/crypter/Go4UpCom.py b/module/plugins/crypter/Go4UpCom.py index 22f31f6f6..dc47d8cfa 100644 --- a/module/plugins/crypter/Go4UpCom.py +++ b/module/plugins/crypter/Go4UpCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class Go4UpCom(SimpleCrypter): __name__ = "Go4UpCom" __type__ = "crypter" - __version__ = "0.12" + __version__ = "0.13" __pattern__ = r'http://go4up\.com/(dl/\w{12}|rd/\w{12}/\d+)' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -29,7 +29,7 @@ class Go4UpCom(SimpleCrypter): OFFLINE_PATTERN = r'>\s*(404 Page Not Found|File not Found|Mirror does not exist)' - def getLinks(self): + def get_links(self): links = [] m = re.search(r'(/download/gethosts/.+?)"', self.html) diff --git a/module/plugins/crypter/GooGl.py b/module/plugins/crypter/GooGl.py index b36e22884..9bc03532e 100644 --- a/module/plugins/crypter/GooGl.py +++ b/module/plugins/crypter/GooGl.py @@ -7,7 +7,7 @@ from module.common.json_layer import json_loads class GooGl(SimpleCrypter): __name__ = "GooGl" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'https?://(?:www\.)?goo\.gl/([a-zA-Z]+/)?\w+' @@ -22,9 +22,9 @@ class GooGl(SimpleCrypter): OFFLINE_PATTERN = r'has been disabled|does not exist' - def getLinks(self): + def get_links(self): rep = self.load(self.API_URL, get={'shortUrl': self.pyfile.url}) - self.logDebug("JSON data: " + rep) + self.log_debug("JSON data: " + rep) rep = json_loads(rep) return [rep['longUrl']] if "longUrl" in rep else None diff --git a/module/plugins/crypter/GoogledriveComFolder.py b/module/plugins/crypter/GoogledriveComFolder.py index 70898b313..c93eb6a5e 100644 --- a/module/plugins/crypter/GoogledriveComFolder.py +++ b/module/plugins/crypter/GoogledriveComFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class GoogledriveComFolder(SimpleCrypter): __name__ = "GoogledriveCom" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'https?://(?:www\.)?drive\.google\.com/folderview\?.*id=\w+' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), #: Overrides core.config['general']['folder_per_package'] diff --git a/module/plugins/crypter/HoerbuchIn.py b/module/plugins/crypter/HoerbuchIn.py index 09749eba6..bf313dd99 100644 --- a/module/plugins/crypter/HoerbuchIn.py +++ b/module/plugins/crypter/HoerbuchIn.py @@ -10,7 +10,7 @@ from module.plugins.internal.Crypter import Crypter class HoerbuchIn(Crypter): __name__ = "HoerbuchIn" __type__ = "crypter" - __version__ = "0.61" + __version__ = "0.62" __pattern__ = r'http://(?:www\.)?hoerbuch\.in/(wp/horbucher/\d+/.+/|tp/out\.php\?.+|protection/folder_\d+\.html)' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), @@ -36,14 +36,14 @@ class HoerbuchIn(Crypter): abookname = soup.find("a", attrs={"rel": "bookmark"}).text for a in soup.findAll("a", attrs={"href": self.protection}): package = "%s (%s)" % (abookname, a.previousSibling.previousSibling.text[:-1]) - links = self.decryptFolder(a['href']) + links = self.decrypt_folder(a['href']) self.packages.append((package, links, package)) else: - self.urls = self.decryptFolder(pyfile.url) + self.urls = self.decrypt_folder(pyfile.url) - def decryptFolder(self, url): + def decrypt_folder(self, url): m = self.protection.search(url) if m is None: self.fail(_("Bad URL")) diff --git a/module/plugins/crypter/HotfileComFolder.py b/module/plugins/crypter/HotfileComFolder.py index f1dd56228..1a504c1c7 100644 --- a/module/plugins/crypter/HotfileComFolder.py +++ b/module/plugins/crypter/HotfileComFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class HotfileComFolder(DeadCrypter): __name__ = "HotfileComFolder" __type__ = "crypter" - __version__ = "0.30" + __version__ = "0.31" __pattern__ = r'https?://(?:www\.)?hotfile\.com/list/\w+/\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/ILoadTo.py b/module/plugins/crypter/ILoadTo.py index 4c7387739..c1eb8ddb1 100644 --- a/module/plugins/crypter/ILoadTo.py +++ b/module/plugins/crypter/ILoadTo.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class ILoadTo(DeadCrypter): __name__ = "ILoadTo" __type__ = "crypter" - __version__ = "0.11" + __version__ = "0.12" __pattern__ = r'http://(?:www\.)?iload\.to/go/\d+-[\w.-]+/' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/ImgurComAlbum.py b/module/plugins/crypter/ImgurComAlbum.py index 9ef7797af..9226e025e 100644 --- a/module/plugins/crypter/ImgurComAlbum.py +++ b/module/plugins/crypter/ImgurComAlbum.py @@ -7,7 +7,7 @@ from module.utils import uniqify class ImgurComAlbum(SimpleCrypter): __name__ = "ImgurComAlbum" __type__ = "crypter" - __version__ = "0.51" + __version__ = "0.52" __pattern__ = r'https?://(?:www\.|m\.)?imgur\.com/(a|gallery|)/?\w{5,7}' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -23,7 +23,7 @@ class ImgurComAlbum(SimpleCrypter): LINK_PATTERN = r'i\.imgur\.com/\w{7}s?\.(?:jpeg|jpg|png|gif|apng)' - def getLinks(self): + def get_links(self): f = lambda url: "http://" + re.sub(r'(\w{7})s\.', r'\1.', url) return uniqify(map(f, re.findall(self.LINK_PATTERN, self.html))) diff --git a/module/plugins/crypter/LetitbitNetFolder.py b/module/plugins/crypter/LetitbitNetFolder.py index e98b1ebc3..6aa9e42a9 100644 --- a/module/plugins/crypter/LetitbitNetFolder.py +++ b/module/plugins/crypter/LetitbitNetFolder.py @@ -7,7 +7,7 @@ from module.plugins.internal.Crypter import Crypter class LetitbitNetFolder(Crypter): __name__ = "LetitbitNetFolder" __type__ = "crypter" - __version__ = "0.11" + __version__ = "0.12" __pattern__ = r'http://(?:www\.)?letitbit\.net/folder/\w+' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), diff --git a/module/plugins/crypter/LinkCryptWs.py b/module/plugins/crypter/LinkCryptWs.py index e889ca154..44ca502a9 100644 --- a/module/plugins/crypter/LinkCryptWs.py +++ b/module/plugins/crypter/LinkCryptWs.py @@ -14,7 +14,7 @@ from module.utils import html_unescape class LinkCryptWs(Crypter): __name__ = "LinkCryptWs" __type__ = "crypter" - __version__ = "0.09" + __version__ = "0.10" __pattern__ = r'http://(?:www\.)?linkcrypt\.ws/(dir|container)/(?P<ID>\w+)' @@ -52,34 +52,34 @@ class LinkCryptWs(Crypter): self.prepare() - if not self.isOnline(): + if not self.is_online(): self.offline() - if self.isKeyCaptchaProtected(): + if self.is_key_captcha_protected(): self.retry(8, 15, _("Can't handle Key-Captcha")) - if self.isCaptchaProtected(): + if self.is_captcha_protected(): self.captcha = True - self.unlockCaptchaProtection() - self.handleCaptchaErrors() + self.unlock_captcha_protection() + self.handle_captcha_errors() #: Check for protection - if self.isPasswordProtected(): - self.unlockPasswordProtection() - self.handleErrors() + if self.is_password_protected(): + self.unlock_password_protection() + self.handle_errors() #: get unrar password self.getunrarpw() #: Get package name and folder - package_name, folder_name = self.getPackageInfo() + package_name, folder_name = self.get_package_info() - #get the container definitions from script section + # get the container definitions from script section self.get_container_html() #: Extract package links for type in self.sources: - links = self.handleLinkSource(type) + links = self.handle_link_source(type) if links: self.links.extend(links) @@ -89,59 +89,59 @@ class LinkCryptWs(Crypter): self.packages = [(package_name, self.links, folder_name)] - def isOnline(self): + def is_online(self): if "<title>Linkcrypt.ws // Error 404</title>" in self.html: - self.logDebug("Folder doesn't exist anymore") + self.log_debug("Folder doesn't exist anymore") return False else: return True - def isPasswordProtected(self): + def is_password_protected(self): if "Authorizing" in self.html: - self.logDebug("Links are password protected") + self.log_debug("Links are password protected") return True else: return False - def isCaptchaProtected(self): + def is_captcha_protected(self): if 'id="captcha">' in self.html: - self.logDebug("Links are captcha protected") + self.log_debug("Links are captcha protected") return True else: return False - def isKeyCaptchaProtected(self): + def is_key_captcha_protected(self): if re.search(r'>If the folder does not open after klick on <', self.html, re.I): return True else: return False - def unlockPasswordProtection(self): - password = self.getPassword() + def unlock_password_protection(self): + password = self.get_password() if password: - self.logDebug("Submitting password [%s] for protected links" % password) + self.log_debug("Submitting password [%s] for protected links" % password) self.html = self.load(self.pyfile.url, post={"password": password, 'x': "0", 'y': "0"}) else: self.fail(_("Folder is password protected")) - def unlockCaptchaProtection(self): + def unlock_captcha_protection(self): captcha_url = re.search(r'<form.*?id\s*?=\s*?"captcha"[^>]*?>.*?<\s*?input.*?src="(.+?)"', self.html, re.I | re.S).group(1) - captcha_code = self.decryptCaptcha(captcha_url, forceUser=True, imgtype="gif", result_type='positional') + captcha_code = self.decrypt_captcha(captcha_url, forceUser=True, imgtype="gif", result_type='positional') self.html = self.load(self.pyfile.url, post={"x": captcha_code[0], "y": captcha_code[1]}) - def getPackageInfo(self): + def get_package_info(self): name = self.pyfile.package().name folder = self.pyfile.package().folder - self.logDebug("Defaulting to pyfile name [%s] and folder [%s] for package" % (name, folder)) + self.log_debug("Defaulting to pyfile name [%s] and folder [%s] for package" % (name, folder)) return name, folder @@ -154,46 +154,46 @@ class LinkCryptWs(Crypter): unrarpw = sitein[indexi:indexe] if not (unrarpw == "Password" or "Dateipasswort") : - self.logDebug("File password set to: [%s]"% unrarpw) + self.log_debug("File password set to: [%s]"% unrarpw) self.pyfile.package().password = unrarpw - def handleErrors(self): - if self.isPasswordProtected(): + def handle_errors(self): + if self.is_password_protected(): self.fail(_("Incorrect password")) - def handleCaptchaErrors(self): + def handle_captcha_errors(self): if self.captcha: if "Your choice was wrong!" in self.html: - self.invalidCaptcha() + self.invalid_captcha() self.retry() else: - self.correctCaptcha() + self.correct_captcha() - def handleLinkSource(self, type): + def handle_link_source(self, type): if type == 'cnl': - return self.handleCNL2() + return self.handle_CNL2() elif type == 'web': - return self.handleWebLinks() + return self.handle_web_links() elif type in ('rsdf', 'ccf', 'dlc'): - return self.handleContainer(type) + return self.handle_container(type) else: self.fail(_("Unknown source type: %s") % type) #@TODO: Replace with self.error in 0.4.10 - def handleWebLinks(self): - self.logDebug("Search for Web links ") + def handle_web_links(self): + self.log_debug("Search for Web links ") package_links = [] pattern = r'<form action="http://linkcrypt.ws/out.html"[^>]*?>.*?<input[^>]*?value="(.+?)"[^>]*?name="file"' ids = re.findall(pattern, self.html, re.I | re.S) - self.logDebug("Decrypting %d Web links" % len(ids)) + self.log_debug("Decrypting %d Web links" % len(ids)) for idx, weblink_id in enumerate(ids): try: @@ -208,7 +208,7 @@ class LinkCryptWs(Crypter): package_links.append(link2) except Exception, detail: - self.logDebug("Error decrypting Web link %s, %s" % (weblink_id, detail)) + self.log_debug("Error decrypting Web link %s, %s" % (weblink_id, detail)) return package_links @@ -228,11 +228,11 @@ class LinkCryptWs(Crypter): return self.js.eval(line.replace('{}))',"{}).replace('document.open();document.write','').replace(';document.close();',''))")) - def handleContainer(self, type): + def handle_container(self, type): package_links = [] type = type.lower() - self.logDebug('Search for %s Container links' % type.upper()) + self.log_debug('Search for %s Container links' % type.upper()) if not type.isalnum(): #: check to prevent broken re-pattern (cnl2, rsdf, ccf, dlc, web are all alpha-numeric) self.fail(_("Unknown container type: %s") % type) #@TODO: Replace with self.error in 0.4.10 @@ -245,18 +245,18 @@ class LinkCryptWs(Crypter): if not clink: continue - self.logDebug("clink avaible") + self.log_debug("clink avaible") - package_name, folder_name = self.getPackageInfo() - self.logDebug("Added package with name %s.%s and container link %s" %( package_name, type, clink.group(1))) + package_name, folder_name = self.get_package_info() + self.log_debug("Added package with name %s.%s and container link %s" %( package_name, type, clink.group(1))) self.core.api.uploadContainer( "%s.%s" %(package_name, type), self.load(clink.group(1))) return "Found it" return package_links - def handleCNL2(self): - self.logDebug("Search for CNL links") + def handle_CNL2(self): + self.log_debug("Search for CNL links") package_links = [] cnl_line = None @@ -267,21 +267,21 @@ class LinkCryptWs(Crypter): break if cnl_line: - self.logDebug("cnl_line gefunden") + self.log_debug("cnl_line gefunden") try: cnl_section = self.handle_javascript(cnl_line) - (vcrypted, vjk) = self._getCipherParams(cnl_section) + (vcrypted, vjk) = self._get_cipher_params(cnl_section) for (crypted, jk) in zip(vcrypted, vjk): - package_links.extend(self._getLinks(crypted, jk)) + package_links.extend(self._get_links(crypted, jk)) except Exception: - self.logError(_("Unable to decrypt CNL links (JS Error) try to get over links")) - return self.handleWebLinks() + self.log_error(_("Unable to decrypt CNL links (JS Error) try to get over links")) + return self.handle_web_links() return package_links - def _getCipherParams(self, cnl_section): + def _get_cipher_params(self, cnl_section): #: Get jk jk_re = r'<INPUT.*?NAME="%s".*?VALUE="(.*?)"' % LinkCryptWs.JK_KEY vjk = re.findall(jk_re, cnl_section) @@ -291,16 +291,16 @@ class LinkCryptWs(Crypter): vcrypted = re.findall(crypted_re, cnl_section) #: Log and return - self.logDebug("Detected %d crypted blocks" % len(vcrypted)) + self.log_debug("Detected %d crypted blocks" % len(vcrypted)) return vcrypted, vjk - def _getLinks(self, crypted, jk): + def _get_links(self, crypted, jk): #: Get key jreturn = self.js.eval("%s f()" % jk) key = binascii.unhexlify(jreturn) - self.logDebug("JsEngine returns value [%s]" % jreturn) + self.log_debug("JsEngine returns value [%s]" % jreturn) #: Decrypt Key = key @@ -313,6 +313,6 @@ class LinkCryptWs(Crypter): links = filter(bool, text.split('\n')) #: Log and return - self.logDebug("Package has %d links" % len(links)) + self.log_debug("Package has %d links" % len(links)) return links diff --git a/module/plugins/crypter/LinkSaveIn.py b/module/plugins/crypter/LinkSaveIn.py index dce74b689..29cceeedf 100644 --- a/module/plugins/crypter/LinkSaveIn.py +++ b/module/plugins/crypter/LinkSaveIn.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class LinkSaveIn(SimpleCrypter): __name__ = "LinkSaveIn" __type__ = "crypter" - __version__ = "2.05" + __version__ = "2.06" __pattern__ = r'https?://(?:www\.)?linksave\.in/\w+' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), diff --git a/module/plugins/crypter/LinkdecrypterCom.py b/module/plugins/crypter/LinkdecrypterCom.py index c8de44157..b56a1dd57 100644 --- a/module/plugins/crypter/LinkdecrypterCom.py +++ b/module/plugins/crypter/LinkdecrypterCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.Crypter import Crypter class LinkdecrypterCom(Crypter): __name__ = "LinkdecrypterCom" __type__ = "crypter" - __version__ = "0.30" + __version__ = "0.31" __pattern__ = r'^unmatchable$' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), @@ -27,7 +27,7 @@ class LinkdecrypterCom(Crypter): def setup(self): - self.password = self.getPassword() + self.password = self.get_password() self.req.setOption("timeout", 300) @@ -49,9 +49,9 @@ class LinkdecrypterCom(Crypter): m = re.search(r"<p><i><b>([^<]+)</b></i></p>", self.html) msg = m.group(1) if m else "" - self.logInfo(_("Captcha protected link"), result_type, msg) + self.log_info(_("Captcha protected link"), result_type, msg) - captcha = self.decryptCaptcha(captcha_url, result_type=result_type) + captcha = self.decrypt_captcha(captcha_url, result_type=result_type) if result_type == "positional": captcha = "%d|%d" % captcha self.html = self.load('http://linkdecrypter.com/', post={"captcha": captcha}) @@ -59,7 +59,7 @@ class LinkdecrypterCom(Crypter): elif self.PASSWORD_PATTERN in self.html: if self.password: - self.logInfo(_("Password protected link")) + self.log_info(_("Password protected link")) self.html = self.load('http://linkdecrypter.com/', post={'password': self.password}) else: self.fail(_("Missing password")) diff --git a/module/plugins/crypter/LixIn.py b/module/plugins/crypter/LixIn.py index 2b4c2071c..a86396a25 100644 --- a/module/plugins/crypter/LixIn.py +++ b/module/plugins/crypter/LixIn.py @@ -9,7 +9,7 @@ from module.plugins.internal.Crypter import Crypter class LixIn(Crypter): __name__ = "LixIn" __type__ = "crypter" - __version__ = "0.23" + __version__ = "0.24" __pattern__ = r'http://(?:www\.)?lix\.in/(?P<ID>.+)' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), @@ -33,7 +33,7 @@ class LixIn(Crypter): self.error(_("Unable to identify file ID")) id = m.group('ID') - self.logDebug("File id is %s" % id) + self.log_debug("File id is %s" % id) self.html = self.load(url) @@ -46,12 +46,12 @@ class LixIn(Crypter): for _i in xrange(5): m = re.search(self.CAPTCHA_PATTERN, self.html) if m: - self.logDebug("Trying captcha") - captcharesult = self.decryptCaptcha(urlparse.urljoin("http://lix.in/", m.group(1))) + self.log_debug("Trying captcha") + captcharesult = self.decrypt_captcha(urlparse.urljoin("http://lix.in/", m.group(1))) self.html = self.load(url, post={"capt": captcharesult, "submit": "submit", "tiny": id}) else: - self.logDebug("No captcha/captcha solved") + self.log_debug("No captcha/captcha solved") else: self.html = self.load(url, post={"submit": "submit", "tiny": id}) @@ -60,4 +60,4 @@ class LixIn(Crypter): self.error(_("Unable to find destination url")) else: self.urls = [m.group(1)] - self.logDebug("Found link %s, adding to package" % self.urls[0]) + self.log_debug("Found link %s, adding to package" % self.urls[0]) diff --git a/module/plugins/crypter/LofCc.py b/module/plugins/crypter/LofCc.py index 62e05f299..475c6c0a8 100644 --- a/module/plugins/crypter/LofCc.py +++ b/module/plugins/crypter/LofCc.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class LofCc(DeadCrypter): __name__ = "LofCc" __type__ = "crypter" - __version__ = "0.21" + __version__ = "0.22" __pattern__ = r'http://(?:www\.)?lof\.cc/(.+)' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/MBLinkInfo.py b/module/plugins/crypter/MBLinkInfo.py index 7ff400f7e..06856b064 100644 --- a/module/plugins/crypter/MBLinkInfo.py +++ b/module/plugins/crypter/MBLinkInfo.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class MBLinkInfo(DeadCrypter): __name__ = "MBLinkInfo" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?mblink\.info/?\?id=(\d+)' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/MediafireComFolder.py b/module/plugins/crypter/MediafireComFolder.py index dd23df7ca..9ec8f9efe 100644 --- a/module/plugins/crypter/MediafireComFolder.py +++ b/module/plugins/crypter/MediafireComFolder.py @@ -9,7 +9,7 @@ from module.common.json_layer import json_loads class MediafireComFolder(Crypter): __name__ = "MediafireComFolder" __type__ = "crypter" - __version__ = "0.15" + __version__ = "0.16" __pattern__ = r'http://(?:www\.)?mediafire\.com/(folder/|\?sharekey=|\?\w{13}($|[/#]))' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), @@ -26,7 +26,7 @@ class MediafireComFolder(Crypter): def decrypt(self, pyfile): url, result = checkHTMLHeader(pyfile.url) - self.logDebug("Location (%d): %s" % (result, url)) + self.log_debug("Location (%d): %s" % (result, url)) if result == 0: #: load and parse html @@ -40,13 +40,13 @@ class MediafireComFolder(Crypter): m = re.search(self.FOLDER_KEY_PATTERN, html) if m: folder_key = m.group(1) - self.logDebug("FOLDER KEY: %s" % folder_key) + self.log_debug("FOLDER KEY: %s" % folder_key) json_resp = json_loads(self.load("http://www.mediafire.com/api/folder/get_info.php", get={'folder_key' : folder_key, 'response_format': "json", 'version' : 1})) - #self.logInfo(json_resp) + # self.log_info(json_resp) if json_resp['response']['result'] == "Success": for link in json_resp['response']['folder_info']['files']: self.urls.append("http://www.mediafire.com/file/%s" % link['quickkey']) diff --git a/module/plugins/crypter/MegaCoNzFolder.py b/module/plugins/crypter/MegaCoNzFolder.py index a462b7bca..36fbf3cb3 100644 --- a/module/plugins/crypter/MegaCoNzFolder.py +++ b/module/plugins/crypter/MegaCoNzFolder.py @@ -8,7 +8,7 @@ from module.plugins.internal.Crypter import Crypter class MegaCoNzFolder(Crypter): __name__ = "MegaCoNzFolder" __type__ = "crypter" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'(https?://(?:www\.)?mega(\.co)?\.nz/|mega:|chrome:.+?)#F!(?P<ID>[\w^_]+)!(?P<KEY>[\w,\\-]+)' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), diff --git a/module/plugins/crypter/MegaRapidCzFolder.py b/module/plugins/crypter/MegaRapidCzFolder.py index fadd6dbed..ecb14d7bb 100644 --- a/module/plugins/crypter/MegaRapidCzFolder.py +++ b/module/plugins/crypter/MegaRapidCzFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class MegaRapidCzFolder(SimpleCrypter): __name__ = "MegaRapidCzFolder" __type__ = "crypter" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'http://(?:www\.)?(share|mega)rapid\.cz/slozka/\d+/\w+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), diff --git a/module/plugins/crypter/MegauploadComFolder.py b/module/plugins/crypter/MegauploadComFolder.py index 60e4af57e..5ee4b1f16 100644 --- a/module/plugins/crypter/MegauploadComFolder.py +++ b/module/plugins/crypter/MegauploadComFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class MegauploadComFolder(DeadCrypter): __name__ = "MegauploadComFolder" __type__ = "crypter" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'http://(?:www\.)?megaupload\.com/(\?f|xml/folderfiles\.php\?.*&?folderid)=\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/Movie2KTo.py b/module/plugins/crypter/Movie2KTo.py index 919d77c86..83146bfbf 100644 --- a/module/plugins/crypter/Movie2KTo.py +++ b/module/plugins/crypter/Movie2KTo.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class Movie2KTo(DeadCrypter): __name__ = "Movie2KTo" __type__ = "crypter" - __version__ = "0.51" + __version__ = "0.52" __pattern__ = r'http://(?:www\.)?movie2k\.to/(.+)\.html' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/MultiUpOrg.py b/module/plugins/crypter/MultiUpOrg.py index b676c3029..0dfa09978 100644 --- a/module/plugins/crypter/MultiUpOrg.py +++ b/module/plugins/crypter/MultiUpOrg.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class MultiUpOrg(SimpleCrypter): __name__ = "MultiUpOrg" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?multiup\.org/(en|fr)/(?P<TYPE>project|download|miror)/\w+(/\w+)?' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -24,7 +24,7 @@ class MultiUpOrg(SimpleCrypter): NAME_PATTERN = r'<title>.*(?:Project|Projet|ownload|élécharger) (?P<N>.+?) (\(|- )' - def getLinks(self): + def get_links(self): m_type = re.match(self.__pattern__, self.pyfile.url).group('TYPE') if m_type == "project": diff --git a/module/plugins/crypter/MultiloadCz.py b/module/plugins/crypter/MultiloadCz.py index 6b1171a54..9ce145984 100644 --- a/module/plugins/crypter/MultiloadCz.py +++ b/module/plugins/crypter/MultiloadCz.py @@ -7,7 +7,7 @@ from module.plugins.internal.Crypter import Crypter class MultiloadCz(Crypter): __name__ = "MultiloadCz" __type__ = "crypter" - __version__ = "0.41" + __version__ = "0.42" __pattern__ = r'http://(?:[^/]*\.)?multiload\.cz/(stahnout|slozka)/.+' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), @@ -34,9 +34,9 @@ class MultiloadCz(Crypter): else: m = re.findall(self.LINK_PATTERN, self.html) if m: - prefered_set = set(self.getConfig('usedHoster').split('|')) + prefered_set = set(self.get_config('usedHoster').split('|')) self.urls.extend(x[1] for x in m if x[0] in prefered_set) if not self.urls: - ignored_set = set(self.getConfig('ignoredHoster').split('|')) + ignored_set = set(self.get_config('ignoredHoster').split('|')) self.urls.extend(x[1] for x in m if x[0] not in ignored_set) diff --git a/module/plugins/crypter/MultiuploadCom.py b/module/plugins/crypter/MultiuploadCom.py index d0679e118..167baab0f 100644 --- a/module/plugins/crypter/MultiuploadCom.py +++ b/module/plugins/crypter/MultiuploadCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class MultiuploadCom(DeadCrypter): __name__ = "MultiuploadCom" __type__ = "crypter" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'http://(?:www\.)?multiupload\.(com|nl)/\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/NCryptIn.py b/module/plugins/crypter/NCryptIn.py index ec43d7fa9..8abf06602 100644 --- a/module/plugins/crypter/NCryptIn.py +++ b/module/plugins/crypter/NCryptIn.py @@ -12,7 +12,7 @@ from module.plugins.internal.ReCaptcha import ReCaptcha class NCryptIn(Crypter): __name__ = "NCryptIn" __type__ = "crypter" - __version__ = "1.36" + __version__ = "1.37" __pattern__ = r'http://(?:www\.)?ncrypt\.in/(?P<TYPE>folder|link|frame)-([^/\?]+)' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), @@ -32,7 +32,7 @@ class NCryptIn(Crypter): def setup(self): self.package = None - self.cleanedHtml = None + self.cleaned_html = None self.links_source_order = ["cnl2", "rsdf", "ccf", "dlc", "web"] self.protection_type = None @@ -45,30 +45,30 @@ class NCryptIn(Crypter): folder_name = self.package.folder #: Deal with single links - if self.isSingleLink(): - package_links.extend(self.handleSingleLink()) + if self.is_single_link(): + package_links.extend(self.handle_single_link()) #: Deal with folders else: #: Request folder home - self.html = self.requestFolderHome() - self.cleanedHtml = self.removeHtmlCrap(self.html) - if not self.isOnline(): + self.html = self.request_folder_home() + self.cleaned_html = self.remove_html_crap(self.html) + if not self.is_online(): self.offline() #: Check for folder protection - if self.isProtected(): - self.html = self.unlockProtection() - self.cleanedHtml = self.removeHtmlCrap(self.html) - self.handleErrors() + if self.is_protected(): + self.html = self.unlock_protection() + self.cleaned_html = self.remove_html_crap(self.html) + self.handle_errors() #: Prepare package name and folder - (package_name, folder_name) = self.getPackageInfo() + (package_name, folder_name) = self.get_package_info() #: Extract package links for link_source_type in self.links_source_order: - package_links.extend(self.handleLinkSource(link_source_type)) + package_links.extend(self.handle_link_source(link_source_type)) if package_links: #: use only first source which provides links break package_links = set(package_links) @@ -78,16 +78,16 @@ class NCryptIn(Crypter): self.packages = [(package_name, package_links, folder_name)] - def isSingleLink(self): + def is_single_link(self): link_type = re.match(self.__pattern__, self.pyfile.url).group('TYPE') return link_type in ("link", "frame") - def requestFolderHome(self): + def request_folder_home(self): return self.load(self.pyfile.url) - def removeHtmlCrap(self, content): + def remove_html_crap(self, content): patterns = (r'(type="hidden".*?(name=".*?")?.*?value=".*?")', r'display:none;">(.*?)</(div|span)>', r'<div\s+class="jdownloader"(.*?)</div>', @@ -99,61 +99,61 @@ class NCryptIn(Crypter): return content - def isOnline(self): - if "Your folder does not exist" in self.cleanedHtml: - self.logDebug("File not m") + def is_online(self): + if "Your folder does not exist" in self.cleaned_html: + self.log_debug("File not m") return False return True - def isProtected(self): - form = re.search(r'<form.*?name.*?protected.*?>(.*?)</form>', self.cleanedHtml, re.S) + def is_protected(self): + form = re.search(r'<form.*?name.*?protected.*?>(.*?)</form>', self.cleaned_html, re.S) if form: content = form.group(1) for keyword in ("password", "captcha"): if keyword in content: self.protection_type = keyword - self.logDebug("Links are %s protected" % self.protection_type) + self.log_debug("Links are %s protected" % self.protection_type) return True return False - def getPackageInfo(self): + def get_package_info(self): m = re.search(self.NAME_PATTERN, self.html) if m: name = folder = m.group('N').strip() - self.logDebug("Found name [%s] and folder [%s] in package info" % (name, folder)) + self.log_debug("Found name [%s] and folder [%s] in package info" % (name, folder)) else: name = self.package.name folder = self.package.folder - self.logDebug("Package info not m, defaulting to pyfile name [%s] and folder [%s]" % (name, folder)) + self.log_debug("Package info not m, defaulting to pyfile name [%s] and folder [%s]" % (name, folder)) return name, folder - def unlockProtection(self): + def unlock_protection(self): postData = {} - form = re.search(r'<form name="protected"(.*?)</form>', self.cleanedHtml, re.S).group(1) + form = re.search(r'<form name="protected"(.*?)</form>', self.cleaned_html, re.S).group(1) #: Submit package password if "password" in form: - password = self.getPassword() - self.logDebug("Submitting password [%s] for protected links" % password) + password = self.get_password() + self.log_debug("Submitting password [%s] for protected links" % password) postData['password'] = password #: Resolve anicaptcha if "anicaptcha" in form: - self.logDebug("Captcha protected") + self.log_debug("Captcha protected") captchaUri = re.search(r'src="(/temp/anicaptcha/.+?)"', form).group(1) - captcha = self.decryptCaptcha("http://ncrypt.in" + captchaUri) - self.logDebug("Captcha resolved [%s]" % captcha) + captcha = self.decrypt_captcha("http://ncrypt.in" + captchaUri) + self.log_debug("Captcha resolved [%s]" % captcha) postData['captcha'] = captcha #: Resolve recaptcha if "recaptcha" in form: - self.logDebug("ReCaptcha protected") + self.log_debug("ReCaptcha protected") captcha_key = re.search(r'\?k=(.*?)"', form).group(1) - self.logDebug("Resolving ReCaptcha with key [%s]" % captcha_key) + self.log_debug("Resolving ReCaptcha with key [%s]" % captcha_key) recaptcha = ReCaptcha(self) response, challenge = recaptcha.challenge(captcha_key) postData['recaptcha_challenge_field'] = challenge @@ -161,10 +161,10 @@ class NCryptIn(Crypter): #: Resolve circlecaptcha if "circlecaptcha" in form: - self.logDebug("CircleCaptcha protected") + self.log_debug("CircleCaptcha protected") captcha_img_url = "http://ncrypt.in/classes/captcha/circlecaptcha.php" - coords = self.decryptCaptcha(captcha_img_url, forceUser=True, imgtype="png", result_type='positional') - self.logDebug("Captcha resolved, coords [%s]" % str(coords)) + coords = self.decrypt_captcha(captcha_img_url, forceUser=True, imgtype="png", result_type='positional') + self.log_debug("Captcha resolved, coords [%s]" % str(coords)) postData['circle.x'] = coords[0] postData['circle.y'] = coords[1] @@ -173,74 +173,74 @@ class NCryptIn(Crypter): return self.load(self.pyfile.url, post=postData) - def handleErrors(self): + def handle_errors(self): if self.protection_type == "password": - if "This password is invalid!" in self.cleanedHtml: - self.logDebug("Incorrect password, please set right password on 'Edit package' form and retry") + if "This password is invalid!" in self.cleaned_html: + self.log_debug("Incorrect password, please set right password on 'Edit package' form and retry") self.fail(_("Incorrect password, please set right password on 'Edit package' form and retry")) if self.protection_type == "captcha": - if "The securitycheck was wrong!" in self.cleanedHtml: - self.invalidCaptcha() + if "The securitycheck was wrong!" in self.cleaned_html: + self.invalid_captcha() self.retry() else: - self.correctCaptcha() + self.correct_captcha() - def handleLinkSource(self, link_source_type): + def handle_link_source(self, link_source_type): #: Check for JS engine require_js_engine = link_source_type in ("cnl2", "rsdf", "ccf", "dlc") if require_js_engine and not self.js: - self.logDebug("No JS engine available, skip %s links" % link_source_type) + self.log_debug("No JS engine available, skip %s links" % link_source_type) return [] #: Select suitable handler if link_source_type == 'single': - return self.handleSingleLink() + return self.handle_single_link() if link_source_type == 'cnl2': - return self.handleCNL2() + return self.handle_CNL2() elif link_source_type in ("rsdf", "ccf", "dlc"): - return self.handleContainer(link_source_type) + return self.handle_container(link_source_type) elif link_source_type == "web": - return self.handleWebLinks() + return self.handle_web_links() else: self.error(_('Unknown source type "%s"') % link_source_type) - def handleSingleLink(self): - self.logDebug("Handling Single link") + def handle_single_link(self): + self.log_debug("Handling Single link") package_links = [] #: Decrypt single link - decrypted_link = self.decryptLink(self.pyfile.url) + decrypted_link = self.decrypt_link(self.pyfile.url) if decrypted_link: package_links.append(decrypted_link) return package_links - def handleCNL2(self): - self.logDebug("Handling CNL2 links") + def handle_CNL2(self): + self.log_debug("Handling CNL2 links") package_links = [] - if 'cnl2_output' in self.cleanedHtml: + if 'cnl2_output' in self.cleaned_html: try: - (vcrypted, vjk) = self._getCipherParams() + (vcrypted, vjk) = self._get_cipher_params() for (crypted, jk) in zip(vcrypted, vjk): - package_links.extend(self._getLinks(crypted, jk)) + package_links.extend(self._get_links(crypted, jk)) except Exception: self.fail(_("Unable to decrypt CNL2 links")) return package_links - def handleContainers(self): - self.logDebug("Handling Container links") + def handle_containers(self): + self.log_debug("Handling Container links") package_links = [] pattern = r'/container/(rsdf|dlc|ccf)/(\w+)' containersLinks = re.findall(pattern, self.html) - self.logDebug("Decrypting %d Container links" % len(containersLinks)) + self.log_debug("Decrypting %d Container links" % len(containersLinks)) for containerLink in containersLinks: link = "http://ncrypt.in/container/%s/%s.%s" % (containerLink[0], containerLink[1], containerLink[0]) package_links.append(link) @@ -248,15 +248,15 @@ class NCryptIn(Crypter): return package_links - def handleWebLinks(self): - self.logDebug("Handling Web links") + def handle_web_links(self): + self.log_debug("Handling Web links") pattern = r'(http://ncrypt\.in/link-.*?=)' links = re.findall(pattern, self.html) package_links = [] - self.logDebug("Decrypting %d Web links" % len(links)) + self.log_debug("Decrypting %d Web links" % len(links)) for i, link in enumerate(links): - self.logDebug("Decrypting Web link %d, %s" % (i + 1, link)) + self.log_debug("Decrypting Web link %d, %s" % (i + 1, link)) decrypted_link = self.decrypt(link) if decrypted_link: package_links.append(decrypted_link) @@ -264,16 +264,16 @@ class NCryptIn(Crypter): return package_links - def decryptLink(self, link): + def decrypt_link(self, link): try: url = link.replace("link-", "frame-") link = self.load(url, just_header=True)['location'] return link except Exception, detail: - self.logDebug("Error decrypting link %s, %s" % (link, detail)) + self.log_debug("Error decrypting link %s, %s" % (link, detail)) - def _getCipherParams(self): + def _get_cipher_params(self): pattern = r'<input.*?name="%s".*?value="(.*?)"' #: Get jk @@ -285,14 +285,14 @@ class NCryptIn(Crypter): vcrypted = re.findall(crypted_re, self.html) #: Log and return - self.logDebug("Detected %d crypted blocks" % len(vcrypted)) + self.log_debug("Detected %d crypted blocks" % len(vcrypted)) return vcrypted, vjk - def _getLinks(self, crypted, jk): + def _get_links(self, crypted, jk): #: Get key jreturn = self.js.eval("%s f()" % jk) - self.logDebug("JsEngine returns value [%s]" % jreturn) + self.log_debug("JsEngine returns value [%s]" % jreturn) key = binascii.unhexlify(jreturn) #: Decrypt @@ -306,5 +306,5 @@ class NCryptIn(Crypter): links = filter(bool, text.split('\n')) #: Log and return - self.logDebug("Block has %d links" % len(links)) + self.log_debug("Block has %d links" % len(links)) return links diff --git a/module/plugins/crypter/NetfolderIn.py b/module/plugins/crypter/NetfolderIn.py index 32d59af03..465c0a302 100644 --- a/module/plugins/crypter/NetfolderIn.py +++ b/module/plugins/crypter/NetfolderIn.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class NetfolderIn(DeadCrypter): __name__ = "NetfolderIn" __type__ = "crypter" - __version__ = "0.73" + __version__ = "0.74" __pattern__ = r'http://(?:www\.)?netfolder\.(in|me)/(folder\.php\?folder_id=)?(?P<ID>\w+)(?(1)|/\w+)' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/NitroflareComFolder.py b/module/plugins/crypter/NitroflareComFolder.py index 1db2378e3..0e1f92e98 100644 --- a/module/plugins/crypter/NitroflareComFolder.py +++ b/module/plugins/crypter/NitroflareComFolder.py @@ -7,7 +7,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class NitroflareComFolder(SimpleCrypter): __name__ = "NitroflareComFolder" __type__ = "crypter" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'https?://(?:www\.)?nitroflare\.com/folder/(?P<USER>\d+)/(?P<ID>[\w=]+)' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), @@ -18,7 +18,7 @@ class NitroflareComFolder(SimpleCrypter): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - def getLinks(self): + def get_links(self): res = json_loads(self.load("http://nitroflare.com/ajax/folder.php", post={'userId' : self.info['pattern']['USER'], 'folder' : self.info['pattern']['ID'], diff --git a/module/plugins/crypter/NosvideoCom.py b/module/plugins/crypter/NosvideoCom.py index 9808837c4..b08b1cbdc 100644 --- a/module/plugins/crypter/NosvideoCom.py +++ b/module/plugins/crypter/NosvideoCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class NosvideoCom(SimpleCrypter): __name__ = "NosvideoCom" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?nosvideo\.com/\?v=\w+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), diff --git a/module/plugins/crypter/OneKhDe.py b/module/plugins/crypter/OneKhDe.py index a45d7dbff..ef95ab68c 100644 --- a/module/plugins/crypter/OneKhDe.py +++ b/module/plugins/crypter/OneKhDe.py @@ -9,7 +9,7 @@ from module.utils import html_unescape class OneKhDe(Crypter): __name__ = "OneKhDe" __type__ = "crypter" - __version__ = "0.12" + __version__ = "0.13" __pattern__ = r'http://(?:www\.)?1kh\.de/f/' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), diff --git a/module/plugins/crypter/OronComFolder.py b/module/plugins/crypter/OronComFolder.py index 048af7d82..da93e6f97 100644 --- a/module/plugins/crypter/OronComFolder.py +++ b/module/plugins/crypter/OronComFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class OronComFolder(DeadCrypter): __name__ = "OronComFolder" __type__ = "crypter" - __version__ = "0.11" + __version__ = "0.12" __pattern__ = r'http://(?:www\.)?oron\.com/folder/\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/PastebinCom.py b/module/plugins/crypter/PastebinCom.py index af039a6ab..6186bc894 100644 --- a/module/plugins/crypter/PastebinCom.py +++ b/module/plugins/crypter/PastebinCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class PastebinCom(SimpleCrypter): __name__ = "PastebinCom" __type__ = "crypter" - __version__ = "0.04" + __version__ = "0.05" __pattern__ = r'https://(?:www\.)?pastebin\.com/(.+i=)?(?P<ID>\w{8})' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), diff --git a/module/plugins/crypter/PastedCo.py b/module/plugins/crypter/PastedCo.py index 8236345cc..50bcadaba 100644 --- a/module/plugins/crypter/PastedCo.py +++ b/module/plugins/crypter/PastedCo.py @@ -8,7 +8,7 @@ import re class PastedCo(Crypter): __name__ = "PastedCo" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://pasted\.co/\w+' diff --git a/module/plugins/crypter/QuickshareCzFolder.py b/module/plugins/crypter/QuickshareCzFolder.py index e1fdc22bc..01b932e06 100644 --- a/module/plugins/crypter/QuickshareCzFolder.py +++ b/module/plugins/crypter/QuickshareCzFolder.py @@ -7,7 +7,7 @@ from module.plugins.internal.Crypter import Crypter class QuickshareCzFolder(Crypter): __name__ = "QuickshareCzFolder" __type__ = "crypter" - __version__ = "0.11" + __version__ = "0.12" __pattern__ = r'http://(?:www\.)?quickshare\.cz/slozka-\d+' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), diff --git a/module/plugins/crypter/RSLayerCom.py b/module/plugins/crypter/RSLayerCom.py index 6f078e9e4..1b1c5b139 100644 --- a/module/plugins/crypter/RSLayerCom.py +++ b/module/plugins/crypter/RSLayerCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class RSLayerCom(DeadCrypter): __name__ = "RSLayerCom" __type__ = "crypter" - __version__ = "0.21" + __version__ = "0.22" __pattern__ = r'http://(?:www\.)?rs-layer\.com/directory-' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/RelinkUs.py b/module/plugins/crypter/RelinkUs.py index cda70816d..4f3077771 100644 --- a/module/plugins/crypter/RelinkUs.py +++ b/module/plugins/crypter/RelinkUs.py @@ -14,7 +14,7 @@ from module.utils import save_join as fs_join class RelinkUs(Crypter): __name__ = "RelinkUs" __type__ = "crypter" - __version__ = "3.13" + __version__ = "3.14" __pattern__ = r'http://(?:www\.)?relink\.us/(f/|((view|go)\.php\?id=))(?P<ID>.+)' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), @@ -63,32 +63,32 @@ class RelinkUs(Crypter): def decrypt(self, pyfile): #: Init - self.initPackage(pyfile) + self.init_package(pyfile) #: Request package - self.requestPackage() + self.request_package() #: Check for online - if not self.isOnline(): + if not self.is_online(): self.offline() #: Check for protection - if self.isPasswordProtected(): - self.unlockPasswordProtection() - self.handleErrors() + if self.is_password_protected(): + self.unlock_password_protection() + self.handle_errors() - if self.isCaptchaProtected(): + if self.is_captcha_protected(): self.captcha = True - self.unlockCaptchaProtection() - self.handleErrors() + self.unlock_captcha_protection() + self.handle_errors() #: Get package name and folder - (package_name, folder_name) = self.getPackageInfo() + (package_name, folder_name) = self.get_package_info() #: Extract package links package_links = [] for sources in self.PREFERRED_LINK_SOURCES: - package_links.extend(self.handleLinkSource(sources)) + package_links.extend(self.handle_link_source(sources)) if package_links: #: use only first source which provides links break package_links = set(package_links) @@ -98,39 +98,39 @@ class RelinkUs(Crypter): self.packages = [(package_name, package_links, folder_name)] - def initPackage(self, pyfile): + def init_package(self, pyfile): self.fileid = re.match(self.__pattern__, pyfile.url).group('ID') self.package = pyfile.package() - def requestPackage(self): + def request_package(self): self.html = self.load(self.pyfile.url) - def isOnline(self): + def is_online(self): if self.OFFLINE_TOKEN in self.html: - self.logDebug("File not found") + self.log_debug("File not found") return False return True - def isPasswordProtected(self): + def is_password_protected(self): if self.PASSWORD_TOKEN in self.html: - self.logDebug("Links are password protected") + self.log_debug("Links are password protected") return True - def isCaptchaProtected(self): + def is_captcha_protected(self): if self.CAPTCHA_TOKEN in self.html: - self.logDebug("Links are captcha protected") + self.log_debug("Links are captcha protected") return True return False - def unlockPasswordProtection(self): - password = self.getPassword() + def unlock_password_protection(self): + password = self.get_password() - self.logDebug("Submitting password [%s] for protected links" % password) + self.log_debug("Submitting password [%s] for protected links" % password) if password: passwd_url = self.PASSWORD_SUBMIT_URL + "?id=%s" % self.fileid @@ -138,17 +138,17 @@ class RelinkUs(Crypter): self.html = self.load(passwd_url, post=passwd_data) - def unlockCaptchaProtection(self): - self.logDebug("Request user positional captcha resolving") + def unlock_captcha_protection(self): + self.log_debug("Request user positional captcha resolving") captcha_img_url = self.CAPTCHA_IMG_URL + "?id=%s" % self.fileid - coords = self.decryptCaptcha(captcha_img_url, forceUser=True, imgtype="png", result_type='positional') - self.logDebug("Captcha resolved, coords [%s]" % str(coords)) + coords = self.decrypt_captcha(captcha_img_url, forceUser=True, imgtype="png", result_type='positional') + self.log_debug("Captcha resolved, coords [%s]" % str(coords)) captcha_post_url = self.CAPTCHA_SUBMIT_URL + "?id=%s" % self.fileid captcha_post_data = {'button.x': coords[0], 'button.y': coords[1], 'captcha': 'submit'} self.html = self.load(captcha_post_url, post=captcha_post_data) - def getPackageInfo(self): + def get_package_info(self): name = folder = None #: Try to get info from web @@ -157,65 +157,65 @@ class RelinkUs(Crypter): title = m.group(1).strip() if not self.FILE_NOTITLE in title: name = folder = title - self.logDebug("Found name [%s] and folder [%s] in package info" % (name, folder)) + self.log_debug("Found name [%s] and folder [%s] in package info" % (name, folder)) #: Fallback to defaults if not name or not folder: name = self.package.name folder = self.package.folder - self.logDebug("Package info not found, defaulting to pyfile name [%s] and folder [%s]" % (name, folder)) + self.log_debug("Package info not found, defaulting to pyfile name [%s] and folder [%s]" % (name, folder)) #: Return package info return name, folder - def handleErrors(self): + def handle_errors(self): if self.PASSWORD_ERROR_ROKEN in self.html: msg = "Incorrect password, please set right password on 'Edit package' form and retry" - self.logDebug(msg) + self.log_debug(msg) self.fail(_(msg)) if self.captcha: if self.CAPTCHA_ERROR_ROKEN in self.html: - self.invalidCaptcha() + self.invalid_captcha() self.retry() else: - self.correctCaptcha() + self.correct_captcha() - def handleLinkSource(self, source): + def handle_link_source(self, source): if source == 'cnl2': - return self.handleCNL2Links() + return self.handle_CNL2Links() elif source == 'dlc': - return self.handleDLCLinks() + return self.handle_d_l_c_links() elif source == 'web': - return self.handleWEBLinks() + return self.handle_w_e_b_links() else: self.error(_('Unknown source type "%s"') % source) - def handleCNL2Links(self): - self.logDebug("Search for CNL2 links") + def handle_CNL2Links(self): + self.log_debug("Search for CNL2 links") package_links = [] m = re.search(self.CNL2_FORM_REGEX, self.html, re.S) if m: cnl2_form = m.group(1) try: - (vcrypted, vjk) = self._getCipherParams(cnl2_form) + (vcrypted, vjk) = self._get_cipher_params(cnl2_form) for (crypted, jk) in zip(vcrypted, vjk): - package_links.extend(self._getLinks(crypted, jk)) + package_links.extend(self._get_links(crypted, jk)) except Exception: - self.logDebug("Unable to decrypt CNL2 links") + self.log_debug("Unable to decrypt CNL2 links") return package_links - def handleDLCLinks(self): - self.logDebug("Search for DLC links") + def handle_d_l_c_links(self): + self.log_debug("Search for DLC links") package_links = [] m = re.search(self.DLC_LINK_REGEX, self.html) if m: container_url = self.DLC_DOWNLOAD_URL + "?id=%s&dlc=1" % self.fileid - self.logDebug("Downloading DLC container link [%s]" % container_url) + self.log_debug("Downloading DLC container link [%s]" % container_url) try: dlc = self.load(container_url) dlc_filename = self.fileid + ".dlc" @@ -230,19 +230,19 @@ class RelinkUs(Crypter): return package_links - def handleWEBLinks(self): - self.logDebug("Search for WEB links") + def handle_w_e_b_links(self): + self.log_debug("Search for WEB links") package_links = [] params = re.findall(self.WEB_FORWARD_REGEX, self.html) - self.logDebug("Decrypting %d Web links" % len(params)) + self.log_debug("Decrypting %d Web links" % len(params)) for index, param in enumerate(params): try: url = self.WEB_FORWARD_URL + "?%s" % param - self.logDebug("Decrypting Web link %d, %s" % (index + 1, url)) + self.log_debug("Decrypting Web link %d, %s" % (index + 1, url)) res = self.load(url) link = re.search(self.WEB_LINK_REGEX, res).group(1) @@ -250,15 +250,15 @@ class RelinkUs(Crypter): package_links.append(link) except Exception, detail: - self.logDebug("Error decrypting Web link %s, %s" % (index, detail)) + self.log_debug("Error decrypting Web link %s, %s" % (index, detail)) - self.setWait(4) + self.set_wait(4) self.wait() return package_links - def _getCipherParams(self, cnl2_form): + def _get_cipher_params(self, cnl2_form): #: Get jk jk_re = self.CNL2_FORMINPUT_REGEX % self.CNL2_JK_KEY vjk = re.findall(jk_re, cnl2_form, re.I) @@ -268,14 +268,14 @@ class RelinkUs(Crypter): vcrypted = re.findall(crypted_re, cnl2_form, re.I) #: Log and return - self.logDebug("Detected %d crypted blocks" % len(vcrypted)) + self.log_debug("Detected %d crypted blocks" % len(vcrypted)) return vcrypted, vjk - def _getLinks(self, crypted, jk): + def _get_links(self, crypted, jk): #: Get key jreturn = self.js.eval("%s f()" % jk) - self.logDebug("JsEngine returns value [%s]" % jreturn) + self.log_debug("JsEngine returns value [%s]" % jreturn) key = binascii.unhexlify(jreturn) #: Decrypt @@ -289,5 +289,5 @@ class RelinkUs(Crypter): links = filter(bool, text.split('\n')) #: Log and return - self.logDebug("Package has %d links" % len(links)) + self.log_debug("Package has %d links" % len(links)) return links diff --git a/module/plugins/crypter/SafelinkingNet.py b/module/plugins/crypter/SafelinkingNet.py index 3ebb5f22d..973d62985 100644 --- a/module/plugins/crypter/SafelinkingNet.py +++ b/module/plugins/crypter/SafelinkingNet.py @@ -12,7 +12,7 @@ from module.plugins.internal.SolveMedia import SolveMedia class SafelinkingNet(Crypter): __name__ = "SafelinkingNet" __type__ = "crypter" - __version__ = "0.16" + __version__ = "0.17" __pattern__ = r'https?://(?:www\.)?safelinking\.net/([pd])/\w+' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), @@ -43,7 +43,7 @@ class SafelinkingNet(Crypter): self.html = self.load(url) if "link-password" in self.html: - postData['link-password'] = self.getPassword() + postData['link-password'] = self.get_password() if "altcaptcha" in self.html: for _i in xrange(5): diff --git a/module/plugins/crypter/SecuredIn.py b/module/plugins/crypter/SecuredIn.py index a2eac4f13..321cc8778 100644 --- a/module/plugins/crypter/SecuredIn.py +++ b/module/plugins/crypter/SecuredIn.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class SecuredIn(DeadCrypter): __name__ = "SecuredIn" __type__ = "crypter" - __version__ = "0.21" + __version__ = "0.22" __pattern__ = r'http://(?:www\.)?secured\.in/download-[\d]+-\w{8}\.html' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/SexuriaCom.py b/module/plugins/crypter/SexuriaCom.py index cce2177f4..db827ca27 100644 --- a/module/plugins/crypter/SexuriaCom.py +++ b/module/plugins/crypter/SexuriaCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.Crypter import Crypter class SexuriaCom(Crypter): __name__ = "SexuriaCom" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?sexuria\.com/(v1/)?(Pornos_Kostenlos_.+?_(\d+)\.html|dl_links_\d+_\d+\.html|id=\d+\&part=\d+\&link=\d+)' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), @@ -34,11 +34,11 @@ class SexuriaCom(Crypter): self.package = pyfile.package() #: Get package links - package_name, self.links, folder_name, package_pwd = self.decryptLinks(self.pyfile.url) + package_name, self.links, folder_name, package_pwd = self.decrypt_links(self.pyfile.url) self.packages = [(package_name, self.links, folder_name)] - def decryptLinks(self, url): + def decrypt_links(self, url): linklist = [] name = self.package.name folder = self.package.folder @@ -65,30 +65,30 @@ class SexuriaCom(Crypter): title = re.search(self.PATTERN_TITLE, html, re.I).group('TITLE').strip() if title: name = folder = title - self.logDebug("Package info found, name [%s] and folder [%s]" % (name, folder)) + self.log_debug("Package info found, name [%s] and folder [%s]" % (name, folder)) pwd = re.search(self.PATTERN_PASSWORD, html, re.I | re.S).group('PWD') if pwd and pwd not in ("Kein Passwort", "-"): password = pwd.strip() - self.logDebug("Password info [%s] found" % password) + self.log_debug("Password info [%s] found" % password) #: Process link (dl_link) html = self.load(url) links = re.findall(self.PATTERN_REDIRECT_LINKS, html, re.I) if len(links) == 0: - self.logError("Broken for link %s" % link) + self.log_error("Broken for link %s" % link) else: for link in links: link = link.replace("http://sexuria.com/", "http://www.sexuria.com/") finallink = self.load(link, just_header=True)['location'] if not finallink or "sexuria.com/" in finallink: - self.logError("Broken for link %s" % link) + self.log_error("Broken for link %s" % link) else: linklist.append(finallink) #: Debug log - self.logDebug("%d supported links" % len(linklist)) + self.log_debug("%d supported links" % len(linklist)) for i, link in enumerate(linklist): - self.logDebug("Supported link %d, %s" % (i + 1, link)) + self.log_debug("Supported link %d, %s" % (i + 1, link)) return name, linklist, folder, password diff --git a/module/plugins/crypter/ShSt.py b/module/plugins/crypter/ShSt.py index 4dc5b1e2d..a65522aea 100644 --- a/module/plugins/crypter/ShSt.py +++ b/module/plugins/crypter/ShSt.py @@ -9,7 +9,7 @@ import re class ShSt(Crypter): __name__ = "ShSt" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://sh\.st/\w+' diff --git a/module/plugins/crypter/ShareLinksBiz.py b/module/plugins/crypter/ShareLinksBiz.py index 250cc0c81..9b435e694 100644 --- a/module/plugins/crypter/ShareLinksBiz.py +++ b/module/plugins/crypter/ShareLinksBiz.py @@ -10,7 +10,7 @@ from module.plugins.internal.Crypter import Crypter class ShareLinksBiz(Crypter): __name__ = "ShareLinksBiz" __type__ = "crypter" - __version__ = "1.15" + __version__ = "1.16" __pattern__ = r'http://(?:www\.)?(share-links|s2l)\.biz/(?P<ID>_?\w+)' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), @@ -22,113 +22,113 @@ class ShareLinksBiz(Crypter): def setup(self): - self.baseUrl = None - self.fileId = None + self.base_url = None + self.file_id = None self.package = None self.captcha = False def decrypt(self, pyfile): #: Init - self.initFile(pyfile) + self.init_file(pyfile) #: Request package - url = self.baseUrl + '/' + self.fileId + url = self.base_url + '/' + self.file_id self.html = self.load(url) #: Unblock server (load all images) - self.unblockServer() + self.unblock_server() #: Check for protection - if self.isPasswordProtected(): - self.unlockPasswordProtection() - self.handleErrors() + if self.is_password_protected(): + self.unlock_password_protection() + self.handle_errors() - if self.isCaptchaProtected(): + if self.is_captcha_protected(): self.captcha = True - self.unlockCaptchaProtection() - self.handleErrors() + self.unlock_captcha_protection() + self.handle_errors() #: Extract package links package_links = [] - package_links.extend(self.handleWebLinks()) - package_links.extend(self.handleContainers()) - package_links.extend(self.handleCNL2()) + package_links.extend(self.handle_web_links()) + package_links.extend(self.handle_containers()) + package_links.extend(self.handle_CNL2()) package_links = set(package_links) #: Get package info - package_name, package_folder = self.getPackageInfo() + package_name, package_folder = self.get_package_info() #: Pack self.packages = [(package_name, package_links, package_folder)] - def initFile(self, pyfile): + def init_file(self, pyfile): url = pyfile.url if 's2l.biz' in url: url = self.load(url, just_header=True)['location'] - self.baseUrl = "http://www.%s.biz" % re.match(self.__pattern__, url).group(1) - self.fileId = re.match(self.__pattern__, url).group('ID') + self.base_url = "http://www.%s.biz" % re.match(self.__pattern__, url).group(1) + self.file_id = re.match(self.__pattern__, url).group('ID') self.package = pyfile.package() - def isOnline(self): + def is_online(self): if "No usable content was found" in self.html: - self.logDebug("File not found") + self.log_debug("File not found") return False return True - def isPasswordProtected(self): + def is_password_protected(self): if re.search(r'''<form.*?id="passwordForm".*?>''', self.html): - self.logDebug("Links are protected") + self.log_debug("Links are protected") return True return False - def isCaptchaProtected(self): + def is_captcha_protected(self): if '<map id="captchamap"' in self.html: - self.logDebug("Links are captcha protected") + self.log_debug("Links are captcha protected") return True return False - def unblockServer(self): + def unblock_server(self): imgs = re.findall(r"(/template/images/.*?\.gif)", self.html) for img in imgs: - self.load(self.baseUrl + img) + self.load(self.base_url + img) - def unlockPasswordProtection(self): - password = self.getPassword() - self.logDebug("Submitting password [%s] for protected links" % password) + def unlock_password_protection(self): + password = self.get_password() + self.log_debug("Submitting password [%s] for protected links" % password) post = {"password": password, 'login': 'Submit form'} - url = self.baseUrl + '/' + self.fileId + url = self.base_url + '/' + self.file_id self.html = self.load(url, post=post) - def unlockCaptchaProtection(self): + def unlock_captcha_protection(self): #: Get captcha map - captchaMap = self._getCaptchaMap() - self.logDebug("Captcha map with [%d] positions" % len(captchaMap.keys())) + captchaMap = self._get_captcha_map() + self.log_debug("Captcha map with [%d] positions" % len(captchaMap.keys())) #: Request user for captcha coords m = re.search(r'<img src="/captcha.gif\?d=(.*?)&PHPSESSID=(.*?)&legend=1"', self.html) - captchaUrl = self.baseUrl + '/captcha.gif?d=%s&PHPSESSID=%s' % (m.group(1), m.group(2)) - self.logDebug("Waiting user for correct position") - coords = self.decryptCaptcha(captchaUrl, forceUser=True, imgtype="gif", result_type='positional') - self.logDebug("Captcha resolved, coords [%s]" % str(coords)) + captchaUrl = self.base_url + '/captcha.gif?d=%s&PHPSESSID=%s' % (m.group(1), m.group(2)) + self.log_debug("Waiting user for correct position") + coords = self.decrypt_captcha(captchaUrl, forceUser=True, imgtype="gif", result_type='positional') + self.log_debug("Captcha resolved, coords [%s]" % str(coords)) #: Resolve captcha - href = self._resolveCoords(coords, captchaMap) + href = self._resolve_coords(coords, captchaMap) if href is None: - self.invalidCaptcha() + self.invalid_captcha() self.retry(wait_time=5) - url = self.baseUrl + href + url = self.base_url + href self.html = self.load(url) - def _getCaptchaMap(self): + def _get_captcha_map(self): mapp = {} for m in re.finditer(r'<area shape="rect" coords="(.*?)" href="(.*?)"', self.html): rect = eval('(' + m.group(1) + ')') @@ -137,7 +137,7 @@ class ShareLinksBiz(Crypter): return mapp - def _resolveCoords(self, coords, captchaMap): + def _resolve_coords(self, coords, captchaMap): x, y = coords for rect, href in captchaMap.iteritems(): x1, y1, x2, y2 = rect @@ -145,20 +145,20 @@ class ShareLinksBiz(Crypter): return href - def handleErrors(self): + def handle_errors(self): if "The inserted password was wrong" in self.html: - self.logDebug("Incorrect password, please set right password on 'Edit package' form and retry") + self.log_debug("Incorrect password, please set right password on 'Edit package' form and retry") self.fail(_("Incorrect password, please set right password on 'Edit package' form and retry")) if self.captcha: if "Your choice was wrong" in self.html: - self.invalidCaptcha() + self.invalid_captcha() self.retry(wait_time=5) else: - self.correctCaptcha() + self.correct_captcha() - def getPackageInfo(self): + def get_package_info(self): name = folder = None #: Extract from web package header @@ -168,35 +168,35 @@ class ShareLinksBiz(Crypter): title = m.group(1).strip() if 'unnamed' not in title: name = folder = title - self.logDebug("Found name [%s] and folder [%s] in package info" % (name, folder)) + self.log_debug("Found name [%s] and folder [%s] in package info" % (name, folder)) #: Fallback to defaults if not name or not folder: name = self.package.name folder = self.package.folder - self.logDebug("Package info not found, defaulting to pyfile name [%s] and folder [%s]" % (name, folder)) + self.log_debug("Package info not found, defaulting to pyfile name [%s] and folder [%s]" % (name, folder)) #: Return package info return name, folder - def handleWebLinks(self): + def handle_web_links(self): package_links = [] - self.logDebug("Handling Web links") + self.log_debug("Handling Web links") #@TODO: Gather paginated web links pattern = r'javascript:_get\(\'(.*?)\', \d+, \'\'\)' ids = re.findall(pattern, self.html) - self.logDebug("Decrypting %d Web links" % len(ids)) + self.log_debug("Decrypting %d Web links" % len(ids)) for i, ID in enumerate(ids): try: - self.logDebug("Decrypting Web link %d, [%s]" % (i + 1, ID)) + self.log_debug("Decrypting Web link %d, [%s]" % (i + 1, ID)) - dwLink = self.baseUrl + "/get/lnk/" + ID + dwLink = self.base_url + "/get/lnk/" + ID res = self.load(dwLink) code = re.search(r'frm/(\d+)', res).group(1) - fwLink = self.baseUrl + "/get/frm/" + code + fwLink = self.base_url + "/get/frm/" + code res = self.load(fwLink) jscode = re.search(r'<script language="javascript">\s*eval\((.*)\)\s*</script>', res, re.S).group(1) @@ -205,44 +205,44 @@ class ShareLinksBiz(Crypter): dlLink = self.js.eval(jslauncher % jscode) - self.logDebug("JsEngine returns value [%s] for redirection link" % dlLink) + self.log_debug("JsEngine returns value [%s] for redirection link" % dlLink) package_links.append(dlLink) except Exception, detail: - self.logDebug("Error decrypting Web link [%s], %s" % (ID, detail)) + self.log_debug("Error decrypting Web link [%s], %s" % (ID, detail)) return package_links - def handleContainers(self): + def handle_containers(self): package_links = [] - self.logDebug("Handling Container links") + self.log_debug("Handling Container links") pattern = r'javascript:_get\(\'(.*?)\', 0, \'(rsdf|ccf|dlc)\'\)' containersLinks = re.findall(pattern, self.html) - self.logDebug("Decrypting %d Container links" % len(containersLinks)) + self.log_debug("Decrypting %d Container links" % len(containersLinks)) for containerLink in containersLinks: - link = "%s/get/%s/%s" % (self.baseUrl, containerLink[1], containerLink[0]) + link = "%s/get/%s/%s" % (self.base_url, containerLink[1], containerLink[0]) package_links.append(link) return package_links - def handleCNL2(self): + def handle_CNL2(self): package_links = [] - self.logDebug("Handling CNL2 links") + self.log_debug("Handling CNL2 links") if '/lib/cnl2/ClicknLoad.swf' in self.html: try: - (crypted, jk) = self._getCipherParams() - package_links.extend(self._getLinks(crypted, jk)) + (crypted, jk) = self._get_cipher_params() + package_links.extend(self._get_links(crypted, jk)) except Exception: self.fail(_("Unable to decrypt CNL2 links")) return package_links - def _getCipherParams(self): + def _get_cipher_params(self): #: Request CNL2 code = re.search(r'ClicknLoad.swf\?code=(.*?)"', self.html).group(1) - url = "%s/get/cnl2/%s" % (self.baseUrl, code) + url = "%s/get/cnl2/%s" % (self.base_url, code) res = self.load(url) params = res.split(";;") @@ -258,10 +258,10 @@ class ShareLinksBiz(Crypter): return crypted, jk - def _getLinks(self, crypted, jk): + def _get_links(self, crypted, jk): #: Get key jreturn = self.js.eval("%s f()" % jk) - self.logDebug("JsEngine returns value [%s]" % jreturn) + self.log_debug("JsEngine returns value [%s]" % jreturn) key = binascii.unhexlify(jreturn) #: Decrypt @@ -275,5 +275,5 @@ class ShareLinksBiz(Crypter): links = filter(bool, text.split('\n')) #: Log and return - self.logDebug("Block has %d links" % len(links)) + self.log_debug("Block has %d links" % len(links)) return links diff --git a/module/plugins/crypter/SharingmatrixComFolder.py b/module/plugins/crypter/SharingmatrixComFolder.py index eb1b4d8a6..399e5c386 100644 --- a/module/plugins/crypter/SharingmatrixComFolder.py +++ b/module/plugins/crypter/SharingmatrixComFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class SharingmatrixComFolder(DeadCrypter): __name__ = "SharingmatrixComFolder" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?sharingmatrix\.com/folder/\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/SpeedLoadOrgFolder.py b/module/plugins/crypter/SpeedLoadOrgFolder.py index af768ef7b..14e988a57 100644 --- a/module/plugins/crypter/SpeedLoadOrgFolder.py +++ b/module/plugins/crypter/SpeedLoadOrgFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class SpeedLoadOrgFolder(DeadCrypter): __name__ = "SpeedLoadOrgFolder" __type__ = "crypter" - __version__ = "0.30" + __version__ = "0.31" __pattern__ = r'http://(?:www\.)?speedload\.org/(\d+~f$|folder/\d+/)' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/StealthTo.py b/module/plugins/crypter/StealthTo.py index 551468980..c715af7b7 100644 --- a/module/plugins/crypter/StealthTo.py +++ b/module/plugins/crypter/StealthTo.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class StealthTo(DeadCrypter): __name__ = "StealthTo" __type__ = "crypter" - __version__ = "0.20" + __version__ = "0.21" __pattern__ = r'http://(?:www\.)?stealth\.to/folder/.+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/TNTVillageScambioeticoOrg.py b/module/plugins/crypter/TNTVillageScambioeticoOrg.py index 5606b8a7f..f812e0edc 100644 --- a/module/plugins/crypter/TNTVillageScambioeticoOrg.py +++ b/module/plugins/crypter/TNTVillageScambioeticoOrg.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class TNTVillageScambioeticoOrg(SimpleCrypter): __name__ = "TNTVillageScambioeticoOrg" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?forum\.tntvillage\.scambioetico\.org/index\.php\?.*showtopic=\d+' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), #: Overrides core.config['general']['folder_per_package'] @@ -20,7 +20,7 @@ class TNTVillageScambioeticoOrg(SimpleCrypter): LINK_PATTERNS = [r'<th class="titlemedium"><a href=\'(.+?)\'', r"<a href='(\./index\.php\?act.+?)'"] - def getLinks(self): + def get_links(self): for p in self.LINK_PATTERNS: self.LINK_PATTERN = p links = super(TNTVillageScambioeticoOrg, self).getLinks() diff --git a/module/plugins/crypter/TinyurlCom.py b/module/plugins/crypter/TinyurlCom.py index e2cf50358..5a8e0607e 100644 --- a/module/plugins/crypter/TinyurlCom.py +++ b/module/plugins/crypter/TinyurlCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class TinyurlCom(SimpleCrypter): __name__ = "TinyurlCom" __type__ = "crypter" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'https?://(?:www\.)?(preview\.)?tinyurl\.com/[\w-]+' diff --git a/module/plugins/crypter/TnyCz.py b/module/plugins/crypter/TnyCz.py index 56c737969..4ba774af7 100644 --- a/module/plugins/crypter/TnyCz.py +++ b/module/plugins/crypter/TnyCz.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class TnyCz(SimpleCrypter): __name__ = "TnyCz" __type__ = "crypter" - __version__ = "0.04" + __version__ = "0.05" __pattern__ = r'http://(?:www\.)?tny\.cz/\w+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -23,7 +23,7 @@ class TnyCz(SimpleCrypter): NAME_PATTERN = r'<title>(?P<N>.+?) - .+</title>' - def getLinks(self): + def get_links(self): m = re.search(r'<a id=\'save_paste\' href="(.+save\.php\?hash=.+)">', self.html) return re.findall(".+", self.load(m.group(1))) if m else None diff --git a/module/plugins/crypter/TrailerzoneInfo.py b/module/plugins/crypter/TrailerzoneInfo.py index 6f1c90612..cc4e31c0c 100644 --- a/module/plugins/crypter/TrailerzoneInfo.py +++ b/module/plugins/crypter/TrailerzoneInfo.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class TrailerzoneInfo(DeadCrypter): __name__ = "TrailerzoneInfo" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?trailerzone\.info/.+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/TurbobitNetFolder.py b/module/plugins/crypter/TurbobitNetFolder.py index 2ffcfae13..f8e56712f 100644 --- a/module/plugins/crypter/TurbobitNetFolder.py +++ b/module/plugins/crypter/TurbobitNetFolder.py @@ -9,7 +9,7 @@ from module.common.json_layer import json_loads class TurbobitNetFolder(SimpleCrypter): __name__ = "TurbobitNetFolder" __type__ = "crypter" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'http://(?:www\.)?turbobit\.net/download/folder/(?P<ID>\w+)' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -25,7 +25,7 @@ class TurbobitNetFolder(SimpleCrypter): NAME_PATTERN = r'src=\'/js/lib/grid/icon/folder.png\'> <span>(?P<N>.+?)</span>' - def _getLinks(self, id, page=1): + def _get_links(self, id, page=1): gridFile = self.load("http://turbobit.net/downloadfolder/gridFile", get={"rootId": id, "rows": 200, "page": page}) grid = json_loads(gridFile) @@ -33,16 +33,16 @@ class TurbobitNetFolder(SimpleCrypter): if grid['rows']: for i in grid['rows']: yield i['id'] - for id in self._getLinks(id, page + 1): + for id in self._get_links(id, page + 1): yield id else: return - def getLinks(self): + def get_links(self): id = re.match(self.__pattern__, self.pyfile.url).group('ID') fixurl = lambda id: "http://turbobit.net/%s.html" % id - return map(fixurl, self._getLinks(id)) + return map(fixurl, self._get_links(id)) getInfo = create_getInfo(TurbobitNetFolder) diff --git a/module/plugins/crypter/TusfilesNetFolder.py b/module/plugins/crypter/TusfilesNetFolder.py index b8840132f..a5871e1f4 100644 --- a/module/plugins/crypter/TusfilesNetFolder.py +++ b/module/plugins/crypter/TusfilesNetFolder.py @@ -10,7 +10,7 @@ from module.plugins.internal.XFSCrypter import XFSCrypter, create_getInfo class TusfilesNetFolder(XFSCrypter): __name__ = "TusfilesNetFolder" __type__ = "crypter" - __version__ = "0.08" + __version__ = "0.09" __pattern__ = r'https?://(?:www\.)?tusfiles\.net/go/(?P<ID>\w+)' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), @@ -27,11 +27,11 @@ class TusfilesNetFolder(XFSCrypter): URL_REPLACEMENTS = [(__pattern__ + ".*", r'https://www.tusfiles.net/go/\g<ID>/')] - def loadPage(self, page_n): + def load_page(self, page_n): return self.load(urlparse.urljoin(self.pyfile.url, str(page_n))) - def handlePages(self, pyfile): + def handle_pages(self, pyfile): pages = re.search(self.PAGES_PATTERN, self.html) if pages: pages = int(math.ceil(int(pages.group('pages')) / 25.0)) @@ -39,8 +39,8 @@ class TusfilesNetFolder(XFSCrypter): return for p in xrange(2, pages + 1): - self.html = self.loadPage(p) - self.links += self.getLinks() + self.html = self.load_page(p) + self.links += self.get_links() getInfo = create_getInfo(TusfilesNetFolder) diff --git a/module/plugins/crypter/UlozToFolder.py b/module/plugins/crypter/UlozToFolder.py index 6e2c15c87..52789c00c 100644 --- a/module/plugins/crypter/UlozToFolder.py +++ b/module/plugins/crypter/UlozToFolder.py @@ -7,7 +7,7 @@ from module.plugins.internal.Crypter import Crypter class UlozToFolder(Crypter): __name__ = "UlozToFolder" __type__ = "crypter" - __version__ = "0.21" + __version__ = "0.22" __pattern__ = r'http://(?:www\.)?(uloz\.to|ulozto\.(cz|sk|net)|bagruj\.cz|zachowajto\.pl)/(m|soubory)/.+' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), @@ -28,7 +28,7 @@ class UlozToFolder(Crypter): new_links = [] for i in xrange(1, 100): - self.logInfo(_("Fetching links from page %i") % i) + self.log_info(_("Fetching links from page %i") % i) m = re.search(self.FOLDER_PATTERN, html, re.S) if m is None: self.error(_("FOLDER_PATTERN not found")) @@ -40,7 +40,7 @@ class UlozToFolder(Crypter): else: break else: - self.logInfo(_("Limit of 99 pages reached, aborting")) + self.log_info(_("Limit of 99 pages reached, aborting")) if new_links: self.urls = [map(lambda s: "http://ulozto.net/%s" % s, new_links)] diff --git a/module/plugins/crypter/UploadableChFolder.py b/module/plugins/crypter/UploadableChFolder.py index 849aaceea..0df613978 100644 --- a/module/plugins/crypter/UploadableChFolder.py +++ b/module/plugins/crypter/UploadableChFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class UploadableChFolder(SimpleCrypter): __name__ = "UploadableChFolder" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?uploadable\.ch/list/\w+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), diff --git a/module/plugins/crypter/UploadedToFolder.py b/module/plugins/crypter/UploadedToFolder.py index 384168030..7233a1293 100644 --- a/module/plugins/crypter/UploadedToFolder.py +++ b/module/plugins/crypter/UploadedToFolder.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class UploadedToFolder(SimpleCrypter): __name__ = "UploadedToFolder" __type__ = "crypter" - __version__ = "0.43" + __version__ = "0.44" __pattern__ = r'https?://(?:www\.)?(uploaded|ul)\.(to|net)/(f|folder|list)/\w+' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), diff --git a/module/plugins/crypter/WiiReloadedOrg.py b/module/plugins/crypter/WiiReloadedOrg.py index eddc0e5d1..48ab22219 100644 --- a/module/plugins/crypter/WiiReloadedOrg.py +++ b/module/plugins/crypter/WiiReloadedOrg.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class WiiReloadedOrg(DeadCrypter): __name__ = "WiiReloadedOrg" __type__ = "crypter" - __version__ = "0.11" + __version__ = "0.12" __pattern__ = r'http://(?:www\.)?wii-reloaded\.org/protect/get\.php\?i=.+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/WuploadComFolder.py b/module/plugins/crypter/WuploadComFolder.py index dece467a2..d176ec292 100644 --- a/module/plugins/crypter/WuploadComFolder.py +++ b/module/plugins/crypter/WuploadComFolder.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo class WuploadComFolder(DeadCrypter): __name__ = "WuploadComFolder" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?wupload\.com/folder/\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/crypter/XFileSharingProFolder.py b/module/plugins/crypter/XFileSharingProFolder.py index 70e7365dd..b9b1b4f23 100644 --- a/module/plugins/crypter/XFileSharingProFolder.py +++ b/module/plugins/crypter/XFileSharingProFolder.py @@ -8,7 +8,7 @@ from module.plugins.internal.XFSCrypter import XFSCrypter, create_getInfo class XFileSharingProFolder(XFSCrypter): __name__ = "XFileSharingProFolder" __type__ = "crypter" - __version__ = "0.08" + __version__ = "0.09" __pattern__ = r'https?://(?:www\.)?(?:\w+\.)*?(?P<DOMAIN>(?:[\d.]+|[\w\-^_]{3,}(?:\.[a-zA-Z]{2,}){1,2})(?:\:\d+)?)/(?:user|folder)s?/\w+' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), diff --git a/module/plugins/crypter/XupPl.py b/module/plugins/crypter/XupPl.py index 9dff23215..d72f69293 100644 --- a/module/plugins/crypter/XupPl.py +++ b/module/plugins/crypter/XupPl.py @@ -6,7 +6,7 @@ from module.plugins.internal.Crypter import Crypter class XupPl(Crypter): __name__ = "XupPl" __type__ = "crypter" - __version__ = "0.11" + __version__ = "0.12" __pattern__ = r'https?://(?:[^/]*\.)?xup\.pl/.+' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), diff --git a/module/plugins/crypter/YoutubeComFolder.py b/module/plugins/crypter/YoutubeComFolder.py index fed832b7d..4b11e1244 100644 --- a/module/plugins/crypter/YoutubeComFolder.py +++ b/module/plugins/crypter/YoutubeComFolder.py @@ -11,7 +11,7 @@ from module.utils import save_join as fs_join class YoutubeComFolder(Crypter): __name__ = "YoutubeComFolder" __type__ = "crypter" - __version__ = "1.02" + __version__ = "1.03" __pattern__ = r'https?://(?:www\.|m\.)?youtube\.com/(?P<TYPE>user|playlist|view_play_list)(/|.*?[?&](?:list|p)=)(?P<ID>[\w-]+)' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True ), @@ -35,7 +35,7 @@ class YoutubeComFolder(Crypter): return json_loads(html) - def getChannel(self, user): + def get_channel(self, user): channels = self.api_response("channels", {"part": "id,snippet,contentDetails", "forUsername": user, "maxResults": "50"}) if channels['items']: channel = channels['items'][0] @@ -45,7 +45,7 @@ class YoutubeComFolder(Crypter): "user": user} #: One lone channel for user? - def getPlaylist(self, p_id): + def get_playlist(self, p_id): playlists = self.api_response("playlists", {"part": "snippet", "id": p_id}) if playlists['items']: playlist = playlists['items'][0] @@ -55,7 +55,7 @@ class YoutubeComFolder(Crypter): "channelTitle": playlist['snippet']['channelTitle']} - def _getPlaylists(self, id, token=None): + def _get_playlists(self, id, token=None): req = {"part": "id", "maxResults": "50", "channelId": id} if token: req.update({"pageToken": token}) @@ -66,15 +66,15 @@ class YoutubeComFolder(Crypter): yield playlist['id'] if "nextPageToken" in playlists: - for item in self._getPlaylists(id, playlists['nextPageToken']): + for item in self._get_playlists(id, playlists['nextPageToken']): yield item - def getPlaylists(self, ch_id): - return map(self.getPlaylist, self._getPlaylists(ch_id)) + def get_playlists(self, ch_id): + return map(self.get_playlist, self._get_playlists(ch_id)) - def _getVideosId(self, id, token=None): + def _get_videos_id(self, id, token=None): req = {"part": "contentDetails", "maxResults": "50", "playlistId": id} if token: req.update({"pageToken": token}) @@ -85,12 +85,12 @@ class YoutubeComFolder(Crypter): yield item['contentDetails']['videoId'] if "nextPageToken" in playlist: - for item in self._getVideosId(id, playlist['nextPageToken']): + for item in self._get_videos_id(id, playlist['nextPageToken']): yield item - def getVideosId(self, p_id): - return list(self._getVideosId(p_id)) + def get_videos_id(self, p_id): + return list(self._get_videos_id(p_id)) def decrypt(self, pyfile): @@ -99,29 +99,29 @@ class YoutubeComFolder(Crypter): m_type = m.group('TYPE') if m_type == "user": - self.logDebug("Url recognized as Channel") + self.log_debug("Url recognized as Channel") user = m_id - channel = self.getChannel(user) + channel = self.get_channel(user) if channel: - playlists = self.getPlaylists(channel['id']) - self.logDebug("%s playlist\s found on channel \"%s\"" % (len(playlists), channel['title'])) + playlists = self.get_playlists(channel['id']) + self.log_debug("%s playlist\s found on channel \"%s\"" % (len(playlists), channel['title'])) - relatedplaylist = {p_name: self.getPlaylist(p_id) for p_name, p_id in channel['relatedPlaylists'].iteritems()} - self.logDebug("Channel's related playlists found = %s" % relatedplaylist.keys()) + relatedplaylist = {p_name: self.get_playlist(p_id) for p_name, p_id in channel['relatedPlaylists'].iteritems()} + self.log_debug("Channel's related playlists found = %s" % relatedplaylist.keys()) relatedplaylist['uploads']['title'] = "Unplaylisted videos" relatedplaylist['uploads']['checkDups'] = True #: checkDups flag for p_name, p_data in relatedplaylist.iteritems(): - if self.getConfig(p_name): + if self.get_config(p_name): p_data['title'] += " of " + user playlists.append(p_data) else: playlists = [] else: - self.logDebug("Url recognized as Playlist") - playlists = [self.getPlaylist(m_id)] + self.log_debug("Url recognized as Playlist") + playlists = [self.get_playlist(m_id)] if not playlists: self.fail(_("No playlist available")) @@ -130,15 +130,15 @@ class YoutubeComFolder(Crypter): urlize = lambda x: "https://www.youtube.com/watch?v=" + x for p in playlists: p_name = p['title'] - p_videos = self.getVideosId(p['id']) + p_videos = self.get_videos_id(p['id']) p_folder = fs_join(self.core.config.get("general", "download_folder"), p['channelTitle'], p_name) - self.logDebug("%s video\s found on playlist \"%s\"" % (len(p_videos), p_name)) + self.log_debug("%s video\s found on playlist \"%s\"" % (len(p_videos), p_name)) if not p_videos: continue elif "checkDups" in p: p_urls = [urlize(v_id) for v_id in p_videos if v_id not in addedvideos] - self.logDebug("%s video\s available on playlist \"%s\" after duplicates cleanup" % (len(p_urls), p_name)) + self.log_debug("%s video\s available on playlist \"%s\" after duplicates cleanup" % (len(p_urls), p_name)) else: p_urls = map(urlize, p_videos) diff --git a/module/plugins/hooks/AlldebridComHook.py b/module/plugins/hooks/AlldebridComHook.py index de24b86ed..9af1cf02f 100644 --- a/module/plugins/hooks/AlldebridComHook.py +++ b/module/plugins/hooks/AlldebridComHook.py @@ -6,7 +6,7 @@ from module.plugins.internal.MultiHook import MultiHook class AlldebridComHook(MultiHook): __name__ = "AlldebridComHook" __type__ = "hook" - __version__ = "0.16" + __version__ = "0.17" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -18,7 +18,7 @@ class AlldebridComHook(MultiHook): __authors__ = [("Andy Voigt", "spamsales@online.de")] - def getHosters(self): + def get_hosters(self): html = self.load("https://www.alldebrid.com/api.php", get={'action': "get_host"}).replace("\"", "").strip() return [x.strip() for x in html.split(",") if x.strip()] diff --git a/module/plugins/hooks/AndroidPhoneNotify.py b/module/plugins/hooks/AndroidPhoneNotify.py index daf4c1a27..1cea0c994 100644 --- a/module/plugins/hooks/AndroidPhoneNotify.py +++ b/module/plugins/hooks/AndroidPhoneNotify.py @@ -8,7 +8,7 @@ from module.plugins.internal.Hook import Hook, Expose class AndroidPhoneNotify(Hook): __name__ = "AndroidPhoneNotify" __type__ = "hook" - __version__ = "0.09" + __version__ = "0.10" __config__ = [("apikey" , "str" , "API key" , "" ), ("notifycaptcha" , "bool", "Notify captcha request" , True ), @@ -32,25 +32,26 @@ class AndroidPhoneNotify(Hook): def setup(self): self.info = {} #@TODO: Remove in 0.4.10 - self.event_list = ["allDownloadsProcessed", "plugin_updated"] + self.event_list = ["plugin_updated"] + self.event_map = {'allDownloadsProcessed': "all_downloads_processed"} self.last_notify = 0 self.notifications = 0 def plugin_updated(self, type_plugins): - if not self.getConfig('notifyupdate'): + if not self.get_config('notifyupdate'): return self.notify(_("Plugins updated"), str(type_plugins)) def activate(self): - self.key = self.getConfig('apikey') + self.key = self.get_config('apikey') def exit(self): - if not self.getConfig('notifyexit'): + if not self.get_config('notifyexit'): return if self.core.do_restart: @@ -60,19 +61,19 @@ class AndroidPhoneNotify(Hook): def captcha_task(self, task): - if not self.getConfig('notifycaptcha'): + if not self.get_config('notifycaptcha'): return self.notify(_("Captcha"), _("New request waiting user input")) def package_finished(self, pypack): - if self.getConfig('notifypackage'): + if self.get_config('notifypackage'): self.notify(_("Package finished"), pypack.name) - def allDownloadsProcessed(self): - if not self.getConfig('notifyprocessed'): + def all_downloads_processed(self): + if not self.get_config('notifyprocessed'): return if any(True for pdata in self.core.api.getQueue() if pdata.linksdone < pdata.linkstotal): @@ -91,18 +92,18 @@ class AndroidPhoneNotify(Hook): if not key: return - if self.core.isClientConnected() and not self.getConfig('ignoreclient'): + if self.core.isClientConnected() and not self.get_config('ignoreclient'): return elapsed_time = time.time() - self.last_notify - if elapsed_time < self.getConfig("sendtimewait"): + if elapsed_time < self.get_config("sendtimewait"): return if elapsed_time > 60: self.notifications = 0 - elif self.notifications >= self.getConfig("sendpermin"): + elif self.notifications >= self.get_config("sendpermin"): return self.load("http://www.notifymyandroid.com/publicapi/notify", diff --git a/module/plugins/hooks/AntiVirus.py b/module/plugins/hooks/AntiVirus.py index 02b1df67b..cb9d5aaa6 100644 --- a/module/plugins/hooks/AntiVirus.py +++ b/module/plugins/hooks/AntiVirus.py @@ -16,7 +16,7 @@ from module.utils import fs_encode, save_join as fs_join class AntiVirus(Hook): __name__ = "AntiVirus" __type__ = "hook" - __version__ = "0.10" + __version__ = "0.11" #@TODO: add trash option (use Send2Trash lib) __config__ = [("action" , "Antivirus default;Delete;Quarantine", "Manage infected files" , "Antivirus default"), @@ -44,8 +44,8 @@ class AntiVirus(Hook): def scan(self, pyfile, thread): file = fs_encode(pyfile.plugin.lastDownload) filename = os.path.basename(pyfile.plugin.lastDownload) - cmdfile = fs_encode(self.getConfig('cmdfile')) - cmdargs = fs_encode(self.getConfig('cmdargs').strip()) + cmdfile = fs_encode(self.get_config('cmdfile')) + cmdargs = fs_encode(self.get_config('cmdargs').strip()) if not os.path.isfile(file) or not os.path.isfile(cmdfile): return @@ -60,20 +60,20 @@ class AntiVirus(Hook): out, err = map(str.strip, p.communicate()) if out: - self.logInfo(filename, out) + self.log_info(filename, out) if err: - self.logWarning(filename, err) - if not self.getConfig('ignore-err'): - self.logDebug("Delete/Quarantine task is aborted") + self.log_warning(filename, err) + if not self.get_config('ignore-err'): + self.log_debug("Delete/Quarantine task is aborted") return if p.returncode: pyfile.error = _("infected file") - action = self.getConfig('action') + action = self.get_config('action') try: if action == "Delete": - if not self.getConfig('deltotrash'): + if not self.get_config('deltotrash'): os.remove(file) else: @@ -81,27 +81,27 @@ class AntiVirus(Hook): send2trash.send2trash(file) except NameError: - self.logWarning(_("Send2Trash lib not found, moving to quarantine instead")) + self.log_warning(_("Send2Trash lib not found, moving to quarantine instead")) pyfile.setCustomStatus(_("file moving")) - shutil.move(file, self.getConfig('quardir')) + shutil.move(file, self.get_config('quardir')) except Exception, e: - self.logWarning(_("Unable to move file to trash: %s, moving to quarantine instead") % e.message) + self.log_warning(_("Unable to move file to trash: %s, moving to quarantine instead") % e.message) pyfile.setCustomStatus(_("file moving")) - shutil.move(file, self.getConfig('quardir')) + shutil.move(file, self.get_config('quardir')) else: - self.logDebug("Successfully moved file to trash") + self.log_debug("Successfully moved file to trash") elif action == "Quarantine": pyfile.setCustomStatus(_("file moving")) - shutil.move(file, self.getConfig('quardir')) + shutil.move(file, self.get_config('quardir')) except (IOError, shutil.Error), e: - self.logError(filename, action + " action failed!", e) + self.log_error(filename, action + " action failed!", e) elif not out and not err: - self.logDebug(filename, "No infected file found") + self.log_debug(filename, "No infected file found") finally: pyfile.setProgress(100) @@ -114,5 +114,5 @@ class AntiVirus(Hook): def download_failed(self, pyfile): #: Check if pyfile is still "failed", maybe might has been restarted in meantime - if pyfile.status == 8 and self.getConfig('scanfailed'): + if pyfile.status == 8 and self.get_config('scanfailed'): return self.scan(pyfile) diff --git a/module/plugins/hooks/BypassCaptcha.py b/module/plugins/hooks/BypassCaptcha.py index 4869288c9..cb91c06ce 100644 --- a/module/plugins/hooks/BypassCaptcha.py +++ b/module/plugins/hooks/BypassCaptcha.py @@ -13,7 +13,7 @@ class BypassCaptchaException(Exception): self.err = err - def getCode(self): + def get_code(self): return self.err @@ -28,7 +28,7 @@ class BypassCaptchaException(Exception): class BypassCaptcha(Hook): __name__ = "BypassCaptcha" __type__ = "hook" - __version__ = "0.07" + __version__ = "0.08" __config__ = [("passkey" , "password", "Access key" , "" ), ("check_client", "bool" , "Don't use if client is connected", True)] @@ -53,8 +53,8 @@ class BypassCaptcha(Hook): self.info = {} #@TODO: Remove in 0.4.10 - def getCredits(self): - res = self.load(self.GETCREDITS_URL, post={"key": self.getConfig('passkey')}) + def get_credits(self): + res = self.load(self.GETCREDITS_URL, post={"key": self.get_config('passkey')}) data = dict(x.split(' ', 1) for x in res.splitlines()) return int(data['Left']) @@ -63,13 +63,13 @@ class BypassCaptcha(Hook): def submit(self, captcha, captchaType="file", match=None): req = getRequest() - #raise timeout threshold + # raise timeout threshold req.c.setopt(pycurl.LOW_SPEED_TIME, 80) try: res = self.load(self.SUBMIT_URL, post={'vendor_key': self.PYLOAD_KEY, - 'key': self.getConfig('passkey'), + 'key': self.get_config('passkey'), 'gen_task_id': "1", 'file': (pycurl.FORM_FILE, captcha)}, req=req) @@ -82,17 +82,17 @@ class BypassCaptcha(Hook): result = data['Value'] ticket = data['TaskId'] - self.logDebug("Result %s : %s" % (ticket, result)) + self.log_debug("Result %s : %s" % (ticket, result)) return ticket, result def respond(self, ticket, success): try: - res = self.load(self.RESPOND_URL, post={"task_id": ticket, "key": self.getConfig('passkey'), + res = self.load(self.RESPOND_URL, post={"task_id": ticket, "key": self.get_config('passkey'), "cv": 1 if success else 0}) except BadHeader, e: - self.logError(_("Could not send response"), e) + self.log_error(_("Could not send response"), e) def captcha_task(self, task): @@ -102,20 +102,20 @@ class BypassCaptcha(Hook): if not task.isTextual(): return False - if not self.getConfig('passkey'): + if not self.get_config('passkey'): return False - if self.core.isClientConnected() and self.getConfig('check_client'): + if self.core.isClientConnected() and self.get_config('check_client'): return False - if self.getCredits() > 0: + if self.get_credits() > 0: task.handler.append(self) task.data['service'] = self.__name__ task.setWaiting(100) - self._processCaptcha(task) + self._process_captcha(task) else: - self.logInfo(_("Your %s account has not enough credits") % self.__name__) + self.log_info(_("Your %s account has not enough credits") % self.__name__) def captcha_correct(self, task): @@ -129,7 +129,7 @@ class BypassCaptcha(Hook): @threaded - def _processCaptcha(self, task): + def _process_captcha(self, task): c = task.captchaFile try: ticket, result = self.submit(c) diff --git a/module/plugins/hooks/Captcha9Kw.py b/module/plugins/hooks/Captcha9Kw.py index aaea232f7..0ef67e54d 100644 --- a/module/plugins/hooks/Captcha9Kw.py +++ b/module/plugins/hooks/Captcha9Kw.py @@ -14,7 +14,7 @@ from module.plugins.internal.Hook import Hook, threaded class Captcha9Kw(Hook): __name__ = "Captcha9Kw" __type__ = "hook" - __version__ = "0.29" + __version__ = "0.30" __config__ = [("check_client" , "bool" , "Don't use if client is connected" , True ), ("confirm" , "bool" , "Confirm Captcha (cost +6 credits)" , False ), @@ -42,30 +42,30 @@ class Captcha9Kw(Hook): self.info = {} #@TODO: Remove in 0.4.10 - def getCredits(self): + def get_credits(self): res = self.load(self.API_URL, - get={'apikey': self.getConfig('passkey'), + get={'apikey': self.get_config('passkey'), 'pyload': "1", 'source': "pyload", 'action': "usercaptchaguthaben"}) if res.isdigit(): - self.logInfo(_("%s credits left") % res) + self.log_info(_("%s credits left") % res) credits = self.info['credits'] = int(res) return credits else: - self.logError(res) + self.log_error(res) return 0 @threaded - def _processCaptcha(self, task): + def _process_captcha(self, task): try: with open(task.captchaFile, 'rb') as f: data = f.read() except IOError, e: - self.logError(e) + self.log_error(e) return pluginname = re.search(r'_([^_]*)_\d+.\w+', task.captchaFile).group(1) @@ -75,14 +75,14 @@ class Captcha9Kw(Hook): 'numeric' : 0, 'case_sensitive': 0, 'math' : 0, - 'prio' : min(max(self.getConfig('prio'), 0), 10), - 'confirm' : self.getConfig('confirm'), - 'timeout' : min(max(self.getConfig('timeout'), 300), 3999), - 'selfsolve' : self.getConfig('selfsolve'), - 'cph' : self.getConfig('captchaperhour'), - 'cpm' : self.getConfig('captchapermin')} + 'prio' : min(max(self.get_config('prio'), 0), 10), + 'confirm' : self.get_config('confirm'), + 'timeout' : min(max(self.get_config('timeout'), 300), 3999), + 'selfsolve' : self.get_config('selfsolve'), + 'cph' : self.get_config('captchaperhour'), + 'cpm' : self.get_config('captchapermin')} - for opt in str(self.getConfig('hoster_options').split('|')): + for opt in str(self.get_config('hoster_options').split('|')): details = map(str.strip, opt.split(':')) @@ -101,7 +101,7 @@ class Captcha9Kw(Hook): break - post_data = {'apikey' : self.getConfig('passkey'), + post_data = {'apikey' : self.get_config('passkey'), 'prio' : option['prio'], 'confirm' : option['confirm'], 'maxtimeout' : option['timeout'], @@ -131,16 +131,16 @@ class Captcha9Kw(Hook): if res and res.isdigit(): break else: - self.logError(_("Bad upload: %s") % res) + self.log_error(_("Bad upload: %s") % res) return - self.logDebug("NewCaptchaID ticket: %s" % res, task.captchaFile) + self.log_debug("NewCaptchaID ticket: %s" % res, task.captchaFile) task.data['ticket'] = res - for _i in xrange(int(self.getConfig('timeout') / 5)): + for _i in xrange(int(self.get_config('timeout') / 5)): result = self.load(self.API_URL, - get={'apikey': self.getConfig('passkey'), + get={'apikey': self.get_config('passkey'), 'id' : res, 'pyload': "1", 'info' : "1", @@ -152,10 +152,10 @@ class Captcha9Kw(Hook): else: break else: - self.logDebug("Could not send request: %s" % res) + self.log_debug("Could not send request: %s" % res) result = None - self.logInfo(_("Captcha result for ticket %s: %s") % (res, result)) + self.log_info(_("Captcha result for ticket %s: %s") % (res, result)) task.setResult(result) @@ -164,20 +164,20 @@ class Captcha9Kw(Hook): if not task.isTextual() and not task.isPositional(): return - if not self.getConfig('passkey'): + if not self.get_config('passkey'): return - if self.core.isClientConnected() and self.getConfig('check_client'): + if self.core.isClientConnected() and self.get_config('check_client'): return - credits = self.getCredits() + credits = self.get_credits() if not credits: - self.logError(_("Your captcha 9kw.eu account has not enough credits")) + self.log_error(_("Your captcha 9kw.eu account has not enough credits")) return - queue = min(self.getConfig('queue'), 999) - timeout = min(max(self.getConfig('timeout'), 300), 3999) + queue = min(self.get_config('queue'), 999) + timeout = min(max(self.get_config('timeout'), 300), 3999) pluginname = re.search(r'_([^_]*)_\d+.\w+', task.captchaFile).group(1) for _i in xrange(5): @@ -189,7 +189,7 @@ class Captcha9Kw(Hook): else: self.fail(_("Too many captchas in queue")) - for opt in str(self.getConfig('hoster_options').split('|')): + for opt in str(self.get_config('hoster_options').split('|')): details = map(str.strip, opt.split(':')) if not details or details[0].lower() != pluginname.lower(): @@ -209,17 +209,17 @@ class Captcha9Kw(Hook): task.setWaiting(timeout) - self._processCaptcha(task) + self._process_captcha(task) - def _captchaResponse(self, task, correct): + def _captcha_response(self, task, correct): type = "correct" if correct else "refund" if 'ticket' not in task.data: - self.logDebug("No CaptchaID for %s request (task: %s)" % (type, task)) + self.log_debug("No CaptchaID for %s request (task: %s)" % (type, task)) return - passkey = self.getConfig('passkey') + passkey = self.get_config('passkey') for _i in xrange(3): res = self.load(self.API_URL, @@ -231,19 +231,19 @@ class Captcha9Kw(Hook): 'source' : "pyload", 'id' : task.data['ticket']}) - self.logDebug("Request %s: %s" % (type, res)) + self.log_debug("Request %s: %s" % (type, res)) if res == "OK": break time.sleep(5) else: - self.logDebug("Could not send %s request: %s" % (type, res)) + self.log_debug("Could not send %s request: %s" % (type, res)) def captcha_correct(self, task): - self._captchaResponse(task, True) + self._captcha_response(task, True) def captcha_invalid(self, task): - self._captchaResponse(task, False) + self._captcha_response(task, False) diff --git a/module/plugins/hooks/CaptchaBrotherhood.py b/module/plugins/hooks/CaptchaBrotherhood.py index 070d92da8..b2f370f32 100644 --- a/module/plugins/hooks/CaptchaBrotherhood.py +++ b/module/plugins/hooks/CaptchaBrotherhood.py @@ -22,7 +22,7 @@ class CaptchaBrotherhoodException(Exception): self.err = err - def getCode(self): + def get_code(self): return self.err @@ -37,7 +37,7 @@ class CaptchaBrotherhoodException(Exception): class CaptchaBrotherhood(Hook): __name__ = "CaptchaBrotherhood" __type__ = "hook" - __version__ = "0.09" + __version__ = "0.10" __config__ = [("username" , "str" , "Username" , "" ), ("password" , "password", "Password" , "" ), @@ -58,14 +58,14 @@ class CaptchaBrotherhood(Hook): self.info = {} #@TODO: Remove in 0.4.10 - def getCredits(self): + def get_credits(self): res = self.load(self.API_URL + "askCredits.aspx", - get={"username": self.getConfig('username'), "password": self.getConfig('password')}) + get={"username": self.get_config('username'), "password": self.get_config('password')}) if not res.startswith("OK"): raise CaptchaBrotherhoodException(res) else: credits = int(res[3:]) - self.logInfo(_("%d credits left") % credits) + self.log_info(_("%d credits left") % credits) self.info['credits'] = credits return credits @@ -74,7 +74,7 @@ class CaptchaBrotherhood(Hook): try: img = Image.open(captcha) output = StringIO.StringIO() - self.logDebug("CAPTCHA IMAGE", img, img.format, img.mode) + self.log_debug("CAPTCHA IMAGE", img, img.format, img.mode) if img.format in ("GIF", "JPEG"): img.save(output, img.format) else: @@ -89,8 +89,8 @@ class CaptchaBrotherhood(Hook): req = getRequest() url = "%ssendNewCaptcha.aspx?%s" % (self.API_URL, - urllib.urlencode({'username' : self.getConfig('username'), - 'password' : self.getConfig('password'), + urllib.urlencode({'username' : self.get_config('username'), + 'password' : self.get_config('password'), 'captchaSource': "pyLoad", 'timeout' : "80"})) @@ -123,8 +123,8 @@ class CaptchaBrotherhood(Hook): def api_response(self, api, ticket): res = self.load("%s%s.aspx" % (self.API_URL, api), - get={"username": self.getConfig('username'), - "password": self.getConfig('password'), + get={"username": self.get_config('username'), + "password": self.get_config('password'), "captchaID": ticket}) if not res.startswith("OK"): raise CaptchaBrotherhoodException("Unknown response: %s" % res) @@ -139,19 +139,19 @@ class CaptchaBrotherhood(Hook): if not task.isTextual(): return False - if not self.getConfig('username') or not self.getConfig('password'): + if not self.get_config('username') or not self.get_config('password'): return False - if self.core.isClientConnected() and self.getConfig('check_client'): + if self.core.isClientConnected() and self.get_config('check_client'): return False - if self.getCredits() > 10: + if self.get_credits() > 10: task.handler.append(self) task.data['service'] = self.__name__ task.setWaiting(100) - self._processCaptcha(task) + self._process_captcha(task) else: - self.logInfo(_("Your CaptchaBrotherhood Account has not enough credits")) + self.log_info(_("Your CaptchaBrotherhood Account has not enough credits")) def captcha_invalid(self, task): @@ -160,7 +160,7 @@ class CaptchaBrotherhood(Hook): @threaded - def _processCaptcha(self, task): + def _process_captcha(self, task): c = task.captchaFile try: ticket, result = self.submit(c) diff --git a/module/plugins/hooks/Checksum.py b/module/plugins/hooks/Checksum.py index 409387c39..7f42347df 100644 --- a/module/plugins/hooks/Checksum.py +++ b/module/plugins/hooks/Checksum.py @@ -11,7 +11,7 @@ from module.plugins.internal.Hook import Hook from module.utils import save_join as fs_join, fs_encode -def computeChecksum(local_file, algorithm): +def compute_checksum(local_file, algorithm): if algorithm in getattr(hashlib, "algorithms", ("md5", "sha1", "sha224", "sha256", "sha384", "sha512")): h = getattr(hashlib, algorithm)() @@ -38,7 +38,7 @@ def computeChecksum(local_file, algorithm): class Checksum(Hook): __name__ = "Checksum" __type__ = "hook" - __version__ = "0.17" + __version__ = "0.18" __config__ = [("check_checksum", "bool" , "Check checksum? (If False only size will be verified)", True ), ("check_action" , "fail;retry;nothing", "What to do if check fails?" , "retry"), @@ -64,8 +64,8 @@ class Checksum(Hook): def activate(self): - if not self.getConfig('check_checksum'): - self.logInfo(_("Checksum validation is disabled in plugin configuration")) + if not self.get_config('check_checksum'): + self.log_info(_("Checksum validation is disabled in plugin configuration")) def setup(self): @@ -98,17 +98,17 @@ class Checksum(Hook): else: return - self.logDebug(data) + self.log_debug(data) if not pyfile.plugin.lastDownload: - self.checkFailed(pyfile, None, "No file downloaded") + self.check_failed(pyfile, None, "No file downloaded") local_file = fs_encode(pyfile.plugin.lastDownload) - #download_folder = self.core.config.get("general", "download_folder") - #local_file = fs_encode(fs_join(download_folder, pyfile.package().folder, pyfile.name)) + # download_folder = self.core.config.get("general", "download_folder") + # local_file = fs_encode(fs_join(download_folder, pyfile.package().folder, pyfile.name)) if not os.path.isfile(local_file): - self.checkFailed(pyfile, None, "File does not exist") + self.check_failed(pyfile, None, "File does not exist") #: validate file size if "size" in data: @@ -116,13 +116,13 @@ class Checksum(Hook): file_size = os.path.getsize(local_file) if api_size != file_size: - self.logWarning(_("File %s has incorrect size: %d B (%d expected)") % (pyfile.name, file_size, api_size)) - self.checkFailed(pyfile, local_file, "Incorrect file size") + self.log_warning(_("File %s has incorrect size: %d B (%d expected)") % (pyfile.name, file_size, api_size)) + self.check_failed(pyfile, local_file, "Incorrect file size") data.pop('size', None) #: validate checksum - if data and self.getConfig('check_checksum'): + if data and self.get_config('check_checksum'): if not 'md5' in data: for type in ("checksum", "hashsum", "hash"): @@ -135,28 +135,28 @@ class Checksum(Hook): checksum = computeChecksum(local_file, key.replace("-", "").lower()) if checksum: if checksum == data[key].lower(): - self.logInfo(_('File integrity of "%s" verified by %s checksum (%s)') % + self.log_info(_('File integrity of "%s" verified by %s checksum (%s)') % (pyfile.name, key.upper(), checksum)) break else: - self.logWarning(_("%s checksum for file %s does not match (%s != %s)") % + self.log_warning(_("%s checksum for file %s does not match (%s != %s)") % (key.upper(), pyfile.name, checksum, data[key])) - self.checkFailed(pyfile, local_file, "Checksums do not match") + self.check_failed(pyfile, local_file, "Checksums do not match") else: - self.logWarning(_("Unsupported hashing algorithm"), key.upper()) + self.log_warning(_("Unsupported hashing algorithm"), key.upper()) else: - self.logWarning(_("Unable to validate checksum for file: ") + pyfile.name) + self.log_warning(_("Unable to validate checksum for file: ") + pyfile.name) - def checkFailed(self, pyfile, local_file, msg): - check_action = self.getConfig('check_action') + def check_failed(self, pyfile, local_file, msg): + check_action = self.get_config('check_action') if check_action == "retry": - max_tries = self.getConfig('max_tries') - retry_action = self.getConfig('retry_action') + max_tries = self.get_config('max_tries') + retry_action = self.get_config('retry_action') if pyfile.plugin.retries < max_tries: if local_file: os.remove(local_file) - pyfile.plugin.retry(max_tries, self.getConfig('wait_time'), msg) + pyfile.plugin.retry(max_tries, self.get_config('wait_time'), msg) elif retry_action == "nothing": return elif check_action == "nothing": @@ -175,7 +175,7 @@ class Checksum(Hook): hash_file = fs_encode(fs_join(download_folder, link['name'])) if not os.path.isfile(hash_file): - self.logWarning(_("File not found"), link['name']) + self.log_warning(_("File not found"), link['name']) continue with open(hash_file) as f: @@ -183,14 +183,14 @@ class Checksum(Hook): for m in re.finditer(self.regexps.get(file_type, self.regexps['default']), text): data = m.groupdict() - self.logDebug(link['name'], data) + self.log_debug(link['name'], data) local_file = fs_encode(fs_join(download_folder, data['NAME'])) algorithm = self.methods.get(file_type, file_type) checksum = computeChecksum(local_file, algorithm) if checksum == data['HASH']: - self.logInfo(_('File integrity of "%s" verified by %s checksum (%s)') % + self.log_info(_('File integrity of "%s" verified by %s checksum (%s)') % (data['NAME'], algorithm, checksum)) else: - self.logWarning(_("%s checksum for file %s does not match (%s != %s)") % + self.log_warning(_("%s checksum for file %s does not match (%s != %s)") % (algorithm, data['NAME'], checksum, data['HASH'])) diff --git a/module/plugins/hooks/ClickAndLoad.py b/module/plugins/hooks/ClickAndLoad.py index b1009420a..109452105 100644 --- a/module/plugins/hooks/ClickAndLoad.py +++ b/module/plugins/hooks/ClickAndLoad.py @@ -29,7 +29,7 @@ def forward(source, destination): class ClickAndLoad(Hook): __name__ = "ClickAndLoad" __type__ = "hook" - __version__ = "0.44" + __version__ = "0.45" __config__ = [("activated", "bool", "Activated" , True), ("port" , "int" , "Port" , 9666), @@ -52,9 +52,9 @@ class ClickAndLoad(Hook): if not self.core.config.get("webinterface", "activated"): return - ip = "" if self.getConfig('extern') else "127.0.0.1" + ip = "" if self.get_config('extern') else "127.0.0.1" webport = self.core.config.get("webinterface", "port") - cnlport = self.getConfig('port') + cnlport = self.get_config('port') self.proxy(ip, webport, cnlport) @@ -63,7 +63,7 @@ class ClickAndLoad(Hook): def proxy(self, ip, webport, cnlport): time.sleep(10) #@TODO: Remove in 0.4.10 (implement addon delay on startup) - self.logInfo(_("Proxy listening on %s:%s") % (ip or "0.0.0.0", cnlport)) + self.log_info(_("Proxy listening on %s:%s") % (ip or "0.0.0.0", cnlport)) self._server(ip, webport, cnlport) @@ -81,7 +81,7 @@ class ClickAndLoad(Hook): while True: client_socket, client_addr = dock_socket.accept() - self.logDebug("Connection from %s:%s" % client_addr) + self.log_debug("Connection from %s:%s" % client_addr) server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) @@ -90,12 +90,12 @@ class ClickAndLoad(Hook): server_socket = ssl.wrap_socket(server_socket) except NameError: - self.logError(_("pyLoad's webinterface is configured to use HTTPS, Please install python's ssl lib or disable HTTPS")) + self.log_error(_("pyLoad's webinterface is configured to use HTTPS, Please install python's ssl lib or disable HTTPS")) client_socket.close() #: reset the connection. continue except Exception, e: - self.logError(_("SSL error: %s") % e.message) + self.log_error(_("SSL error: %s") % e.message) client_socket.close() #: reset the connection. continue @@ -105,10 +105,10 @@ class ClickAndLoad(Hook): self.manager.startThread(forward, server_socket, client_socket) except socket.timeout: - self.logDebug("Connection timed out, retrying...") + self.log_debug("Connection timed out, retrying...") return self._server(ip, webport, cnlport) except socket.error, e: - self.logError(e) + self.log_error(e) time.sleep(240) return self._server(ip, webport, cnlport) diff --git a/module/plugins/hooks/DeathByCaptcha.py b/module/plugins/hooks/DeathByCaptcha.py index e0b319e12..ec2554a8f 100644 --- a/module/plugins/hooks/DeathByCaptcha.py +++ b/module/plugins/hooks/DeathByCaptcha.py @@ -29,11 +29,11 @@ class DeathByCaptchaException(Exception): self.err = err - def getCode(self): + def get_code(self): return self.err - def getDesc(self): + def get_desc(self): if self.err in self.DBC_ERRORS.keys(): return self.DBC_ERRORS[self.err] else: @@ -51,7 +51,7 @@ class DeathByCaptchaException(Exception): class DeathByCaptcha(Hook): __name__ = "DeathByCaptcha" __type__ = "hook" - __version__ = "0.07" + __version__ = "0.08" __config__ = [("username" , "str" , "Username" , "" ), ("password" , "password", "Password" , "" ), @@ -79,8 +79,8 @@ class DeathByCaptcha(Hook): if post: if not isinstance(post, dict): post = {} - post.update({"username": self.getConfig('username'), - "password": self.getConfig('password')}) + post.update({"username": self.get_config('username'), + "password": self.get_config('password')}) res = None try: @@ -89,7 +89,7 @@ class DeathByCaptcha(Hook): multipart=multipart, req=req) - self.logDebug(json) + self.log_debug(json) res = json_loads(json) if "error" in res: @@ -115,7 +115,7 @@ class DeathByCaptcha(Hook): return res - def getCredits(self): + def get_credits(self): res = self.api_response("user", True) if 'is_banned' in res and res['is_banned']: @@ -126,7 +126,7 @@ class DeathByCaptcha(Hook): raise DeathByCaptchaException(res) - def getStatus(self): + def get_status(self): res = self.api_response("status", False) if 'is_service_overloaded' in res and res['is_service_overloaded']: @@ -135,7 +135,7 @@ class DeathByCaptcha(Hook): def submit(self, captcha, captchaType="file", match=None): #@NOTE: Workaround multipart-post bug in HTTPRequest.py - if re.match("^\w*$", self.getConfig('password')): + if re.match("^\w*$", self.get_config('password')): multipart = True data = (pycurl.FORM_FILE, captcha) else: @@ -159,7 +159,7 @@ class DeathByCaptcha(Hook): raise DeathByCaptchaException('timed-out') result = res['text'] - self.logDebug("Result %s : %s" % (ticket, result)) + self.log_debug("Result %s : %s" % (ticket, result)) return ticket, result @@ -171,21 +171,21 @@ class DeathByCaptcha(Hook): if not task.isTextual(): return False - if not self.getConfig('username') or not self.getConfig('password'): + if not self.get_config('username') or not self.get_config('password'): return False - if self.core.isClientConnected() and self.getConfig('check_client'): + if self.core.isClientConnected() and self.get_config('check_client'): return False try: - self.getStatus() - self.getCredits() + self.get_status() + self.get_credits() except DeathByCaptchaException, e: - self.logError(e.getDesc()) + self.log_error(e.getDesc()) return False balance, rate = self.info['balance'], self.info['rate'] - self.logInfo(_("Account balance"), + self.log_info(_("Account balance"), _("US$%.3f (%d captchas left at %.2f cents each)") % (balance / 100, balance // rate, rate)) @@ -193,7 +193,7 @@ class DeathByCaptcha(Hook): task.handler.append(self) task.data['service'] = self.__name__ task.setWaiting(180) - self._processCaptcha(task) + self._process_captcha(task) def captcha_invalid(self, task): @@ -202,20 +202,20 @@ class DeathByCaptcha(Hook): res = self.api_response("captcha/%d/report" % task.data['ticket'], True) except DeathByCaptchaException, e: - self.logError(e.getDesc()) + self.log_error(e.getDesc()) except Exception, e: - self.logError(e) + self.log_error(e) @threaded - def _processCaptcha(self, task): + def _process_captcha(self, task): c = task.captchaFile try: ticket, result = self.submit(c) except DeathByCaptchaException, e: task.error = e.getCode() - self.logError(e.getDesc()) + self.log_error(e.getDesc()) return task.data['ticket'] = ticket diff --git a/module/plugins/hooks/DebridItaliaComHook.py b/module/plugins/hooks/DebridItaliaComHook.py index b7cf78a5d..9f7499783 100644 --- a/module/plugins/hooks/DebridItaliaComHook.py +++ b/module/plugins/hooks/DebridItaliaComHook.py @@ -8,7 +8,7 @@ from module.plugins.internal.MultiHook import MultiHook class DebridItaliaComHook(MultiHook): __name__ = "DebridItaliaComHook" __type__ = "hook" - __version__ = "0.12" + __version__ = "0.13" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -21,5 +21,5 @@ class DebridItaliaComHook(MultiHook): ("Walter Purcaro", "vuolter@gmail.com" )] - def getHosters(self): + def get_hosters(self): return self.load("http://debriditalia.com/api.php", get={'hosts': ""}).replace('"', '').split(',') diff --git a/module/plugins/hooks/DeleteFinished.py b/module/plugins/hooks/DeleteFinished.py index a65e61547..ec708eb10 100644 --- a/module/plugins/hooks/DeleteFinished.py +++ b/module/plugins/hooks/DeleteFinished.py @@ -7,7 +7,7 @@ from module.plugins.internal.Hook import Hook class DeleteFinished(Hook): __name__ = "DeleteFinished" __type__ = "hook" - __version__ = "1.13" + __version__ = "1.14" __config__ = [("interval" , "int" , "Check interval in hours" , 72 ), ("deloffline", "bool", "Delete package with offline links", False)] @@ -23,25 +23,25 @@ class DeleteFinished(Hook): ## overwritten methods ## def setup(self): self.info = {} #@TODO: Remove in 0.4.10 - #: self.event_list = ["pluginConfigChanged"] + # self.event_map = {'pluginConfigChanged': "plugin_config_changed"} self.interval = self.MIN_CHECK_INTERVAL def periodical(self): if not self.info['sleep']: - deloffline = self.getConfig('deloffline') + deloffline = self.get_config('deloffline') mode = "0,1,4" if deloffline else "0,4" msg = _('delete all finished packages in queue list (%s packages with offline links)') - self.logInfo(msg % (_('including') if deloffline else _('excluding'))) - self.deleteFinished(mode) + self.log_info(msg % (_('including') if deloffline else _('excluding'))) + self.delete_finished(mode) self.info['sleep'] = True - self.addEvent('package_finished', self.wakeup) + self.add_event('package_finished', self.wakeup) - #: def pluginConfigChanged(self, plugin, name, value): - #: if name == "interval" and value != self.interval: - #: self.interval = value * 3600 - #: self.init_periodical() + # def plugin_config_changed(self, plugin, name, value): + # if name == "interval" and value != self.interval: + # self.interval = value * 3600 + # self.init_periodical() def deactivate(self): @@ -50,15 +50,15 @@ class DeleteFinished(Hook): def activate(self): self.info['sleep'] = True - #: interval = self.getConfig('interval') - #: self.pluginConfigChanged(self.__name__, 'interval', interval) - self.interval = max(self.MIN_CHECK_INTERVAL, self.getConfig('interval') * 60 * 60) - self.addEvent('package_finished', self.wakeup) + #: interval = self.get_config('interval') + #: self.plugin_config_changed(self.__name__, 'interval', interval) + self.interval = max(self.MIN_CHECK_INTERVAL, self.get_config('interval') * 60 * 60) + self.add_event('package_finished', self.wakeup) ## own methods ## @style.queue - def deleteFinished(self, mode): + def delete_finished(self, mode): self.c.execute('DELETE FROM packages WHERE NOT EXISTS(SELECT 1 FROM links WHERE package=packages.id AND status NOT IN (%s))' % mode) self.c.execute('DELETE FROM links WHERE NOT EXISTS(SELECT 1 FROM packages WHERE id=links.package)') @@ -69,13 +69,13 @@ class DeleteFinished(Hook): ## event managing ## - def addEvent(self, event, func): + def add_event(self, event, func): """ Adds an event listener for event name """ if event in self.manager.events: if func in self.manager.events[event]: - self.logDebug("Function already registered", func) + self.log_debug("Function already registered", func) else: self.manager.events[event].append(func) else: diff --git a/module/plugins/hooks/DownloadScheduler.py b/module/plugins/hooks/DownloadScheduler.py index aa0ccbbab..e4b09f049 100644 --- a/module/plugins/hooks/DownloadScheduler.py +++ b/module/plugins/hooks/DownloadScheduler.py @@ -9,7 +9,7 @@ from module.plugins.internal.Hook import Hook class DownloadScheduler(Hook): __name__ = "DownloadScheduler" __type__ = "hook" - __version__ = "0.23" + __version__ = "0.24" __config__ = [("timetable", "str" , "List time periods as hh:mm full or number(kB/s)" , "0:00 full, 7:00 250, 10:00 0, 17:00 150"), ("abort" , "bool", "Abort active downloads when start period with speed 0", False )] @@ -29,41 +29,41 @@ class DownloadScheduler(Hook): def activate(self): - self.updateSchedule() + self.update_schedule() - def updateSchedule(self, schedule=None): + def update_schedule(self, schedule=None): if schedule is None: - schedule = self.getConfig('timetable') + schedule = self.get_config('timetable') schedule = re.findall("(\d{1,2}):(\d{2})[\s]*(-?\d+)", schedule.lower().replace("full", "-1").replace("none", "0")) if not schedule: - self.logError(_("Invalid schedule")) + self.log_error(_("Invalid schedule")) return t0 = time.localtime() now = (t0.tm_hour, t0.tm_min, t0.tm_sec, "X") schedule = sorted([(int(x[0]), int(x[1]), 0, int(x[2])) for x in schedule] + [now]) - self.logDebug("Schedule", schedule) + self.log_debug("Schedule", schedule) for i, v in enumerate(schedule): if v[3] == "X": last, next = schedule[i - 1], schedule[(i + 1) % len(schedule)] - self.logDebug("Now/Last/Next", now, last, next) + self.log_debug("Now/Last/Next", now, last, next) - self.setDownloadSpeed(last[3]) + self.set_download_speed(last[3]) next_time = (((24 + next[0] - now[0]) * 60 + next[1] - now[1]) * 60 + next[2] - now[2]) % 86400 self.core.scheduler.removeJob(self.cb) - self.cb = self.core.scheduler.addJob(next_time, self.updateSchedule, threaded=False) + self.cb = self.core.scheduler.addJob(next_time, self.update_schedule, threaded=False) - def setDownloadSpeed(self, speed): + def set_download_speed(self, speed): if speed == 0: - abort = self.getConfig('abort') - self.logInfo(_("Stopping download server. (Running downloads will %sbe aborted.)") % '' if abort else _('not ')) + abort = self.get_config('abort') + self.log_info(_("Stopping download server. (Running downloads will %sbe aborted.)") % '' if abort else _('not ')) self.core.api.pauseServer() if abort: self.core.api.stopAllDownloads() @@ -71,10 +71,10 @@ class DownloadScheduler(Hook): self.core.api.unpauseServer() if speed > 0: - self.logInfo(_("Setting download speed to %d kB/s") % speed) + self.log_info(_("Setting download speed to %d kB/s") % speed) self.core.api.setConfigValue("download", "limit_speed", 1) self.core.api.setConfigValue("download", "max_speed", speed) else: - self.logInfo(_("Setting download speed to FULL")) + self.log_info(_("Setting download speed to FULL")) self.core.api.setConfigValue("download", "limit_speed", 0) self.core.api.setConfigValue("download", "max_speed", -1) diff --git a/module/plugins/hooks/EasybytezComHook.py b/module/plugins/hooks/EasybytezComHook.py index 027081f25..e4374d37c 100644 --- a/module/plugins/hooks/EasybytezComHook.py +++ b/module/plugins/hooks/EasybytezComHook.py @@ -8,7 +8,7 @@ from module.plugins.internal.MultiHook import MultiHook class EasybytezComHook(MultiHook): __name__ = "EasybytezComHook" __type__ = "hook" - __version__ = "0.07" + __version__ = "0.08" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -20,7 +20,7 @@ class EasybytezComHook(MultiHook): __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - def getHosters(self): + def get_hosters(self): user, data = self.account.selectAccount() req = self.account.getAccountRequest(user) diff --git a/module/plugins/hooks/ExpertDecoders.py b/module/plugins/hooks/ExpertDecoders.py index 63cee2379..6ec1f8bf1 100644 --- a/module/plugins/hooks/ExpertDecoders.py +++ b/module/plugins/hooks/ExpertDecoders.py @@ -15,7 +15,7 @@ from module.plugins.internal.Hook import Hook, threaded class ExpertDecoders(Hook): __name__ = "ExpertDecoders" __type__ = "hook" - __version__ = "0.05" + __version__ = "0.06" __config__ = [("passkey" , "password", "Access key" , "" ), ("check_client", "bool" , "Don't use if client is connected", True)] @@ -35,20 +35,20 @@ class ExpertDecoders(Hook): self.info = {} #@TODO: Remove in 0.4.10 - def getCredits(self): - res = self.load(self.API_URL, post={"key": self.getConfig('passkey'), "action": "balance"}) + def get_credits(self): + res = self.load(self.API_URL, post={"key": self.get_config('passkey'), "action": "balance"}) if res.isdigit(): - self.logInfo(_("%s credits left") % res) + self.log_info(_("%s credits left") % res) self.info['credits'] = credits = int(res) return credits else: - self.logError(res) + self.log_error(res) return 0 @threaded - def _processCaptcha(self, task): + def _process_captcha(self, task): task.data['ticket'] = ticket = uuid.uuid4() result = None @@ -56,20 +56,20 @@ class ExpertDecoders(Hook): data = f.read() req = getRequest() - #raise timeout threshold + # raise timeout threshold req.c.setopt(pycurl.LOW_SPEED_TIME, 80) try: result = self.load(self.API_URL, post={'action' : "upload", - 'key' : self.getConfig('passkey'), + 'key' : self.get_config('passkey'), 'file' : b64encode(data), 'gen_task_id': ticket}, req=req) finally: req.close() - self.logDebug("Result %s : %s" % (ticket, result)) + self.log_debug("Result %s : %s" % (ticket, result)) task.setResult(result) @@ -77,19 +77,19 @@ class ExpertDecoders(Hook): if not task.isTextual(): return False - if not self.getConfig('passkey'): + if not self.get_config('passkey'): return False - if self.core.isClientConnected() and self.getConfig('check_client'): + if self.core.isClientConnected() and self.get_config('check_client'): return False - if self.getCredits() > 0: + if self.get_credits() > 0: task.handler.append(self) task.setWaiting(100) - self._processCaptcha(task) + self._process_captcha(task) else: - self.logInfo(_("Your ExpertDecoders Account has not enough credits")) + self.log_info(_("Your ExpertDecoders Account has not enough credits")) def captcha_invalid(self, task): @@ -97,8 +97,8 @@ class ExpertDecoders(Hook): try: res = self.load(self.API_URL, - post={'action': "refund", 'key': self.getConfig('passkey'), 'gen_task_id': task.data['ticket']}) - self.logInfo(_("Request refund"), res) + post={'action': "refund", 'key': self.get_config('passkey'), 'gen_task_id': task.data['ticket']}) + self.log_info(_("Request refund"), res) except BadHeader, e: - self.logError(_("Could not send refund request"), e) + self.log_error(_("Could not send refund request"), e) diff --git a/module/plugins/hooks/ExternalScripts.py b/module/plugins/hooks/ExternalScripts.py index 29b43929e..6bf3cf347 100644 --- a/module/plugins/hooks/ExternalScripts.py +++ b/module/plugins/hooks/ExternalScripts.py @@ -10,7 +10,7 @@ from module.utils import fs_encode, save_join as fs_join class ExternalScripts(Hook): __name__ = "ExternalScripts" __type__ = "hook" - __version__ = "0.42" + __version__ = "0.43" __config__ = [("activated", "bool", "Activated" , True ), ("waitend" , "bool", "Wait script ending", False)] @@ -32,9 +32,10 @@ class ExternalScripts(Hook): self.event_list = ["archive_extract_failed", "archive_extracted" , "package_extract_failed", "package_extracted" , - "all_archives_extracted", "all_archives_processed", - "allDownloadsFinished" , "allDownloadsProcessed" , - "packageDeleted"] + "all_archives_extracted", "all_archives_processed"] + self.event_map = {'allDownloadsFinished' : "all_downloads_finished" , + 'allDownloadsProcessed': "all_downloads_processed", + 'packageDeleted' : "package_deleted" } folders = ["pyload_start", "pyload_restart", "pyload_stop", "before_reconnect", "after_reconnect", @@ -47,22 +48,22 @@ class ExternalScripts(Hook): for folder in folders: self.scripts[folder] = [] for dir in (pypath, ''): - self.initPluginType(folder, os.path.join(dir, 'scripts', folder)) + self.init_plugin_type(folder, os.path.join(dir, 'scripts', folder)) for script_type, names in self.scripts.iteritems(): if names: - self.logInfo(_("Installed scripts for: ") + script_type, ", ".join(map(os.path.basename, names))) + self.log_info(_("Installed scripts for: ") + script_type, ", ".join(map(os.path.basename, names))) self.pyload_start() - def initPluginType(self, name, dir): + def init_plugin_type(self, name, dir): if not os.path.isdir(dir): try: os.makedirs(dir) except OSError, e: - self.logDebug(e) + self.log_debug(e) return for filename in os.listdir(dir): @@ -75,54 +76,54 @@ class ExternalScripts(Hook): continue if not os.access(file, os.X_OK): - self.logWarning(_("Script not executable:") + " %s/%s" % (name, filename)) + self.log_warning(_("Script not executable:") + " %s/%s" % (name, filename)) self.scripts[name].append(file) - def callScript(self, script, *args): + def call_script(self, script, *args): try: cmd_args = (fs_encode(x) if isinstande(x, basestring) else str(x) for x in args) #@NOTE: `fs_encode` -> `encode` in 0.4.10 - self.logDebug("Executing: %s" % os.path.abspath(script), "Args: " + ' '.join(cmd_args)) + self.log_debug("Executing: %s" % os.path.abspath(script), "Args: " + ' '.join(cmd_args)) cmd = (script,) + cmd_args p = subprocess.Popen(cmd, bufsize=-1) #@NOTE: output goes to pyload - if self.getConfig('waitend'): + if self.get_config('waitend'): p.communicate() except Exception, e: try: - self.logError(_("Runtime error: %s") % os.path.abspath(script), e) + self.log_error(_("Runtime error: %s") % os.path.abspath(script), e) except Exception: - self.logError(_("Runtime error: %s") % os.path.abspath(script), _("Unknown error")) + self.log_error(_("Runtime error: %s") % os.path.abspath(script), _("Unknown error")) def pyload_start(self): for script in self.scripts['pyload_start']: - self.callScript(script) + self.call_script(script) def exit(self): for script in self.scripts['pyload_restart' if self.core.do_restart else 'pyload_stop']: - self.callScript(script) + self.call_script(script) def before_reconnect(self, ip): for script in self.scripts['before_reconnect']: - self.callScript(script, ip) + self.call_script(script, ip) self.info['oldip'] = ip def after_reconnect(self, ip): for script in self.scripts['after_reconnect']: - self.callScript(script, ip, self.info['oldip']) #@TODO: Use built-in oldip in 0.4.10 + self.call_script(script, ip, self.info['oldip']) #@TODO: Use built-in oldip in 0.4.10 def download_preparing(self, pyfile): for script in self.scripts['download_preparing']: - self.callScript(script, pyfile.id, pyfile.name, None, pyfile.pluginname, pyfile.url) + self.call_script(script, pyfile.id, pyfile.name, None, pyfile.pluginname, pyfile.url) def download_failed(self, pyfile): @@ -133,7 +134,7 @@ class ExternalScripts(Hook): for script in self.scripts['download_failed']: file = fs_join(download_folder, pyfile.name) - self.callScript(script, pyfile.id, pyfile.name, file, pyfile.pluginname, pyfile.url) + self.call_script(script, pyfile.id, pyfile.name, file, pyfile.pluginname, pyfile.url) def download_finished(self, pyfile): @@ -144,17 +145,17 @@ class ExternalScripts(Hook): for script in self.scripts['download_finished']: file = fs_join(download_folder, pyfile.name) - self.callScript(script, pyfile.id, pyfile.name, file, pyfile.pluginname, pyfile.url) + self.call_script(script, pyfile.id, pyfile.name, file, pyfile.pluginname, pyfile.url) def archive_extract_failed(self, pyfile, archive): for script in self.scripts['archive_extract_failed']: - self.callScript(script, pyfile.id, pyfile.name, archive.filename, archive.out, archive.files) + self.call_script(script, pyfile.id, pyfile.name, archive.filename, archive.out, archive.files) def archive_extracted(self, pyfile, archive): for script in self.scripts['archive_extracted']: - self.callScript(script, pyfile.id, pyfile.name, archive.filename, archive.out, archive.files) + self.call_script(script, pyfile.id, pyfile.name, archive.filename, archive.out, archive.files) def package_finished(self, pypack): @@ -164,10 +165,10 @@ class ExternalScripts(Hook): download_folder = self.core.config.get("general", "download_folder") for script in self.scripts['package_finished']: - self.callScript(script, pypack.id, pypack.name, download_folder, pypack.password) + self.call_script(script, pypack.id, pypack.name, download_folder, pypack.password) - def packageDeleted(self, pid): + def package_deleted(self, pid): pack = self.core.api.getPackageInfo(pid) if self.core.config.get("general", "folder_per_package"): @@ -176,7 +177,7 @@ class ExternalScripts(Hook): download_folder = self.core.config.get("general", "download_folder") for script in self.scripts['package_deleted']: - self.callScript(script, pack.id, pack.name, download_folder, pack.password) + self.call_script(script, pack.id, pack.name, download_folder, pack.password) def package_extract_failed(self, pypack): @@ -186,7 +187,7 @@ class ExternalScripts(Hook): download_folder = self.core.config.get("general", "download_folder") for script in self.scripts['package_extract_failed']: - self.callScript(script, pypack.id, pypack.name, download_folder, pypack.password) + self.call_script(script, pypack.id, pypack.name, download_folder, pypack.password) def package_extracted(self, pypack): @@ -196,24 +197,24 @@ class ExternalScripts(Hook): download_folder = self.core.config.get("general", "download_folder") for script in self.scripts['package_extracted']: - self.callScript(script, pypack.id, pypack.name, download_folder) + self.call_script(script, pypack.id, pypack.name, download_folder) - def allDownloadsFinished(self): + def all_downloads_finished(self): for script in self.scripts['all_downloads_finished']: - self.callScript(script) + self.call_script(script) - def allDownloadsProcessed(self): + def all_downloads_processed(self): for script in self.scripts['all_downloads_processed']: - self.callScript(script) + self.call_script(script) def all_archives_extracted(self): for script in self.scripts['all_archives_extracted']: - self.callScript(script) + self.call_script(script) def all_archives_processed(self): for script in self.scripts['all_archives_processed']: - self.callScript(script) + self.call_script(script) diff --git a/module/plugins/hooks/ExtractArchive.py b/module/plugins/hooks/ExtractArchive.py index 925976bc6..73782ed95 100644 --- a/module/plugins/hooks/ExtractArchive.py +++ b/module/plugins/hooks/ExtractArchive.py @@ -70,7 +70,7 @@ class ArchiveQueue(object): def get(self): try: - return [int(pid) for pid in self.plugin.getStorage("ExtractArchive:%s" % self.storage, "").decode('base64').split()] + return [int(pid) for pid in self.plugin.retrieve("ExtractArchive:%s" % self.storage, "").decode('base64').split()] except Exception: return [] @@ -80,11 +80,11 @@ class ArchiveQueue(object): item = str(value)[1:-1].replace(' ', '').replace(',', ' ') else: item = str(value).strip() - return self.plugin.setStorage("ExtractArchive:%s" % self.storage, item.encode('base64')[:-1]) + return self.plugin.store("ExtractArchive:%s" % self.storage, item.encode('base64')[:-1]) def delete(self): - return self.plugin.delStorage("ExtractArchive:%s" % self.storage) + return self.plugin.delete("ExtractArchive:%s" % self.storage) def add(self, item): @@ -112,7 +112,7 @@ class ArchiveQueue(object): class ExtractArchive(Hook): __name__ = "ExtractArchive" __type__ = "hook" - __version__ = "1.45" + __version__ = "1.46" __config__ = [("activated" , "bool" , "Activated" , True ), ("fullpath" , "bool" , "Extract with full paths" , True ), @@ -143,14 +143,15 @@ class ExtractArchive(Hook): def setup(self): self.info = {} #@TODO: Remove in 0.4.10 - self.event_list = ["allDownloadsProcessed","packageDeleted"] + self.event_map = {'allDownloadsProcessed': "all_downloads_processed", + 'packageDeleted' : "package_deleted" } self.queue = ArchiveQueue(self, "Queue") self.failed = ArchiveQueue(self, "Failed") self.interval = 60 self.extracting = False - self.lastPackage = False + self.last_package = False self.extractors = [] self.passwords = [] self.repair = False @@ -164,30 +165,30 @@ class ExtractArchive(Hook): if klass.isUsable(): self.extractors.append(klass) if klass.REPAIR: - self.repair = self.getConfig('repair') + self.repair = self.get_config('repair') except OSError, e: if e.errno == 2: - self.logWarning(_("No %s installed") % p) + self.log_warning(_("No %s installed") % p) else: - self.logWarning(_("Could not activate: %s") % p, e) + self.log_warning(_("Could not activate: %s") % p, e) if self.core.debug: traceback.print_exc() except Exception, e: - self.logWarning(_("Could not activate: %s") % p, e) + self.log_warning(_("Could not activate: %s") % p, e) if self.core.debug: traceback.print_exc() if self.extractors: - self.logDebug(*["Found %s %s" % (Extractor.__name__, Extractor.VERSION) for Extractor in self.extractors]) - self.extractQueued() #: Resume unfinished extractions + self.log_debug(*["Found %s %s" % (Extractor.__name__, Extractor.VERSION) for Extractor in self.extractors]) + self.extract_queued() #: Resume unfinished extractions else: - self.logInfo(_("No Extract plugins activated")) + self.log_info(_("No Extract plugins activated")) @threaded - def extractQueued(self, thread): + def extract_queued(self, thread): if self.extracting: #@NOTE: doing the check here for safty (called by coreReady) return @@ -195,8 +196,8 @@ class ExtractArchive(Hook): packages = self.queue.get() while packages: - if self.lastPackage: #: called from allDownloadsProcessed - self.lastPackage = False + if self.last_package: #: called from allDownloadsProcessed + self.last_package = False if self.extract(packages, thread): #@NOTE: check only if all gone fine, no failed reporting for now self.manager.dispatchEvent("all_archives_extracted") self.manager.dispatchEvent("all_archives_processed") @@ -210,30 +211,30 @@ class ExtractArchive(Hook): @Expose - def extractPackage(self, *ids): + def extract_package(self, *ids): """ Extract packages with given id """ for id in ids: self.queue.add(id) - if not self.getConfig('waitall') and not self.extracting: - self.extractQueued() + if not self.get_config('waitall') and not self.extracting: + self.extract_queued() - def packageDeleted(self, pid): + def package_deleted(self, pid): self.queue.remove(pid) def package_finished(self, pypack): self.queue.add(pypack.id) - if not self.getConfig('waitall') and not self.extracting: - self.extractQueued() + if not self.get_config('waitall') and not self.extracting: + self.extract_queued() - def allDownloadsProcessed(self): - self.lastPackage = True - if self.getConfig('waitall') and not self.extracting: - self.extractQueued() + def all_downloads_processed(self): + self.last_package = True + if self.get_config('waitall') and not self.extracting: + self.extract_queued() @Expose @@ -247,23 +248,23 @@ class ExtractArchive(Hook): toList = lambda string: string.replace(' ', '').replace(',', '|').replace(';', '|').split('|') - destination = self.getConfig('destination') - subfolder = self.getConfig('subfolder') - fullpath = self.getConfig('fullpath') - overwrite = self.getConfig('overwrite') - renice = self.getConfig('renice') - recursive = self.getConfig('recursive') - delete = self.getConfig('delete') - keepbroken = self.getConfig('keepbroken') + destination = self.get_config('destination') + subfolder = self.get_config('subfolder') + fullpath = self.get_config('fullpath') + overwrite = self.get_config('overwrite') + renice = self.get_config('renice') + recursive = self.get_config('recursive') + delete = self.get_config('delete') + keepbroken = self.get_config('keepbroken') - extensions = [x.lstrip('.').lower() for x in toList(self.getConfig('extensions'))] - excludefiles = toList(self.getConfig('excludefiles')) + extensions = [x.lstrip('.').lower() for x in toList(self.get_config('extensions'))] + excludefiles = toList(self.get_config('excludefiles')) if extensions: - self.logDebug("Use for extensions: %s" % "|.".join(extensions)) + self.log_debug("Use for extensions: %s" % "|.".join(extensions)) #: reload from txt file - self.reloadPasswords() + self.reload_passwords() download_folder = self.core.config.get("general", "download_folder") @@ -275,7 +276,7 @@ class ExtractArchive(Hook): self.queue.remove(pid) continue - self.logInfo(_("Check package: %s") % pypack.name) + self.log_info(_("Check package: %s") % pypack.name) #: determine output folder out = fs_join(download_folder, pypack.folder, destination, "") #: force trailing slash @@ -302,17 +303,17 @@ class ExtractArchive(Hook): for Extractor in self.extractors: targets = Extractor.getTargets(files_ids) if targets: - self.logDebug("Targets for %s: %s" % (Extractor.__name__, targets)) + self.log_debug("Targets for %s: %s" % (Extractor.__name__, targets)) matched = True for fname, fid, fout in targets: name = os.path.basename(fname) if not os.path.exists(fname): - self.logDebug(name, "File not found") + self.log_debug(name, "File not found") continue - self.logInfo(name, _("Extract to: %s") % fout) + self.log_info(name, _("Extract to: %s") % fout) try: pyfile = self.core.files.getFile(fid) archive = Extractor(self, @@ -337,20 +338,20 @@ class ExtractArchive(Hook): thread.finishFile(pyfile) except Exception, e: - self.logError(name, e) + self.log_error(name, e) success = False continue #: remove processed file and related multiparts from list files_ids = [(fname, fid, fout) for fname, fid, fout in files_ids \ if fname not in archive.getDeleteFiles()] - self.logDebug("Extracted files: %s" % new_files) - self.setPermissions(new_files) + self.log_debug("Extracted files: %s" % new_files) + self.set_permissions(new_files) for filename in new_files: file = fs_encode(fs_join(os.path.dirname(archive.filename), filename)) if not os.path.exists(file): - self.logDebug("New file %s does not exists" % filename) + self.log_debug("New file %s does not exists" % filename) continue if recursive and os.path.isfile(file): @@ -371,7 +372,7 @@ class ExtractArchive(Hook): self.failed.add(pid) else: - self.logInfo(_("No files found to extract")) + self.log_info(_("No files found to extract")) if not matched or not success and subfolder: try: @@ -392,44 +393,44 @@ class ExtractArchive(Hook): encrypted = False try: - self.logDebug("Password: %s" % (password or "None provided")) - passwords = uniqify([password] + self.getPasswords(False)) if self.getConfig('usepasswordfile') else [password] + self.log_debug("Password: %s" % (password or "None provided")) + passwords = uniqify([password] + self.get_passwords(False)) if self.get_config('usepasswordfile') else [password] for pw in passwords: try: - if self.getConfig('test') or self.repair: + if self.get_config('test') or self.repair: pyfile.setCustomStatus(_("archive testing")) if pw: - self.logDebug("Testing with password: %s" % pw) + self.log_debug("Testing with password: %s" % pw) pyfile.setProgress(0) archive.verify(pw) pyfile.setProgress(100) else: archive.check(pw) - self.addPassword(pw) + self.add_password(pw) break except PasswordError: if not encrypted: - self.logInfo(name, _("Password protected")) + self.log_info(name, _("Password protected")) encrypted = True except CRCError, e: - self.logDebug(name, e) - self.logInfo(name, _("CRC Error")) + self.log_debug(name, e) + self.log_info(name, _("CRC Error")) if self.repair: - self.logWarning(name, _("Repairing...")) + self.log_warning(name, _("Repairing...")) pyfile.setCustomStatus(_("archive repairing")) pyfile.setProgress(0) repaired = archive.repair() pyfile.setProgress(100) - if not repaired and not self.getConfig('keepbroken'): + if not repaired and not self.get_config('keepbroken'): raise CRCError("Archive damaged") - self.addPassword(pw) + self.add_password(pw) break raise CRCError("Archive damaged") @@ -440,20 +441,20 @@ class ExtractArchive(Hook): pyfile.setCustomStatus(_("extracting")) pyfile.setProgress(0) - if not encrypted or not self.getConfig('usepasswordfile'): - self.logDebug("Extracting using password: %s" % (password or "None")) + if not encrypted or not self.get_config('usepasswordfile'): + self.log_debug("Extracting using password: %s" % (password or "None")) archive.extract(password) else: - for pw in filter(None, uniqify([password] + self.getPasswords(False))): + for pw in filter(None, uniqify([password] + self.get_passwords(False))): try: - self.logDebug("Extracting using password: %s" % pw) + self.log_debug("Extracting using password: %s" % pw) archive.extract(pw) - self.addPassword(pw) + self.add_password(pw) break except PasswordError: - self.logDebug("Password was wrong") + self.log_debug("Password was wrong") else: raise PasswordError @@ -461,12 +462,12 @@ class ExtractArchive(Hook): pyfile.setStatus("processing") delfiles = archive.getDeleteFiles() - self.logDebug("Would delete: " + ", ".join(delfiles)) + self.log_debug("Would delete: " + ", ".join(delfiles)) - if self.getConfig('delete'): - self.logInfo(_("Deleting %s files") % len(delfiles)) + if self.get_config('delete'): + self.log_info(_("Deleting %s files") % len(delfiles)) - deltotrash = self.getConfig('deltotrash') + deltotrash = self.get_config('deltotrash') for f in delfiles: file = fs_encode(f) if not os.path.exists(file): @@ -480,30 +481,30 @@ class ExtractArchive(Hook): send2trash.send2trash(file) except NameError: - self.logWarning(_("Unable to move %s to trash: Send2Trash lib not found") % os.path.basename(f)) + self.log_warning(_("Unable to move %s to trash: Send2Trash lib not found") % os.path.basename(f)) except Exception, e: - self.logWarning(_("Unable to move %s to trash: %s") % (os.path.basename(f), e.message)) + self.log_warning(_("Unable to move %s to trash: %s") % (os.path.basename(f), e.message)) else: - self.logDebug("Successfully moved %s to trash" % os.path.basename(f)) + self.log_debug("Successfully moved %s to trash" % os.path.basename(f)) - self.logInfo(name, _("Extracting finished")) + self.log_info(name, _("Extracting finished")) extracted_files = archive.files or archive.list() return extracted_files except PasswordError: - self.logError(name, _("Wrong password" if password else "No password found")) + self.log_error(name, _("Wrong password" if password else "No password found")) except CRCError, e: - self.logError(name, _("CRC mismatch"), e) + self.log_error(name, _("CRC mismatch"), e) except ArchiveError, e: - self.logError(name, _("Archive error"), e) + self.log_error(name, _("Archive error"), e) except Exception, e: - self.logError(name, _("Unknown error"), e) + self.log_error(name, _("Unknown error"), e) if self.core.debug: traceback.print_exc() @@ -513,50 +514,50 @@ class ExtractArchive(Hook): @Expose - def getPasswords(self, reload=True): + def get_passwords(self, reload=True): """ List of saved passwords """ if reload: - self.reloadPasswords() + self.reload_passwords() return self.passwords - def reloadPasswords(self): + def reload_passwords(self): try: passwords = [] - file = fs_encode(self.getConfig('passwordfile')) + file = fs_encode(self.get_config('passwordfile')) with open(file) as f: for pw in f.read().splitlines(): passwords.append(pw) except IOError, e: - self.logError(e) + self.log_error(e) else: self.passwords = passwords @Expose - def addPassword(self, password): + def add_password(self, password): """ Adds a password to saved list """ try: self.passwords = uniqify([password] + self.passwords) - file = fs_encode(self.getConfig('passwordfile')) + file = fs_encode(self.get_config('passwordfile')) with open(file, "wb") as f: for pw in self.passwords: f.write(pw + '\n') except IOError, e: - self.logError(e) + self.log_error(e) - def setPermissions(self, files): + def set_permissions(self, files): for f in files: if not os.path.exists(f): continue @@ -575,4 +576,4 @@ class ExtractArchive(Hook): os.chown(f, uid, gid) except Exception, e: - self.logWarning(_("Setting User and Group failed"), e) + self.log_warning(_("Setting User and Group failed"), e) diff --git a/module/plugins/hooks/FastixRuHook.py b/module/plugins/hooks/FastixRuHook.py index 0cd060377..c14d6c380 100644 --- a/module/plugins/hooks/FastixRuHook.py +++ b/module/plugins/hooks/FastixRuHook.py @@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook class FastixRuHook(MultiHook): __name__ = "FastixRuHook" __type__ = "hook" - __version__ = "0.05" + __version__ = "0.06" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -19,7 +19,7 @@ class FastixRuHook(MultiHook): __authors__ = [("Massimo Rosamilia", "max@spiritix.eu")] - def getHosters(self): + def get_hosters(self): html = self.load("http://fastix.ru/api_v2", get={'apikey': "5182964c3f8f9a7f0b00000a_kelmFB4n1IrnCDYuIFn2y", 'sub' : "allowed_sources"}) diff --git a/module/plugins/hooks/FreeWayMeHook.py b/module/plugins/hooks/FreeWayMeHook.py index 0d5087cc0..093dd82d3 100644 --- a/module/plugins/hooks/FreeWayMeHook.py +++ b/module/plugins/hooks/FreeWayMeHook.py @@ -6,7 +6,7 @@ from module.plugins.internal.MultiHook import MultiHook class FreeWayMeHook(MultiHook): __name__ = "FreeWayMeHook" __type__ = "hook" - __version__ = "0.16" + __version__ = "0.17" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -18,7 +18,7 @@ class FreeWayMeHook(MultiHook): __authors__ = [("Nicolas Giese", "james@free-way.me")] - def getHosters(self): + def get_hosters(self): user, data = self.account.selectAccount() hostis = self.load("http://www.free-way.bz/ajax/jd.php", get={"id": 3, "user": user, "pass": data['password']}).replace("\"", "") #@TODO: Revert to `https` in 0.4.10 return [x.strip() for x in hostis.split(",") if x.strip()] diff --git a/module/plugins/hooks/HighWayMeHook.py b/module/plugins/hooks/HighWayMeHook.py index 824e5c475..8e400a628 100644 --- a/module/plugins/hooks/HighWayMeHook.py +++ b/module/plugins/hooks/HighWayMeHook.py @@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook class HighWayMeHook(MultiHook): __name__ = "HighWayMeHook" __type__ = "hook" - __version__ = "0.03" + __version__ = "0.04" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -19,7 +19,7 @@ class HighWayMeHook(MultiHook): __authors__ = [("EvolutionClip", "evolutionclip@live.de")] - def getHosters(self): + def get_hosters(self): json_data = json_loads(self.load("https://high-way.me/api.php", get={'hoster': 1})) return [element['name'] for element in json_data['hoster']] diff --git a/module/plugins/hooks/HotFolder.py b/module/plugins/hooks/HotFolder.py index 8c922f47a..8e1d1c54f 100644 --- a/module/plugins/hooks/HotFolder.py +++ b/module/plugins/hooks/HotFolder.py @@ -14,7 +14,7 @@ from module.utils import fs_encode, save_join as fs_join class HotFolder(Hook): __name__ = "HotFolder" __type__ = "hook" - __version__ = "0.15" + __version__ = "0.16" __config__ = [("folder" , "str" , "Folder to observe" , "container"), ("watch_file", "bool", "Observe link file" , False ), @@ -32,14 +32,14 @@ class HotFolder(Hook): def periodical(self): - folder = fs_encode(self.getConfig('folder')) - file = fs_encode(self.getConfig('file')) + folder = fs_encode(self.get_config('folder')) + file = fs_encode(self.get_config('file')) try: if not os.path.isdir(os.path.join(folder, "finished")): os.makedirs(os.path.join(folder, "finished")) - if self.getConfig('watch_file'): + if self.get_config('watch_file'): with open(file, "a+") as f: f.seek(0) content = f.read().strip() @@ -61,11 +61,11 @@ class HotFolder(Hook): if not os.path.isfile(path) or f.endswith("~") or f.startswith("#") or f.startswith("."): continue - newpath = os.path.join(folder, "finished", f if self.getConfig('keep') else "tmp_" + f) + newpath = os.path.join(folder, "finished", f if self.get_config('keep') else "tmp_" + f) move(path, newpath) - self.logInfo(_("Added %s from HotFolder") % f) + self.log_info(_("Added %s from HotFolder") % f) self.core.api.addPackage(f, [newpath], 1) except (IOError, OSError), e: - self.logError(e) + self.log_error(e) diff --git a/module/plugins/hooks/IRCInterface.py b/module/plugins/hooks/IRCInterface.py index 7cdd7624f..32597aa42 100644 --- a/module/plugins/hooks/IRCInterface.py +++ b/module/plugins/hooks/IRCInterface.py @@ -18,7 +18,7 @@ from module.utils import formatSize class IRCInterface(Thread, Hook): __name__ = "IRCInterface" __type__ = "hook" - __version__ = "0.14" + __version__ = "0.15" __config__ = [("host" , "str" , "IRC-Server Address" , "Enter your server here!"), ("port" , "int" , "IRC-Server Port" , 6667 ), @@ -42,7 +42,7 @@ class IRCInterface(Thread, Hook): def __init__(self, core, manager): Thread.__init__(self) Hook.__init__(self, core, manager) - self.setDaemon(True) + self.set_daemon(True) def activate(self): @@ -55,7 +55,7 @@ class IRCInterface(Thread, Hook): def package_finished(self, pypack): try: - if self.getConfig('info_pack'): + if self.get_config('info_pack'): self.response(_("Package finished: %s") % pypack.name) except Exception: pass @@ -63,7 +63,7 @@ class IRCInterface(Thread, Hook): def download_finished(self, pyfile): try: - if self.getConfig('info_file'): + if self.get_config('info_file'): self.response( _("Download finished: %(name)s @ %(plugin)s ") % {"name": pyfile.name, "plugin": pyfile.pluginname}) except Exception: @@ -71,7 +71,7 @@ class IRCInterface(Thread, Hook): def captcha_task(self, task): - if self.getConfig('captcha') and task.isTextual(): + if self.get_config('captcha') and task.isTextual(): task.handler.append(self) task.setWaiting(60) @@ -86,20 +86,20 @@ class IRCInterface(Thread, Hook): def run(self): #: connect to IRC etc. self.sock = socket.socket() - host = self.getConfig('host') - self.sock.connect((host, self.getConfig('port'))) + host = self.get_config('host') + self.sock.connect((host, self.get_config('port'))) - if self.getConfig('ssl'): + if self.get_config('ssl'): self.sock = ssl.wrap_socket(self.sock, cert_reqs=ssl.CERT_NONE) #@TODO: support certificate - nick = self.getConfig('nick') + nick = self.get_config('nick') self.sock.send("NICK %s\r\n" % nick) self.sock.send("USER %s %s bla :%s\r\n" % (nick, host, nick)) - for t in self.getConfig('owner').split(): + for t in self.get_config('owner').split(): if t.strip().startswith("#"): self.sock.send("JOIN %s\r\n" % t.strip()) - self.logInfo(_("Connected to"), host) - self.logInfo(_("Switching to listening mode!")) + self.log_info(_("Connected to"), host) + self.log_info(_("Switching to listening mode!")) try: self.main_loop() @@ -149,10 +149,10 @@ class IRCInterface(Thread, Hook): def handle_events(self, msg): - if not msg['origin'].split("!", 1)[0] in self.getConfig('owner').split(): + if not msg['origin'].split("!", 1)[0] in self.get_config('owner').split(): return - if msg['target'].split("!", 1)[0] != self.getConfig('nick'): + if msg['target'].split("!", 1)[0] != self.get_config('nick'): return if msg['action'] != "PRIVMSG": @@ -160,15 +160,15 @@ class IRCInterface(Thread, Hook): #: HANDLE CTCP ANTI FLOOD/BOT PROTECTION if msg['text'] == "\x01VERSION\x01": - self.logDebug("Sending CTCP VERSION") + self.log_debug("Sending CTCP VERSION") self.sock.send("NOTICE %s :%s\r\n" % (msg['origin'], "pyLoad! IRC Interface")) return elif msg['text'] == "\x01TIME\x01": - self.logDebug("Sending CTCP TIME") + self.log_debug("Sending CTCP TIME") self.sock.send("NOTICE %s :%d\r\n" % (msg['origin'], time.time())) return elif msg['text'] == "\x01LAG\x01": - self.logDebug("Received CTCP LAG") #: don't know how to answer + self.log_debug("Received CTCP LAG") #: don't know how to answer return trigger = "pass" @@ -188,12 +188,12 @@ class IRCInterface(Thread, Hook): for line in res: self.response(line, msg['origin']) except Exception, e: - self.logError(e) + self.log_error(e) def response(self, msg, origin=""): if origin == "": - for t in self.getConfig('owner').split(): + for t in self.get_config('owner').split(): self.sock.send("PRIVMSG %s :%s\r\n" % (t.strip(), msg)) else: self.sock.send("PRIVMSG %s :%s\r\n" % (origin.split("!", 1)[0], msg)) @@ -339,7 +339,7 @@ class IRCInterface(Thread, Hook): if not pack: return ["ERROR: Package doesn't exists."] - #TODO add links + # TODO add links return ["INFO: Added %d links to Package %s [#%d]" % (len(links), pack['name'], id)] diff --git a/module/plugins/hooks/ImageTyperz.py b/module/plugins/hooks/ImageTyperz.py index 90849a20c..c70518c17 100644 --- a/module/plugins/hooks/ImageTyperz.py +++ b/module/plugins/hooks/ImageTyperz.py @@ -17,7 +17,7 @@ class ImageTyperzException(Exception): self.err = err - def getCode(self): + def get_code(self): return self.err @@ -32,7 +32,7 @@ class ImageTyperzException(Exception): class ImageTyperz(Hook): __name__ = "ImageTyperz" __type__ = "hook" - __version__ = "0.07" + __version__ = "0.08" __config__ = [("username" , "str" , "Username" , "" ), ("password" , "password", "Password" , "" ), @@ -55,11 +55,11 @@ class ImageTyperz(Hook): self.info = {} #@TODO: Remove in 0.4.10 - def getCredits(self): + def get_credits(self): res = self.load(self.GETCREDITS_URL, post={'action': "REQUESTBALANCE", - 'username': self.getConfig('username'), - 'password': self.getConfig('password')}) + 'username': self.get_config('username'), + 'password': self.get_config('password')}) if res.startswith('ERROR'): raise ImageTyperzException(res) @@ -69,18 +69,18 @@ class ImageTyperz(Hook): except Exception: raise ImageTyperzException("Invalid response") - self.logInfo(_("Account balance: $%s left") % res) + self.log_info(_("Account balance: $%s left") % res) return balance def submit(self, captcha, captchaType="file", match=None): req = getRequest() - #raise timeout threshold + # raise timeout threshold req.c.setopt(pycurl.LOW_SPEED_TIME, 80) try: #@NOTE: Workaround multipart-post bug in HTTPRequest.py - if re.match("^\w*$", self.getConfig('password')): + if re.match("^\w*$", self.get_config('password')): multipart = True data = (pycurl.FORM_FILE, captcha) else: @@ -91,8 +91,8 @@ class ImageTyperz(Hook): res = self.load(self.SUBMIT_URL, post={'action': "UPLOADCAPTCHA", - 'username': self.getConfig('username'), - 'password': self.getConfig('password'), "file": data}, + 'username': self.get_config('username'), + 'password': self.get_config('password'), "file": data}, multipart=multipart, req=req) finally: @@ -117,38 +117,38 @@ class ImageTyperz(Hook): if not task.isTextual(): return False - if not self.getConfig('username') or not self.getConfig('password'): + if not self.get_config('username') or not self.get_config('password'): return False - if self.core.isClientConnected() and self.getConfig('check_client'): + if self.core.isClientConnected() and self.get_config('check_client'): return False - if self.getCredits() > 0: + if self.get_credits() > 0: task.handler.append(self) task.data['service'] = self.__name__ task.setWaiting(100) - self._processCaptcha(task) + self._process_captcha(task) else: - self.logInfo(_("Your %s account has not enough credits") % self.__name__) + self.log_info(_("Your %s account has not enough credits") % self.__name__) def captcha_invalid(self, task): if task.data['service'] == self.__name__ and "ticket" in task.data: res = self.load(self.RESPOND_URL, post={'action': "SETBADIMAGE", - 'username': self.getConfig('username'), - 'password': self.getConfig('password'), + 'username': self.get_config('username'), + 'password': self.get_config('password'), 'imageid': task.data['ticket']}) if res == "SUCCESS": - self.logInfo(_("Bad captcha solution received, requested refund")) + self.log_info(_("Bad captcha solution received, requested refund")) else: - self.logError(_("Bad captcha solution received, refund request failed"), res) + self.log_error(_("Bad captcha solution received, refund request failed"), res) @threaded - def _processCaptcha(self, task): + def _process_captcha(self, task): c = task.captchaFile try: ticket, result = self.submit(c) diff --git a/module/plugins/hooks/JustPremium.py b/module/plugins/hooks/JustPremium.py index 19a552e49..706de4d81 100644 --- a/module/plugins/hooks/JustPremium.py +++ b/module/plugins/hooks/JustPremium.py @@ -8,7 +8,7 @@ from module.plugins.internal.Hook import Hook class JustPremium(Hook): __name__ = "JustPremium" __type__ = "hook" - __version__ = "0.23" + __version__ = "0.24" __config__ = [("excluded", "str", "Exclude hosters (comma separated)", ""), ("included", "str", "Include hosters (comma separated)", "")] @@ -25,10 +25,10 @@ class JustPremium(Hook): def setup(self): self.info = {} #@TODO: Remove in 0.4.10 - self.event_list = ["linksAdded"] + self.event_map = {'linksAdded': "links_added"} - def linksAdded(self, links, pid): + def links_added(self, links, pid): hosterdict = self.core.pluginManager.hosterPlugins linkdict = self.core.api.checkURLs(links) @@ -39,9 +39,9 @@ class JustPremium(Hook): and hosterdict[hoster]['new_name'] in premiumplugins) excluded = map(lambda domain: "".join(part.capitalize() for part in re.split(r'(\.|\d+)', domain) if part != '.'), - self.getConfig('excluded').replace(' ', '').replace(',', '|').replace(';', '|').split('|')) + self.get_config('excluded').replace(' ', '').replace(',', '|').replace(';', '|').split('|')) included = map(lambda domain: "".join(part.capitalize() for part in re.split(r'(\.|\d+)', domain) if part != '.'), - self.getConfig('included').replace(' ', '').replace(',', '|').replace(';', '|').split('|')) + self.get_config('included').replace(' ', '').replace(',', '|').replace(';', '|').split('|')) hosterlist = (premiumplugins | multihosters).union(excluded).difference(included) @@ -50,7 +50,7 @@ class JustPremium(Hook): return for pluginname in set(linkdict.keys()) - hosterlist: - self.logInfo(_("Remove links of plugin: %s") % pluginname) + self.log_info(_("Remove links of plugin: %s") % pluginname) for link in linkdict[pluginname]: - self.logDebug("Remove link: %s" % link) + self.log_debug("Remove link: %s" % link) links.remove(link) diff --git a/module/plugins/hooks/LinkdecrypterComHook.py b/module/plugins/hooks/LinkdecrypterComHook.py index 76167524b..1fe7497b3 100644 --- a/module/plugins/hooks/LinkdecrypterComHook.py +++ b/module/plugins/hooks/LinkdecrypterComHook.py @@ -8,7 +8,7 @@ from module.plugins.internal.MultiHook import MultiHook class LinkdecrypterComHook(MultiHook): __name__ = "LinkdecrypterComHook" __type__ = "hook" - __version__ = "1.06" + __version__ = "1.07" __config__ = [("activated" , "bool" , "Activated" , True ), ("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), @@ -21,7 +21,7 @@ class LinkdecrypterComHook(MultiHook): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - def getHosters(self): + def get_hosters(self): list = re.search(r'>Supported\(\d+\)</b>: <i>(.[\w.\-, ]+)', self.load("http://linkdecrypter.com/").replace("(g)", "")).group(1).split(', ') try: diff --git a/module/plugins/hooks/LinksnappyComHook.py b/module/plugins/hooks/LinksnappyComHook.py index 4004a4fd6..9501ba4a2 100644 --- a/module/plugins/hooks/LinksnappyComHook.py +++ b/module/plugins/hooks/LinksnappyComHook.py @@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook class LinksnappyComHook(MultiHook): __name__ = "LinksnappyComHook" __type__ = "hook" - __version__ = "0.04" + __version__ = "0.05" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -19,7 +19,7 @@ class LinksnappyComHook(MultiHook): __authors__ = [("stickell", "l.stickell@yahoo.it")] - def getHosters(self): + def get_hosters(self): json_data = self.load("http://gen.linksnappy.com/lseAPI.php", get={'act': "FILEHOSTS"}) json_data = json_loads(json_data) diff --git a/module/plugins/hooks/MegaDebridEuHook.py b/module/plugins/hooks/MegaDebridEuHook.py index 5d45c2332..36aa807ae 100644 --- a/module/plugins/hooks/MegaDebridEuHook.py +++ b/module/plugins/hooks/MegaDebridEuHook.py @@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook class MegaDebridEuHook(MultiHook): __name__ = "MegaDebridEuHook" __type__ = "hook" - __version__ = "0.05" + __version__ = "0.06" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -19,14 +19,14 @@ class MegaDebridEuHook(MultiHook): __authors__ = [("D.Ducatel", "dducatel@je-geek.fr")] - def getHosters(self): + def get_hosters(self): reponse = self.load("http://www.mega-debrid.eu/api.php", get={'action': "getHosters"}) json_data = json_loads(reponse) if json_data['response_code'] == "ok": host_list = [element[0] for element in json_data['hosters']] else: - self.logError(_("Unable to retrieve hoster list")) + self.log_error(_("Unable to retrieve hoster list")) host_list = list() return host_list diff --git a/module/plugins/hooks/MegaRapidoNetHook.py b/module/plugins/hooks/MegaRapidoNetHook.py index e113b305e..278daa11d 100644 --- a/module/plugins/hooks/MegaRapidoNetHook.py +++ b/module/plugins/hooks/MegaRapidoNetHook.py @@ -8,7 +8,7 @@ from module.plugins.internal.MultiHook import MultiHook class MegaRapidoNetHook(MultiHook): __name__ = "MegaRapidoNetHook" __type__ = "hook" - __version__ = "0.02" + __version__ = "0.03" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -20,7 +20,7 @@ class MegaRapidoNetHook(MultiHook): __authors__ = [("Kagenoshin", "kagenoshin@gmx.ch")] - def getHosters(self): + def get_hosters(self): hosters = {'1fichier' : [],#leave it there are so many possible addresses? '1st-files' : ['1st-files.com'], '2shared' : ['2shared.com'], diff --git a/module/plugins/hooks/MergeFiles.py b/module/plugins/hooks/MergeFiles.py index 64ab50400..9aa70aa71 100644 --- a/module/plugins/hooks/MergeFiles.py +++ b/module/plugins/hooks/MergeFiles.py @@ -13,7 +13,7 @@ from module.utils import save_join as fs_join class MergeFiles(Hook): __name__ = "MergeFiles" __type__ = "hook" - __version__ = "0.15" + __version__ = "0.16" __config__ = [("activated", "bool", "Activated", True)] @@ -49,11 +49,11 @@ class MergeFiles(Hook): download_folder = fs_join(download_folder, pack.folder) for name, file_list in files.iteritems(): - self.logInfo(_("Starting merging of"), name) + self.log_info(_("Starting merging of"), name) with open(fs_join(download_folder, name), "wb") as final_file: for splitted_file in file_list: - self.logDebug("Merging part", splitted_file) + self.log_debug("Merging part", splitted_file) pyfile = self.core.files.getFile(fid_dict[splitted_file]) @@ -71,7 +71,7 @@ class MergeFiles(Hook): pyfile.setProgress((size_written * 100) / s_file_size) else: break - self.logDebug("Finished merging part", splitted_file) + self.log_debug("Finished merging part", splitted_file) except Exception, e: traceback.print_exc() @@ -81,4 +81,4 @@ class MergeFiles(Hook): pyfile.setStatus("finished") pyfile.release() - self.logInfo(_("Finished merging of"), name) + self.log_info(_("Finished merging of"), name) diff --git a/module/plugins/hooks/MultiHome.py b/module/plugins/hooks/MultiHome.py index 790d5dab3..12a65c601 100644 --- a/module/plugins/hooks/MultiHome.py +++ b/module/plugins/hooks/MultiHome.py @@ -8,7 +8,7 @@ from module.plugins.internal.Hook import Hook class MultiHome(Hook): __name__ = "MultiHome" __type__ = "hook" - __version__ = "0.13" + __version__ = "0.14" __config__ = [("interfaces", "str", "Interfaces", "None")] @@ -25,18 +25,18 @@ class MultiHome(Hook): self.register = {} self.interfaces = [] - self.parseInterfaces(self.getConfig('interfaces').split(";")) + self.parse_interfaces(self.get_config('interfaces').split(";")) if not self.interfaces: - self.parseInterfaces([self.core.config.get("download", "interface")]) - self.setConfig("interfaces", self.toConfig()) + self.parse_interfaces([self.core.config.get("download", "interface")]) + self.set_config("interfaces", self.to_config()) - def toConfig(self): + def to_config(self): return ";".join(i.adress for i in self.interfaces) - def parseInterfaces(self, interfaces): + def parse_interfaces(self, interfaces): for interface in interfaces: if not interface or str(interface).lower() == "none": continue @@ -48,18 +48,18 @@ class MultiHome(Hook): oldGetRequest = requestFactory.getRequest - def getRequest(pluginName, account=None): - iface = self.bestInterface(pluginName, account) + def get_request(pluginName, account=None): + iface = self.best_interface(pluginName, account) if iface: iface.useFor(pluginName, account) requestFactory.iface = lambda: iface.adress - self.logDebug("Using address", iface.adress) + self.log_debug("Using address", iface.adress) return oldGetRequest(pluginName, account) requestFactory.getRequest = getRequest - def bestInterface(self, pluginName, account): + def best_interface(self, pluginName, account): best = None for interface in self.interfaces: if not best or interface.lastPluginAccess(pluginName, account) < best.lastPluginAccess(pluginName, account): @@ -74,13 +74,13 @@ class Interface(object): self.history = {} - def lastPluginAccess(self, pluginName, account): + def last_plugin_access(self, pluginName, account): if (pluginName, account) in self.history: return self.history[(pluginName, account)] return 0 - def useFor(self, pluginName, account): + def use_for(self, pluginName, account): self.history[(pluginName, account)] = time.time() diff --git a/module/plugins/hooks/MultihostersComHook.py b/module/plugins/hooks/MultihostersComHook.py index 10b1c53ba..caa9d5bea 100644 --- a/module/plugins/hooks/MultihostersComHook.py +++ b/module/plugins/hooks/MultihostersComHook.py @@ -6,7 +6,7 @@ from module.plugins.hooks.ZeveraComHook import ZeveraComHook class MultihostersComHook(ZeveraComHook): __name__ = "MultihostersComHook" __type__ = "hook" - __version__ = "0.02" + __version__ = "0.03" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), diff --git a/module/plugins/hooks/MultishareCzHook.py b/module/plugins/hooks/MultishareCzHook.py index 866fea405..8ddcf74d2 100644 --- a/module/plugins/hooks/MultishareCzHook.py +++ b/module/plugins/hooks/MultishareCzHook.py @@ -8,7 +8,7 @@ from module.plugins.internal.MultiHook import MultiHook class MultishareCzHook(MultiHook): __name__ = "MultishareCzHook" __type__ = "hook" - __version__ = "0.07" + __version__ = "0.08" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -23,6 +23,6 @@ class MultishareCzHook(MultiHook): HOSTER_PATTERN = r'<img class="logo-shareserveru"[^>]*?alt="(.+?)"></td>\s*<td class="stav">[^>]*?alt="OK"' - def getHosters(self): + def get_hosters(self): html = self.load("http://www.multishare.cz/monitoring/") return re.findall(self.HOSTER_PATTERN, html) diff --git a/module/plugins/hooks/MyfastfileComHook.py b/module/plugins/hooks/MyfastfileComHook.py index 5ba44f89e..f1e5d669d 100644 --- a/module/plugins/hooks/MyfastfileComHook.py +++ b/module/plugins/hooks/MyfastfileComHook.py @@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook class MyfastfileComHook(MultiHook): __name__ = "MyfastfileComHook" __type__ = "hook" - __version__ = "0.05" + __version__ = "0.06" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -19,9 +19,9 @@ class MyfastfileComHook(MultiHook): __authors__ = [("stickell", "l.stickell@yahoo.it")] - def getHosters(self): + def get_hosters(self): json_data = self.load("http://myfastfile.com/api.php", get={'hosts': ""}) - self.logDebug("JSON data", json_data) + self.log_debug("JSON data", json_data) json_data = json_loads(json_data) return json_data['hosts'] diff --git a/module/plugins/hooks/NoPremiumPlHook.py b/module/plugins/hooks/NoPremiumPlHook.py index 3c7cc8d9d..1b011e6f8 100644 --- a/module/plugins/hooks/NoPremiumPlHook.py +++ b/module/plugins/hooks/NoPremiumPlHook.py @@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook class NoPremiumPlHook(MultiHook): __name__ = "NoPremiumPlHook" __type__ = "hook" - __version__ = "0.03" + __version__ = "0.04" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -19,10 +19,10 @@ class NoPremiumPlHook(MultiHook): __authors__ = [("goddie", "dev@nopremium.pl")] - def getHosters(self): + def get_hosters(self): hostings = json_loads(self.load("https://www.nopremium.pl/clipboard.php?json=3").strip()) hostings_domains = [domain for row in hostings for domain in row['domains'] if row['sdownload'] == "0"] - self.logDebug(hostings_domains) + self.log_debug(hostings_domains) return hostings_domains diff --git a/module/plugins/hooks/OverLoadMeHook.py b/module/plugins/hooks/OverLoadMeHook.py index 39401000d..611285818 100644 --- a/module/plugins/hooks/OverLoadMeHook.py +++ b/module/plugins/hooks/OverLoadMeHook.py @@ -6,7 +6,7 @@ from module.plugins.internal.MultiHook import MultiHook class OverLoadMeHook(MultiHook): __name__ = "OverLoadMeHook" __type__ = "hook" - __version__ = "0.04" + __version__ = "0.05" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -18,7 +18,7 @@ class OverLoadMeHook(MultiHook): __authors__ = [("marley", "marley@over-load.me")] - def getHosters(self): + def get_hosters(self): html = self.load("https://api.over-load.me/hoster.php", get={'auth': "0001-cb1f24dadb3aa487bda5afd3b76298935329be7700cd7-5329be77-00cf-1ca0135f"}).replace("\"", "").strip() return [x.strip() for x in html.split(",") if x.strip()] diff --git a/module/plugins/hooks/PremiumToHook.py b/module/plugins/hooks/PremiumToHook.py index 1c15bf11a..dd85cb903 100644 --- a/module/plugins/hooks/PremiumToHook.py +++ b/module/plugins/hooks/PremiumToHook.py @@ -6,7 +6,7 @@ from module.plugins.internal.MultiHook import MultiHook class PremiumToHook(MultiHook): __name__ = "PremiumToHook" __type__ = "hook" - __version__ = "0.09" + __version__ = "0.10" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -20,7 +20,7 @@ class PremiumToHook(MultiHook): ("stickell", "l.stickell@yahoo.it")] - def getHosters(self): + def get_hosters(self): user, data = self.account.selectAccount() html = self.load("http://premium.to/api/hosters.php", get={'username': user, 'password': data['password']}) diff --git a/module/plugins/hooks/PremiumizeMeHook.py b/module/plugins/hooks/PremiumizeMeHook.py index 1f38d374e..24d091454 100644 --- a/module/plugins/hooks/PremiumizeMeHook.py +++ b/module/plugins/hooks/PremiumizeMeHook.py @@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook class PremiumizeMeHook(MultiHook): __name__ = "PremiumizeMeHook" __type__ = "hook" - __version__ = "0.18" + __version__ = "0.19" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -19,7 +19,7 @@ class PremiumizeMeHook(MultiHook): __authors__ = [("Florian Franzen", "FlorianFranzen@gmail.com")] - def getHosters(self): + def get_hosters(self): #: Get account data user, data = self.account.selectAccount() diff --git a/module/plugins/hooks/PutdriveComHook.py b/module/plugins/hooks/PutdriveComHook.py index 931e5f565..2c5310dbf 100644 --- a/module/plugins/hooks/PutdriveComHook.py +++ b/module/plugins/hooks/PutdriveComHook.py @@ -6,7 +6,7 @@ from module.plugins.hooks.ZeveraComHook import ZeveraComHook class PutdriveComHook(ZeveraComHook): __name__ = "PutdriveComHook" __type__ = "hook" - __version__ = "0.01" + __version__ = "0.02" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), diff --git a/module/plugins/hooks/RPNetBizHook.py b/module/plugins/hooks/RPNetBizHook.py index a19ed7228..be472af26 100644 --- a/module/plugins/hooks/RPNetBizHook.py +++ b/module/plugins/hooks/RPNetBizHook.py @@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook class RPNetBizHook(MultiHook): __name__ = "RPNetBizHook" __type__ = "hook" - __version__ = "0.14" + __version__ = "0.15" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -19,7 +19,7 @@ class RPNetBizHook(MultiHook): __authors__ = [("Dman", "dmanugm@gmail.com")] - def getHosters(self): + def get_hosters(self): #: Get account data user, data = self.account.selectAccount() diff --git a/module/plugins/hooks/RapideoPlHook.py b/module/plugins/hooks/RapideoPlHook.py index 861f9e10d..adbe55f12 100644 --- a/module/plugins/hooks/RapideoPlHook.py +++ b/module/plugins/hooks/RapideoPlHook.py @@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook class RapideoPlHook(MultiHook): __name__ = "RapideoPlHook" __type__ = "hook" - __version__ = "0.03" + __version__ = "0.04" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -19,10 +19,10 @@ class RapideoPlHook(MultiHook): __authors__ = [("goddie", "dev@rapideo.pl")] - def getHosters(self): + def get_hosters(self): hostings = json_loads(self.load("https://www.rapideo.pl/clipboard.php?json=3").strip()) hostings_domains = [domain for row in hostings for domain in row['domains'] if row['sdownload'] == "0"] - self.logDebug(hostings_domains) + self.log_debug(hostings_domains) return hostings_domains diff --git a/module/plugins/hooks/RealdebridComHook.py b/module/plugins/hooks/RealdebridComHook.py index a1783ce84..da66249b6 100644 --- a/module/plugins/hooks/RealdebridComHook.py +++ b/module/plugins/hooks/RealdebridComHook.py @@ -6,7 +6,7 @@ from module.plugins.internal.MultiHook import MultiHook class RealdebridComHook(MultiHook): __name__ = "RealdebridComHook" __type__ = "hook" - __version__ = "0.46" + __version__ = "0.47" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -18,6 +18,6 @@ class RealdebridComHook(MultiHook): __authors__ = [("Devirex Hazzard", "naibaf_11@yahoo.de")] - def getHosters(self): + def get_hosters(self): html = self.load("https://real-debrid.com/api/hosters.php").replace("\"", "").strip() return [x.strip() for x in html.split(",") if x.strip()] diff --git a/module/plugins/hooks/RehostToHook.py b/module/plugins/hooks/RehostToHook.py index 7c51823ca..016377e15 100644 --- a/module/plugins/hooks/RehostToHook.py +++ b/module/plugins/hooks/RehostToHook.py @@ -6,7 +6,7 @@ from module.plugins.internal.MultiHook import MultiHook class RehostToHook(MultiHook): __name__ = "RehostToHook" __type__ = "hook" - __version__ = "0.50" + __version__ = "0.51" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -18,7 +18,7 @@ class RehostToHook(MultiHook): __authors__ = [("RaNaN", "RaNaN@pyload.org")] - def getHosters(self): + def get_hosters(self): user, data = self.account.selectAccount() html = self.load("http://rehost.to/api.php", get={'cmd' : "get_supported_och_dl", diff --git a/module/plugins/hooks/RestartFailed.py b/module/plugins/hooks/RestartFailed.py index 0c74a544a..e19705d31 100644 --- a/module/plugins/hooks/RestartFailed.py +++ b/module/plugins/hooks/RestartFailed.py @@ -6,7 +6,7 @@ from module.plugins.internal.Hook import Hook class RestartFailed(Hook): __name__ = "RestartFailed" __type__ = "hook" - __version__ = "1.59" + __version__ = "1.60" __config__ = [("interval", "int", "Check interval in minutes", 90)] @@ -18,28 +18,28 @@ class RestartFailed(Hook): MIN_CHECK_INTERVAL = 15 * 60 #: 15 minutes - #: def pluginConfigChanged(self, plugin, name, value): - #: if name == "interval": - #: interval = value * 60 - #: if self.MIN_CHECK_INTERVAL <= interval != self.interval: - #: self.core.scheduler.removeJob(self.cb) - #: self.interval = interval - #: self.init_periodical() - #: else: - #: self.logDebug("Invalid interval value, kept current") + # def plugin_config_changed(self, plugin, name, value): + # if name == "interval": + # interval = value * 60 + # if self.MIN_CHECK_INTERVAL <= interval != self.interval: + # self.core.scheduler.removeJob(self.cb) + # self.interval = interval + # self.init_periodical() + # else: + # self.log_debug("Invalid interval value, kept current") def periodical(self): - self.logDebug("Restart failed downloads") + self.log_debug("Restart failed downloads") self.core.api.restartFailed() def setup(self): self.info = {} #@TODO: Remove in 0.4.10 - #: self.event_list = ["pluginConfigChanged"] + # self.event_map = {'pluginConfigChanged': "plugin_config_changed"} self.interval = self.MIN_CHECK_INTERVAL def activate(self): - #: self.pluginConfigChanged(self.__name__, "interval", self.getConfig('interval')) - self.interval = max(self.MIN_CHECK_INTERVAL, self.getConfig('interval') * 60) + #: self.plugin_config_changed(self.__name__, "interval", self.get_config('interval')) + self.interval = max(self.MIN_CHECK_INTERVAL, self.get_config('interval') * 60) diff --git a/module/plugins/hooks/SimplyPremiumComHook.py b/module/plugins/hooks/SimplyPremiumComHook.py index db331283d..e522df8b5 100644 --- a/module/plugins/hooks/SimplyPremiumComHook.py +++ b/module/plugins/hooks/SimplyPremiumComHook.py @@ -7,7 +7,7 @@ from module.plugins.internal.MultiHook import MultiHook class SimplyPremiumComHook(MultiHook): __name__ = "SimplyPremiumComHook" __type__ = "hook" - __version__ = "0.05" + __version__ = "0.06" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -19,7 +19,7 @@ class SimplyPremiumComHook(MultiHook): __authors__ = [("EvolutionClip", "evolutionclip@live.de")] - def getHosters(self): + def get_hosters(self): json_data = self.load("http://www.simply-premium.com/api/hosts.php", get={'format': "json", 'online': 1}) json_data = json_loads(json_data) diff --git a/module/plugins/hooks/SimplydebridComHook.py b/module/plugins/hooks/SimplydebridComHook.py index 9e29a0c9f..228df2af4 100644 --- a/module/plugins/hooks/SimplydebridComHook.py +++ b/module/plugins/hooks/SimplydebridComHook.py @@ -6,7 +6,7 @@ from module.plugins.internal.MultiHook import MultiHook class SimplydebridComHook(MultiHook): __name__ = "SimplydebridComHook" __type__ = "hook" - __version__ = "0.04" + __version__ = "0.05" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -18,6 +18,6 @@ class SimplydebridComHook(MultiHook): __authors__ = [("Kagenoshin", "kagenoshin@gmx.ch")] - def getHosters(self): + def get_hosters(self): html = self.load("http://simply-debrid.com/api.php", get={'list': 1}) return [x.strip() for x in html.rstrip(';').replace("\"", "").split(";")] diff --git a/module/plugins/hooks/SkipRev.py b/module/plugins/hooks/SkipRev.py index 503833d53..8fd49889c 100644 --- a/module/plugins/hooks/SkipRev.py +++ b/module/plugins/hooks/SkipRev.py @@ -13,7 +13,7 @@ from module.plugins.internal.Hook import Hook class SkipRev(Hook): __name__ = "SkipRev" __type__ = "hook" - __version__ = "0.31" + __version__ = "0.32" __config__ = [("mode" , "Auto;Manual", "Choose recovery archives to skip" , "Auto"), ("revtokeep", "int" , "Number of recovery archives to keep for package", 0 )] @@ -39,9 +39,9 @@ class SkipRev(Hook): def _name(self, pyfile): if hasattr(pyfile.pluginmodule, "getInfo"): #@NOTE: getInfo is deprecated in 0.4.10 - return pyfile.pluginmodule.getInfo([pyfile.url]).next()[0] + return pyfile.pluginmodule.get_info([pyfile.url]).next()[0] else: - self.logWarning("Unable to grab file name") + self.log_warning("Unable to grab file name") return urlparse.urlparse(urllib.unquote(pyfile.url)).path.split('/')[-1] @@ -64,7 +64,7 @@ class SkipRev(Hook): if pyfile.statusname is _("unskipped") or not name.endswith(".rev") or not ".part" in name: return - revtokeep = -1 if self.getConfig('mode') == "Auto" else self.getConfig('revtokeep') + revtokeep = -1 if self.get_config('mode') == "Auto" else self.get_config('revtokeep') if revtokeep: status_list = (1, 4, 8, 9, 14) if revtokeep < 0 else (1, 3, 4, 8, 9, 14) @@ -89,7 +89,7 @@ class SkipRev(Hook): if pyfile.status != 8 or pyfile.name.rsplit('.', 1)[-1].strip() not in ("rar", "rev"): return - revtokeep = -1 if self.getConfig('mode') == "Auto" else self.getConfig('revtokeep') + revtokeep = -1 if self.get_config('mode') == "Auto" else self.get_config('revtokeep') if not revtokeep: return diff --git a/module/plugins/hooks/SmoozedComHook.py b/module/plugins/hooks/SmoozedComHook.py index 2f5e370ee..d1cbd8126 100644 --- a/module/plugins/hooks/SmoozedComHook.py +++ b/module/plugins/hooks/SmoozedComHook.py @@ -6,7 +6,7 @@ from module.plugins.internal.MultiHook import MultiHook class SmoozedComHook(MultiHook): __name__ = "SmoozedComHook" __type__ = "hook" - __version__ = "0.03" + __version__ = "0.04" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -18,6 +18,6 @@ class SmoozedComHook(MultiHook): __authors__ = [("", "")] - def getHosters(self): + def get_hosters(self): user, data = self.account.selectAccount() return self.account.getAccountInfo(user)["hosters"] diff --git a/module/plugins/hooks/UnSkipOnFail.py b/module/plugins/hooks/UnSkipOnFail.py index cbfbff1b6..4e1e60f61 100644 --- a/module/plugins/hooks/UnSkipOnFail.py +++ b/module/plugins/hooks/UnSkipOnFail.py @@ -7,7 +7,7 @@ from module.plugins.internal.Hook import Hook class UnSkipOnFail(Hook): __name__ = "UnSkipOnFail" __type__ = "hook" - __version__ = "0.08" + __version__ = "0.09" __config__ = [("activated", "bool", "Activated", True)] @@ -29,11 +29,11 @@ class UnSkipOnFail(Hook): return msg = _("Looking for skipped duplicates of: %s (pid:%s)") - self.logInfo(msg % (pyfile.name, pyfile.package().id)) + self.log_info(msg % (pyfile.name, pyfile.package().id)) - link = self.findDuplicate(pyfile) + link = self.find_duplicate(pyfile) if link: - self.logInfo(_("Queue found duplicate: %s (pid:%s)") % (link.name, link.packageID)) + self.log_info(_("Queue found duplicate: %s (pid:%s)") % (link.name, link.packageID)) # Change status of "link" to "new_status". # "link" has to be a valid FileData object, @@ -50,10 +50,10 @@ class UnSkipOnFail(Hook): pylink.release() else: - self.logInfo(_("No duplicates found")) + self.log_info(_("No duplicates found")) - def findDuplicate(self, pyfile): + def find_duplicate(self, pyfile): """Search all packages for duplicate links to "pyfile". Duplicates are links that would overwrite "pyfile". To test on duplicity the package-folder and link-name diff --git a/module/plugins/hooks/UpdateManager.py b/module/plugins/hooks/UpdateManager.py index a06ed97e9..488b300b8 100644 --- a/module/plugins/hooks/UpdateManager.py +++ b/module/plugins/hooks/UpdateManager.py @@ -28,7 +28,7 @@ def exists(path): class UpdateManager(Hook): __name__ = "UpdateManager" __type__ = "hook" - __version__ = "0.53" + __version__ = "0.54" __config__ = [("activated" , "bool", "Activated" , True ), ("checkinterval", "int" , "Check interval in hours" , 8 ), @@ -63,11 +63,11 @@ class UpdateManager(Hook): self.info = {'pyload': False, 'version': None, 'plugins': False, 'last_check': time.time()} self.mtimes = {} #: store modification time for each plugin - self.event_list = ["allDownloadsProcessed"] + self.event_map = {'allDownloadsProcessed': "all_downloads_processed"} self.interval = 10 - if self.getConfig('checkonstart'): + if self.get_config('checkonstart'): self.core.api.pauseServer() self.checkonstart = True else: @@ -76,27 +76,27 @@ class UpdateManager(Hook): self.do_restart = False - def allDownloadsProcessed(self): + def all_downloads_processed(self): if self.do_restart is True: - self.logWarning(_("Downloads are done, restarting pyLoad to reload the updated plugins")) + self.log_warning(_("Downloads are done, restarting pyLoad to reload the updated plugins")) self.core.api.restart() def periodical(self): if self.core.debug: - if self.getConfig('reloadplugins'): - self.autoreloadPlugins() + if self.get_config('reloadplugins'): + self.autoreload_plugins() - if self.getConfig('nodebugupdate'): + if self.get_config('nodebugupdate'): return - if self.getConfig('checkperiod') \ - and time.time() - max(self.MIN_CHECK_INTERVAL, self.getConfig('checkinterval') * 60 * 60) > self.info['last_check']: + if self.get_config('checkperiod') \ + and time.time() - max(self.MIN_CHECK_INTERVAL, self.get_config('checkinterval') * 60 * 60) > self.info['last_check']: self.update() @Expose - def autoreloadPlugins(self): + def autoreload_plugins(self): """ Reload and reindex all modified plugins """ @@ -133,7 +133,7 @@ class UpdateManager(Hook): get={'v': self.core.api.getServerVersion()}).splitlines() except Exception: - self.logWarning(_("Unable to retrieve server to get updates")) + self.log_warning(_("Unable to retrieve server to get updates")) @Expose @@ -142,12 +142,12 @@ class UpdateManager(Hook): """ Check for updates """ - if self._update() is 2 and self.getConfig('autorestart'): + if self._update() is 2 and self.get_config('autorestart'): if not self.core.api.statusDownloads(): self.core.api.restart() else: self.do_restart = True - self.logWarning(_("Downloads are active, will restart once the download is done")) + self.log_warning(_("Downloads are active, will restart once the download is done")) self.core.api.pauseServer() @@ -160,15 +160,15 @@ class UpdateManager(Hook): exitcode = 0 elif data[0] == "None": - self.logInfo(_("No new pyLoad version available")) - exitcode = self._updatePlugins(data[1:]) + self.log_info(_("No new pyLoad version available")) + exitcode = self._update_plugins(data[1:]) elif onlyplugin: exitcode = 0 else: - self.logInfo(_("*** New pyLoad Version %s available ***") % data[0]) - self.logInfo(_("*** Get it here: https://github.com/pyload/pyload/releases ***")) + self.log_info(_("*** New pyLoad Version %s available ***") % data[0]) + self.log_info(_("*** Get it here: https://github.com/pyload/pyload/releases ***")) self.info['pyload'] = True self.info['version'] = data[0] exitcode = 3 @@ -181,7 +181,7 @@ class UpdateManager(Hook): return exitcode - def _updatePlugins(self, data): + def _update_plugins(self, data): """ Check for plugin updates """ @@ -218,8 +218,8 @@ class UpdateManager(Hook): updatelist.pop(idx) break - for t, n in self.removePlugins(sorted(type_plugins)): - self.logInfo(_("Removed blacklisted plugin: [%(type)s] %(name)s") % { + for t, n in self.remove_plugins(sorted(type_plugins)): + self.log_info(_("Removed blacklisted plugin: [%(type)s] %(name)s") % { 'type': t, 'name': n, }) @@ -252,7 +252,7 @@ class UpdateManager(Hook): else: continue - self.logInfo(_(msg) % {'type' : type, + self.log_info(_(msg) % {'type' : type, 'name' : name, 'oldver': oldver, 'newver': newver}) @@ -269,21 +269,21 @@ class UpdateManager(Hook): raise Exception, _("Version mismatch") except Exception, e: - self.logError(_("Error updating plugin: %s") % filename, e) + self.log_error(_("Error updating plugin: %s") % filename, e) if updated: - self.logInfo(_("*** Plugins updated ***")) + self.log_info(_("*** Plugins updated ***")) if self.core.pluginManager.reloadPlugins(updated): exitcode = 1 else: - self.logWarning(_("pyLoad restart required to reload the updated plugins")) + self.log_warning(_("pyLoad restart required to reload the updated plugins")) self.info['plugins'] = True exitcode = 2 self.manager.dispatchEvent("plugin_updated", updated) else: - self.logInfo(_("No plugin updates available")) + self.log_info(_("No plugin updates available")) # Exit codes: # 0 = No plugin updated @@ -293,7 +293,7 @@ class UpdateManager(Hook): @Expose - def removePlugins(self, type_plugins): + def remove_plugins(self, type_plugins): """ Delete plugins from disk """ @@ -302,7 +302,7 @@ class UpdateManager(Hook): removed = set() - self.logDebug("Requested deletion of plugins: %s" % type_plugins) + self.log_debug("Requested deletion of plugins: %s" % type_plugins) for type, name in type_plugins: rootplugins = os.path.join(pypath, "module", "plugins") @@ -316,7 +316,7 @@ class UpdateManager(Hook): self.manager.deactivateHook(name) except Exception, e: - self.logDebug(e) + self.log_debug(e) for filename in (py_filename, pyc_filename): if not exists(filename): @@ -326,7 +326,7 @@ class UpdateManager(Hook): os.remove(filename) except OSError, e: - self.logError(_("Error removing: %s") % filename, e) + self.log_error(_("Error removing: %s") % filename, e) else: id = (type, name) diff --git a/module/plugins/hooks/UserAgentSwitcher.py b/module/plugins/hooks/UserAgentSwitcher.py index ea2d84a43..fdfe4b673 100644 --- a/module/plugins/hooks/UserAgentSwitcher.py +++ b/module/plugins/hooks/UserAgentSwitcher.py @@ -8,7 +8,7 @@ from module.plugins.internal.Hook import Hook class UserAgentSwitcher(Hook): __name__ = "UserAgentSwitcher" __type__ = "hook" - __version__ = "0.09" + __version__ = "0.10" __config__ = [("activated" , "bool", "Activated" , True ), ("connecttimeout", "int" , "Connection timeout in seconds" , 60 ), @@ -28,9 +28,9 @@ class UserAgentSwitcher(Hook): def download_preparing(self, pyfile): - connecttimeout = self.getConfig('connecttimeout') - maxredirs = self.getConfig('maxredirs') - useragent = self.getConfig('useragent') + connecttimeout = self.get_config('connecttimeout') + maxredirs = self.get_config('maxredirs') + useragent = self.get_config('useragent') if connecttimeout: pyfile.plugin.req.http.c.setopt(pycurl.CONNECTTIMEOUT, connecttimeout) @@ -39,5 +39,5 @@ class UserAgentSwitcher(Hook): pyfile.plugin.req.http.c.setopt(pycurl.MAXREDIRS, maxredirs) if useragent: - self.logDebug("Use custom user-agent string: " + useragent) + self.log_debug("Use custom user-agent string: " + useragent) pyfile.plugin.req.http.c.setopt(pycurl.USERAGENT, useragent) diff --git a/module/plugins/hooks/WindowsPhoneNotify.py b/module/plugins/hooks/WindowsPhoneNotify.py index 713499322..511b4b568 100644 --- a/module/plugins/hooks/WindowsPhoneNotify.py +++ b/module/plugins/hooks/WindowsPhoneNotify.py @@ -9,7 +9,7 @@ from module.plugins.internal.Hook import Hook, Expose class WindowsPhoneNotify(Hook): __name__ = "WindowsPhoneNotify" __type__ = "hook" - __version__ = "0.11" + __version__ = "0.12" __config__ = [("push-id" , "str" , "Push ID" , "" ), ("push-url" , "str" , "Push url" , "" ), @@ -34,25 +34,26 @@ class WindowsPhoneNotify(Hook): def setup(self): self.info = {} #@TODO: Remove in 0.4.10 - self.event_list = ["allDownloadsProcessed", "plugin_updated"] + self.event_list = ["plugin_updated"] + self.event_map = {'allDownloadsProcessed': "all_downloads_processed"} self.last_notify = 0 self.notifications = 0 def plugin_updated(self, type_plugins): - if not self.getConfig('notifyupdate'): + if not self.get_config('notifyupdate'): return self.notify(_("Plugins updated"), str(type_plugins)) def activate(self): - self.key = (self.getConfig('push-id'), self.getConfig('push-url')) + self.key = (self.get_config('push-id'), self.get_config('push-url')) def exit(self): - if not self.getConfig('notifyexit'): + if not self.get_config('notifyexit'): return if self.core.do_restart: @@ -62,19 +63,19 @@ class WindowsPhoneNotify(Hook): def captcha_task(self, task): - if not self.getConfig('notifycaptcha'): + if not self.get_config('notifycaptcha'): return self.notify(_("Captcha"), _("New request waiting user input")) def package_finished(self, pypack): - if self.getConfig('notifypackage'): + if self.get_config('notifypackage'): self.notify(_("Package finished"), pypack.name) - def allDownloadsProcessed(self): - if not self.getConfig('notifyprocessed'): + def all_downloads_processed(self): + if not self.get_config('notifyprocessed'): return if any(True for pdata in self.core.api.getQueue() if pdata.linksdone < pdata.linkstotal): @@ -83,7 +84,7 @@ class WindowsPhoneNotify(Hook): self.notify(_("All packages finished")) - def getXmlData(self, msg): + def get_xml_data(self, msg): return ("<?xml version='1.0' encoding='utf-8'?> <wp:Notification xmlns:wp='WPNotification'> " "<wp:Toast> <wp:Text1>pyLoad</wp:Text1> <wp:Text2>%s</wp:Text2> " "</wp:Toast> </wp:Notification>" % msg) @@ -99,21 +100,21 @@ class WindowsPhoneNotify(Hook): if not id or not url: return - if self.core.isClientConnected() and not self.getConfig('ignoreclient'): + if self.core.isClientConnected() and not self.get_config('ignoreclient'): return elapsed_time = time.time() - self.last_notify - if elapsed_time < self.getConfig("sendtimewait"): + if elapsed_time < self.get_config("sendtimewait"): return if elapsed_time > 60: self.notifications = 0 - elif self.notifications >= self.getConfig("sendpermin"): + elif self.notifications >= self.get_config("sendpermin"): return - request = self.getXmlData("%s: %s" % (event, msg) if msg else event) + request = self.get_xml_data("%s: %s" % (event, msg) if msg else event) webservice = httplib.HTTP(url) webservice.putrequest("POST", id) diff --git a/module/plugins/hooks/XFileSharingPro.py b/module/plugins/hooks/XFileSharingPro.py index 0c103b56a..9c42d1c0a 100644 --- a/module/plugins/hooks/XFileSharingPro.py +++ b/module/plugins/hooks/XFileSharingPro.py @@ -8,7 +8,7 @@ from module.plugins.internal.Hook import Hook class XFileSharingPro(Hook): __name__ = "XFileSharingPro" __type__ = "hook" - __version__ = "0.39" + __version__ = "0.40" __config__ = [("activated" , "bool", "Activated" , True ), ("use_hoster_list" , "bool", "Load listed hosters only" , False), @@ -34,41 +34,41 @@ class XFileSharingPro(Hook): "junkyvideo.com", "linestorage.com", "ravishare.com", "ryushare.com", "salefiles.com", "sendmyway.com", "sharebeast.com", "sharesix.com", "thefile.me", "verzend.be", "worldbytez.com", "xvidstage.com", - #NOT TESTED: + # NOT TESTED: "101shared.com", "4upfiles.com", "filemaze.ws", "filenuke.com", "linkzhost.com", "mightyupload.com", "rockdizfile.com", "sharerepo.com", "shareswift.com", "uploadbaz.com", "uploadc.com", "vidbull.com", "zalaa.com", "zomgupload.com", - #NOT WORKING: + # NOT WORKING: "amonshare.com", "banicrazy.info", "boosterking.com", "host4desi.com", "laoupload.com", "rd-fs.com"] CRYPTER_BUILTIN = ["junocloud.me", "rapidfileshare.net"] - #: def pluginConfigChanged(self, plugin, name, value): - #: self.loadPattern() + # def plugin_config_changed(self, plugin, name, value): + # self.load_pattern() def setup(self): self.info = {} #@TODO: Remove in 0.4.10 - #: self.event_list = ["pluginConfigChanged"] + # self.event_map = {'pluginConfigChanged': "plugin_config_changed"} def activate(self): - self.loadPattern() + self.load_pattern() - def loadPattern(self): - use_builtin_list = self.getConfig('use_builtin_list') + def load_pattern(self): + use_builtin_list = self.get_config('use_builtin_list') for type, plugin in (("hoster", "XFileSharingPro"), ("crypter", "XFileSharingProFolder")): - every_plugin = not self.getConfig("use_%s_list" % type) + every_plugin = not self.get_config("use_%s_list" % type) if every_plugin: - self.logInfo(_("Handling any %s I can!") % type) + self.log_info(_("Handling any %s I can!") % type) pattern = self.regexp[type][0] else: - plugins = self.getConfig('%s_list' % type) + plugins = self.get_config('%s_list' % type) plugin_set = set(plugins.replace(' ', '').replace('\\', '').replace('|', ',').replace(';', ',').lower().split(',')) if use_builtin_list: @@ -77,14 +77,14 @@ class XFileSharingPro(Hook): plugin_set -= set(('', u'')) if not plugin_set: - self.logInfo(_("No %s to handle") % type) + self.log_info(_("No %s to handle") % type) self._unload(type, plugin) return match_list = '|'.join(sorted(plugin_set)) len_match_list = len(plugin_set) - self.logInfo(_("Handling %d %s%s: %s") % (len_match_list, + self.log_info(_("Handling %d %s%s: %s") % (len_match_list, type, "" if len_match_list == 1 else "s", match_list.replace('|', ', '))) @@ -95,7 +95,7 @@ class XFileSharingPro(Hook): dict['pattern'] = pattern dict['re'] = re.compile(pattern) - self.logDebug("Loaded %s pattern: %s" % (type, pattern)) + self.log_debug("Loaded %s pattern: %s" % (type, pattern)) def _unload(self, type, plugin): @@ -105,13 +105,13 @@ class XFileSharingPro(Hook): def deactivate(self): - #: self.unloadHoster("BasePlugin") + #: self.unload_hoster("BasePlugin") for type, plugin in (("hoster", "XFileSharingPro"), ("crypter", "XFileSharingProFolder")): self._unload(type, plugin) - def unloadHoster(self, hoster): + def unload_hoster(self, hoster): hdict = self.core.pluginManager.hosterPlugins[hoster] if "new_name" in hdict and hdict['new_name'] == "XFileSharingPro": if "module" in hdict: @@ -126,10 +126,10 @@ class XFileSharingPro(Hook): return False - #: def download_failed(self, pyfile): - #: if pyfile.pluginname == "BasePlugin" \ - #: and pyfile.hasStatus("failed") \ - #: and not self.getConfig('use_hoster_list') \ - #: and self.unloadHoster("BasePlugin"): - #: self.logDebug("Unloaded XFileSharingPro from BasePlugin") - #: pyfile.setStatus("queued") + # def download_failed(self, pyfile): + # if pyfile.pluginname == "BasePlugin" \ + # and pyfile.hasStatus("failed") \ + # and not self.get_config('use_hoster_list') \ + # and self.unload_hoster("BasePlugin"): + # self.log_debug("Unloaded XFileSharingPro from BasePlugin") + # pyfile.setStatus("queued") diff --git a/module/plugins/hooks/XMPPInterface.py b/module/plugins/hooks/XMPPInterface.py index 8a76257ad..a2c32166f 100644 --- a/module/plugins/hooks/XMPPInterface.py +++ b/module/plugins/hooks/XMPPInterface.py @@ -12,7 +12,7 @@ from module.plugins.hooks.IRCInterface import IRCInterface class XMPPInterface(IRCInterface, JabberClient): __name__ = "XMPPInterface" __type__ = "hook" - __version__ = "0.11" + __version__ = "0.12" __config__ = [("jid" , "str" , "Jabber ID" , "user@exmaple-jabber-server.org" ), ("pw" , "str" , "Password" , "" ), @@ -33,14 +33,14 @@ class XMPPInterface(IRCInterface, JabberClient): def __init__(self, core, manager): IRCInterface.__init__(self, core, manager) - self.jid = JID(self.getConfig('jid')) - password = self.getConfig('pw') + self.jid = JID(self.get_config('jid')) + password = self.get_config('pw') #: if bare JID is provided add a resource -- it is required if not self.jid.resource: self.jid = JID(self.jid.node, self.jid.domain, "pyLoad") - if self.getConfig('tls'): + if self.get_config('tls'): tls_settings = streamtls.TLSSettings(require=True, verify_peer=False) auth = ("sasl:PLAIN", "sasl:DIGEST-MD5") else: @@ -67,7 +67,7 @@ class XMPPInterface(IRCInterface, JabberClient): def package_finished(self, pypack): try: - if self.getConfig('info_pack'): + if self.get_config('info_pack'): self.announce(_("Package finished: %s") % pypack.name) except Exception: pass @@ -75,7 +75,7 @@ class XMPPInterface(IRCInterface, JabberClient): def download_finished(self, pyfile): try: - if self.getConfig('info_file'): + if self.get_config('info_file'): self.announce( _("Download finished: %(name)s @ %(plugin)s") % {"name": pyfile.name, "plugin": pyfile.pluginname}) except Exception: @@ -88,7 +88,7 @@ class XMPPInterface(IRCInterface, JabberClient): try: self.loop() except Exception, ex: - self.logError(ex) + self.log_error(ex) def stream_state_changed(self, state, arg): @@ -97,19 +97,19 @@ class XMPPInterface(IRCInterface, JabberClient): to a server changes. This will usually be used to let the user know what is going on. """ - self.logDebug("*** State changed: %s %r ***" % (state, arg)) + self.log_debug("*** State changed: %s %r ***" % (state, arg)) def disconnected(self): - self.logDebug("Client was disconnected") + self.log_debug("Client was disconnected") def stream_closed(self, stream): - self.logDebug("Stream was closed", stream) + self.log_debug("Stream was closed", stream) def stream_error(self, err): - self.logDebug("Stream Error", err) + self.log_debug("Stream Error", err) def get_message_handlers(self): @@ -129,8 +129,8 @@ class XMPPInterface(IRCInterface, JabberClient): subject = stanza.get_subject() body = stanza.get_body() t = stanza.get_type() - self.logDebug("Message from %s received." % stanza.get_from()) - self.logDebug("Body: %s Subject: %s Type: %s" % (body, subject, t)) + self.log_debug("Message from %s received." % stanza.get_from()) + self.log_debug("Body: %s Subject: %s Type: %s" % (body, subject, t)) if t == "headline": #: 'headline' messages should never be replied to @@ -141,11 +141,11 @@ class XMPPInterface(IRCInterface, JabberClient): to_jid = stanza.get_from() from_jid = stanza.get_to() - #j = JID() + # j = JID() to_name = to_jid.as_utf8() from_name = from_jid.as_utf8() - names = self.getConfig('owners').split(";") + names = self.get_config('owners').split(";") if to_name in names or to_jid.node + "@" + to_jid.domain in names: messages = [] @@ -174,7 +174,7 @@ class XMPPInterface(IRCInterface, JabberClient): messages.append(m) except Exception, e: - self.logError(e) + self.log_error(e) return messages @@ -190,8 +190,8 @@ class XMPPInterface(IRCInterface, JabberClient): """ Send message to all owners """ - for user in self.getConfig('owners').split(";"): - self.logDebug("Send message to", user) + for user in self.get_config('owners').split(";"): + self.log_debug("Send message to", user) to_jid = JID(user) diff --git a/module/plugins/hooks/ZeveraComHook.py b/module/plugins/hooks/ZeveraComHook.py index 611fc5d91..c0109eb38 100644 --- a/module/plugins/hooks/ZeveraComHook.py +++ b/module/plugins/hooks/ZeveraComHook.py @@ -6,7 +6,7 @@ from module.plugins.internal.MultiHook import MultiHook class ZeveraComHook(MultiHook): __name__ = "ZeveraComHook" __type__ = "hook" - __version__ = "0.05" + __version__ = "0.06" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -19,6 +19,6 @@ class ZeveraComHook(MultiHook): ("Walter Purcaro", "vuolter@gmail.com" )] - def getHosters(self): + def get_hosters(self): html = self.account.api_response(pyreq.getHTTPRequest(timeout=120), cmd="gethosters") return [x.strip() for x in html.split(",")] diff --git a/module/plugins/hoster/AlldebridCom.py b/module/plugins/hoster/AlldebridCom.py index e0daa6657..46379bdc9 100644 --- a/module/plugins/hoster/AlldebridCom.py +++ b/module/plugins/hoster/AlldebridCom.py @@ -11,7 +11,7 @@ from module.utils import parseFileSize class AlldebridCom(MultiHoster): __name__ = "AlldebridCom" __type__ = "hoster" - __version__ = "0.47" + __version__ = "0.48" __pattern__ = r'https?://(?:www\.|s\d+\.)?alldebrid\.com/dl/[\w^_]+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -23,23 +23,23 @@ class AlldebridCom(MultiHoster): def setup(self): - self.chunkLimit = 16 + self.chunk_limit = 16 - def handlePremium(self, pyfile): - password = self.getPassword() + def handle_premium(self, pyfile): + password = self.get_password() data = json_loads(self.load("http://www.alldebrid.com/service.php", get={'link': pyfile.url, 'json': "true", 'pw': password})) - self.logDebug("Json data", data) + self.log_debug("Json data", data) if data['error']: if data['error'] == "This link isn't available on the hoster website.": self.offline() else: - self.logWarning(data['error']) - self.tempOffline() + self.log_warning(data['error']) + self.temp_offline() else: if pyfile.name and not pyfile.name.endswith('.tmp'): pyfile.name = data['filename'] diff --git a/module/plugins/hoster/AndroidfilehostCom.py b/module/plugins/hoster/AndroidfilehostCom.py index e5f2c7f88..35e311154 100644 --- a/module/plugins/hoster/AndroidfilehostCom.py +++ b/module/plugins/hoster/AndroidfilehostCom.py @@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class AndroidfilehostCom(SimpleHoster): __name__ = "AndroidfilehostCom" __type__ = "hoster" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'https?://(?:www\.)?androidfilehost\.com/\?fid=\d+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -31,17 +31,17 @@ class AndroidfilehostCom(SimpleHoster): def setup(self): - self.multiDL = True - self.resumeDownload = True - self.chunkLimit = 1 + self.multi_dl = True + self.resume_download = True + self.chunk_limit = 1 - def handleFree(self, pyfile): + def handle_free(self, pyfile): wait = re.search(self.WAIT_PATTERN, self.html) - self.logDebug("Waiting time: %s seconds" % wait.group(1)) + self.log_debug("Waiting time: %s seconds" % wait.group(1)) fid = re.search(r'id="fid" value="(\d+)" />', self.html).group(1) - self.logDebug("fid: %s" % fid) + self.log_debug("fid: %s" % fid) html = self.load("https://www.androidfilehost.com/libs/otf/mirrors.otf.php", post={'submit': 'submit', @@ -51,7 +51,7 @@ class AndroidfilehostCom(SimpleHoster): self.link = re.findall('"url":"(.*?)"', html)[0].replace("\\", "") mirror_host = self.link.split("/")[2] - self.logDebug("Mirror Host: %s" % mirror_host) + self.log_debug("Mirror Host: %s" % mirror_host) html = self.load("https://www.androidfilehost.com/libs/otf/stats.otf.php", get={'fid' : fid, diff --git a/module/plugins/hoster/BasePlugin.py b/module/plugins/hoster/BasePlugin.py index 82311dd6b..7fc0426ea 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.44" + __version__ = "0.45" __pattern__ = r'^unmatchable$' @@ -23,7 +23,7 @@ class BasePlugin(Hoster): @classmethod - def getInfo(cls, url="", html=""): #@TODO: Move to hoster class in 0.4.10 + def get_info(cls, url="", html=""): #@TODO: Move to hoster class in 0.4.10 url = urllib.unquote(url) url_p = urlparse.urlparse(url) return {'name' : (url_p.path.split('/')[-1] @@ -35,23 +35,23 @@ class BasePlugin(Hoster): def setup(self): - self.chunkLimit = -1 - self.multiDL = True - self.resumeDownload = True + self.chunk_limit = -1 + self.multi_dl = True + self.resume_download = True def process(self, pyfile): """ Main function """ - pyfile.name = self.getInfo(pyfile.url)['name'] + 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.directLink(self, urllib.unquote(pyfile.url)) + link = self.direct_link(self, urllib.unquote(pyfile.url)) if link: self.download(link, ref=False, disposition=True) @@ -63,17 +63,17 @@ class BasePlugin(Hoster): self.offline() elif e.code in (401, 403): - self.logDebug("Auth required", "Received HTTP status code: %d" % e.code) + self.log_debug("Auth required", "Received HTTP status code: %d" % e.code) account = self.core.accountManager.getAccountPlugin('Http') servers = [x['login'] for x in account.getAllAccounts()] server = urlparse.urlparse(pyfile.url).netloc if server in servers: - self.logDebug("Logging on to %s" % server) + self.log_debug("Logging on to %s" % server) self.req.addAuth(account.getAccountData(server)['password']) else: - pwd = self.getPassword() + pwd = self.get_password() if ':' in pwd: self.req.addAuth(pwd) else: @@ -85,7 +85,7 @@ class BasePlugin(Hoster): else: self.fail(_("No file downloaded")) #@TODO: Move to hoster class in 0.4.10 - errmsg = self.checkDownload({'Empty file' : re.compile(r'\A\s*\Z'), + errmsg = self.check_download({'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)')}) @@ -93,11 +93,11 @@ class BasePlugin(Hoster): return try: - errmsg += " | " + self.lastCheck.group(1).strip() + errmsg += " | " + self.last_check.group(1).strip() except Exception: pass - self.logWarning("Check result: " + errmsg, "Waiting 1 minute and retry") + self.log_warning("Check result: " + errmsg, "Waiting 1 minute and retry") self.retry(3, 60, errmsg) diff --git a/module/plugins/hoster/BasketbuildCom.py b/module/plugins/hoster/BasketbuildCom.py index cfc945464..709360544 100644 --- a/module/plugins/hoster/BasketbuildCom.py +++ b/module/plugins/hoster/BasketbuildCom.py @@ -12,7 +12,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class BasketbuildCom(SimpleHoster): __name__ = "BasketbuildCom" __type__ = "hoster" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'https?://(?:www\.)?(?:\w\.)?basketbuild\.com/filedl/.+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -28,12 +28,12 @@ class BasketbuildCom(SimpleHoster): def setup(self): - self.multiDL = True - self.resumeDownload = True - self.chunkLimit = 1 + self.multi_dl = True + self.resume_download = True + self.chunk_limit = 1 - def handleFree(self, pyfile): + def handle_free(self, pyfile): try: link1 = re.search(r'href="(.+dlgate/.+)"', self.html).group(1) self.html = self.load(link1) @@ -42,15 +42,15 @@ class BasketbuildCom(SimpleHoster): self.error(_("Hop #1 not found")) else: - self.logDebug("Next hop: %s" % link1) + self.log_debug("Next hop: %s" % link1) try: wait = re.search(r'var sec = (\d+)', self.html).group(1) - self.logDebug("Wait %s seconds" % wait) + self.log_debug("Wait %s seconds" % wait) self.wait(wait) except AttributeError: - self.logDebug("No wait time found") + self.log_debug("No wait time found") try: self.link = re.search(r'id="dlLink">\s*<a href="(.+?)"', self.html).group(1) diff --git a/module/plugins/hoster/BayfilesCom.py b/module/plugins/hoster/BayfilesCom.py index cccd4acc7..1c35bcc60 100644 --- a/module/plugins/hoster/BayfilesCom.py +++ b/module/plugins/hoster/BayfilesCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class BayfilesCom(DeadHoster): __name__ = "BayfilesCom" __type__ = "hoster" - __version__ = "0.09" + __version__ = "0.10" __pattern__ = r'https?://(?:www\.)?bayfiles\.(com|net)/file/(?P<ID>\w+/\w+/[^/]+)' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/BezvadataCz.py b/module/plugins/hoster/BezvadataCz.py index d3f25d52f..f0514b817 100644 --- a/module/plugins/hoster/BezvadataCz.py +++ b/module/plugins/hoster/BezvadataCz.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class BezvadataCz(SimpleHoster): __name__ = "BezvadataCz" __type__ = "hoster" - __version__ = "0.27" + __version__ = "0.28" __pattern__ = r'http://(?:www\.)?bezvadata\.cz/stahnout/.+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -24,22 +24,22 @@ class BezvadataCz(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = True + self.resume_download = True + self.multi_dl = True - def handleFree(self, pyfile): - #download button + def handle_free(self, pyfile): + # download button m = re.search(r'<a class="stahnoutSoubor".*?href="(.*?)"', self.html) if m is None: self.error(_("Page 1 URL not found")) url = "http://bezvadata.cz%s" % m.group(1) - #captcha form + # captcha form self.html = self.load(url) - self.checkErrors() + self.check_errors() for _i in xrange(5): - action, inputs = self.parseHtmlForm('frm-stahnoutFreeForm') + action, inputs = self.parse_html_form('frm-stahnoutFreeForm') if not inputs: self.error(_("FreeForm")) @@ -47,31 +47,31 @@ class BezvadataCz(SimpleHoster): if m is None: self.error(_("Wrong captcha image")) - #captcha image is contained in html page as base64encoded data but decryptCaptcha() expects image url + # captcha image is contained in html page as base64encoded data but decryptCaptcha() expects image url self.load, proper_load = self.loadcaptcha, self.load try: - inputs['captcha'] = self.decryptCaptcha(m.group(1), imgtype='png') + inputs['captcha'] = self.decrypt_captcha(m.group(1), imgtype='png') finally: self.load = proper_load if '<img src="data:image/png;base64' in self.html: - self.invalidCaptcha() + self.invalid_captcha() else: - self.correctCaptcha() + self.correct_captcha() break else: self.fail(_("No valid captcha code entered")) - #download url + # download url self.html = self.load("http://bezvadata.cz%s" % action, post=inputs) - self.checkErrors() + self.check_errors() m = re.search(r'<a class="stahnoutSoubor2" href="(.*?)">', self.html) if m is None: self.error(_("Page 2 URL not found")) url = "http://bezvadata.cz%s" % m.group(1) - self.logDebug("DL URL %s" % url) + self.log_debug("DL URL %s" % url) - #countdown + # countdown m = re.search(r'id="countdown">(\d\d):(\d\d)<', self.html) wait_time = (int(m.group(1)) * 60 + int(m.group(2))) if m else 120 self.wait(wait_time, False) @@ -79,11 +79,11 @@ class BezvadataCz(SimpleHoster): self.link = url - def checkErrors(self): + def check_errors(self): if 'images/button-download-disable.png' in self.html: self.wait(5 * 60, 24, _("Download limit reached")) #: parallel dl limit elif '<div class="infobox' in self.html: - self.tempOffline() + self.temp_offline() else: return super(BezvadataCz, self).checkErrors() diff --git a/module/plugins/hoster/BillionuploadsCom.py b/module/plugins/hoster/BillionuploadsCom.py index d0fbd7a8b..916e847e0 100644 --- a/module/plugins/hoster/BillionuploadsCom.py +++ b/module/plugins/hoster/BillionuploadsCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class BillionuploadsCom(DeadHoster): __name__ = "BillionuploadsCom" __type__ = "hoster" - __version__ = "0.06" + __version__ = "0.07" __pattern__ = r'http://(?:www\.)?billionuploads\.com/\w{12}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/BitshareCom.py b/module/plugins/hoster/BitshareCom.py index 2736d98a8..d312cf277 100644 --- a/module/plugins/hoster/BitshareCom.py +++ b/module/plugins/hoster/BitshareCom.py @@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class BitshareCom(SimpleHoster): __name__ = "BitshareCom" __type__ = "hoster" - __version__ = "0.54" + __version__ = "0.55" __pattern__ = r'http://(?:www\.)?bitshare\.com/(files/)?(?(1)|\?f=)(?P<ID>\w+)(?(1)/(?P<NAME>.+?)\.html)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -32,8 +32,8 @@ class BitshareCom(SimpleHoster): def setup(self): - self.multiDL = self.premium - self.chunkLimit = 1 + self.multi_dl = self.premium + self.chunk_limit = 1 def process(self, pyfile): @@ -43,7 +43,7 @@ class BitshareCom(SimpleHoster): #: File id m = re.match(self.__pattern__, pyfile.url) self.file_id = max(m.group('ID1'), m.group('ID2')) - self.logDebug("File id is [%s]" % self.file_id) + self.log_debug("File id is [%s]" % self.file_id) #: Load main page self.html = self.load(pyfile.url, ref=False) @@ -54,7 +54,7 @@ class BitshareCom(SimpleHoster): #: Check Traffic used up if re.search(self.TRAFFIC_USED_UP, self.html): - self.logInfo(_("Your Traffic is used up for today")) + self.log_info(_("Your Traffic is used up for today")) self.wait(30 * 60, True) self.retry() @@ -69,16 +69,16 @@ class BitshareCom(SimpleHoster): #: Ajax file id self.ajaxid = re.search(self.AJAXID_PATTERN, self.html).group(1) - self.logDebug("File ajax id is [%s]" % self.ajaxid) + self.log_debug("File ajax id is [%s]" % self.ajaxid) #: This may either download our file or forward us to an error page - self.link = self.getDownloadUrl() + self.link = self.get_download_url() - if self.checkDownload({"error": ">Error occured<"}): + if self.check_download({"error": ">Error occured<"}): self.retry(5, 5 * 60, "Bitshare host : Error occured") - def getDownloadUrl(self): + def get_download_url(self): #: Return location if direct download is active if self.premium: header = self.load(self.pyfile.url, just_header=True) @@ -86,22 +86,22 @@ class BitshareCom(SimpleHoster): return header['location'] #: Get download info - self.logDebug("Getting download info") + self.log_debug("Getting download info") res = self.load("http://bitshare.com/files-ajax/" + self.file_id + "/request.html", post={"request": "generateID", "ajaxid": self.ajaxid}) - self.handleErrors(res, ':') + self.handle_errors(res, ':') parts = res.split(":") filetype = parts[0] wait = int(parts[1]) captcha = int(parts[2]) - self.logDebug("Download info [type: '%s', waiting: %d, captcha: %d]" % (filetype, wait, captcha)) + self.log_debug("Download info [type: '%s', waiting: %d, captcha: %d]" % (filetype, wait, captcha)) #: Waiting if wait > 0: - self.logDebug("Waiting %d seconds." % wait) + self.log_debug("Waiting %d seconds." % wait) if wait < 120: self.wait(wait, False) else: @@ -110,7 +110,7 @@ class BitshareCom(SimpleHoster): #: Resolve captcha if captcha == 1: - self.logDebug("File is captcha protected") + self.log_debug("File is captcha protected") recaptcha = ReCaptcha(self) #: Try up to 3 times @@ -121,23 +121,23 @@ class BitshareCom(SimpleHoster): "ajaxid" : self.ajaxid, "recaptcha_challenge_field": challenge, "recaptcha_response_field" : response}) - if self.handleCaptchaErrors(res): + if self.handle_captcha_errors(res): break #: Get download URL - self.logDebug("Getting download url") + self.log_debug("Getting download url") res = self.load("http://bitshare.com/files-ajax/" + self.file_id + "/request.html", post={"request": "getDownloadURL", "ajaxid": self.ajaxid}) - self.handleErrors(res, '#') + self.handle_errors(res, '#') url = res.split("#")[-1] return url - def handleErrors(self, res, separator): - self.logDebug("Checking response [%s]" % res) + def handle_errors(self, res, separator): + self.log_debug("Checking response [%s]" % res) if "ERROR:Session timed out" in res: self.retry() elif "ERROR" in res: @@ -145,15 +145,15 @@ class BitshareCom(SimpleHoster): self.fail(msg) - def handleCaptchaErrors(self, res): - self.logDebug("Result of captcha resolving [%s]" % res) + def handle_captcha_errors(self, res): + self.log_debug("Result of captcha resolving [%s]" % res) if "SUCCESS" in res: - self.correctCaptcha() + self.correct_captcha() return True elif "ERROR:SESSION ERROR" in res: self.retry() - self.invalidCaptcha() + self.invalid_captcha() getInfo = create_getInfo(BitshareCom) diff --git a/module/plugins/hoster/BoltsharingCom.py b/module/plugins/hoster/BoltsharingCom.py index db813ba2e..579b4ce39 100644 --- a/module/plugins/hoster/BoltsharingCom.py +++ b/module/plugins/hoster/BoltsharingCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class BoltsharingCom(DeadHoster): __name__ = "BoltsharingCom" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'http://(?:www\.)?boltsharing\.com/\w{12}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/CatShareNet.py b/module/plugins/hoster/CatShareNet.py index 795da6229..04b9792ad 100644 --- a/module/plugins/hoster/CatShareNet.py +++ b/module/plugins/hoster/CatShareNet.py @@ -9,7 +9,7 @@ from module.plugins.internal.ReCaptcha import ReCaptcha class CatShareNet(SimpleHoster): __name__ = "CatShareNet" __type__ = "hoster" - __version__ = "0.15" + __version__ = "0.16" __pattern__ = r'http://(?:www\.)?catshare\.net/\w{16}' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -32,11 +32,11 @@ class CatShareNet(SimpleHoster): def setup(self): - self.multiDL = self.premium - self.resumeDownload = True + self.multi_dl = self.premium + self.resume_download = True - def handleFree(self, pyfile): + def handle_free(self, pyfile): recaptcha = ReCaptcha(self) response, challenge = recaptcha.challenge() diff --git a/module/plugins/hoster/CloudzerNet.py b/module/plugins/hoster/CloudzerNet.py index af40b8d5f..02cc416aa 100644 --- a/module/plugins/hoster/CloudzerNet.py +++ b/module/plugins/hoster/CloudzerNet.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class CloudzerNet(DeadHoster): __name__ = "CloudzerNet" __type__ = "hoster" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'https?://(?:www\.)?(cloudzer\.net/file/|clz\.to/(file/)?)\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/CloudzillaTo.py b/module/plugins/hoster/CloudzillaTo.py index 09453137d..f58a0aa61 100644 --- a/module/plugins/hoster/CloudzillaTo.py +++ b/module/plugins/hoster/CloudzillaTo.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class CloudzillaTo(SimpleHoster): __name__ = "CloudzillaTo" __type__ = "hoster" - __version__ = "0.07" + __version__ = "0.08" __pattern__ = r'http://(?:www\.)?cloudzilla\.to/share/file/(?P<ID>[\w^_]+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -24,9 +24,9 @@ class CloudzillaTo(SimpleHoster): PASSWORD_PATTERN = r'<div id="pwd_protected">' - def checkErrors(self): + def check_errors(self): if re.search(self.PASSWORD_PATTERN, self.html): - pw = self.getPassword() + pw = self.get_password() if pw: self.html = self.load(self.pyfile.url, get={'key': pw}) else: @@ -38,13 +38,13 @@ class CloudzillaTo(SimpleHoster): return super(CloudzillaTo, self).checkErrors() - def handleFree(self, pyfile): + def handle_free(self, pyfile): self.html = self.load("http://www.cloudzilla.to/generateticket/", - post={'file_id': self.info['pattern']['ID'], 'key': self.getPassword()}) + post={'file_id': self.info['pattern']['ID'], 'key': self.get_password()}) ticket = dict(re.findall(r'<(.+?)>([^<>]+?)</', self.html)) - self.logDebug(ticket) + self.log_debug(ticket) if 'error' in ticket: if "File is password protected" in ticket['error']: @@ -60,8 +60,8 @@ class CloudzillaTo(SimpleHoster): 'ticket_id': ticket['ticket_id']} - def handlePremium(self, pyfile): - return self.handleFree(pyfile) + def handle_premium(self, pyfile): + return self.handle_free(pyfile) getInfo = create_getInfo(CloudzillaTo) diff --git a/module/plugins/hoster/CramitIn.py b/module/plugins/hoster/CramitIn.py index 44dac958d..7f85fcd0b 100644 --- a/module/plugins/hoster/CramitIn.py +++ b/module/plugins/hoster/CramitIn.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class CramitIn(XFSHoster): __name__ = "CramitIn" __type__ = "hoster" - __version__ = "0.07" + __version__ = "0.08" __pattern__ = r'http://(?:www\.)?cramit\.in/\w{12}' diff --git a/module/plugins/hoster/CrockoCom.py b/module/plugins/hoster/CrockoCom.py index 098ba5fab..5250af2c3 100644 --- a/module/plugins/hoster/CrockoCom.py +++ b/module/plugins/hoster/CrockoCom.py @@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class CrockoCom(SimpleHoster): __name__ = "CrockoCom" __type__ = "hoster" - __version__ = "0.20" + __version__ = "0.21" __pattern__ = r'http://(?:www\.)?(crocko|easy-share)\.com/\w+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -32,7 +32,7 @@ class CrockoCom(SimpleHoster): NAME_REPLACEMENTS = [(r'<.*?>', '')] - def handleFree(self, pyfile): + def handle_free(self, pyfile): if "You need Premium membership to download this file." in self.html: self.fail(_("You need Premium membership to download this file")) @@ -57,8 +57,8 @@ class CrockoCom(SimpleHoster): inputs['recaptcha_response_field'], inputs['recaptcha_challenge_field'] = recaptcha.challenge() self.download(action, post=inputs) - if self.checkDownload({"captcha": recaptcha.KEY_AJAX_PATTERN}): - self.invalidCaptcha() + if self.check_download({"captcha": recaptcha.KEY_AJAX_PATTERN}): + self.invalid_captcha() else: break else: diff --git a/module/plugins/hoster/CyberlockerCh.py b/module/plugins/hoster/CyberlockerCh.py index 9d748bf85..e524f63fe 100644 --- a/module/plugins/hoster/CyberlockerCh.py +++ b/module/plugins/hoster/CyberlockerCh.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class CyberlockerCh(DeadHoster): __name__ = "CyberlockerCh" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'http://(?:www\.)?cyberlocker\.ch/\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/CzshareCom.py b/module/plugins/hoster/CzshareCom.py index 01e120e5e..0e28f31dd 100644 --- a/module/plugins/hoster/CzshareCom.py +++ b/module/plugins/hoster/CzshareCom.py @@ -12,7 +12,7 @@ from module.utils import parseFileSize class CzshareCom(SimpleHoster): __name__ = "CzshareCom" __type__ = "hoster" - __version__ = "1.00" + __version__ = "1.01" __pattern__ = r'http://(?:www\.)?(czshare|sdilej)\.(com|cz)/(\d+/|download\.php\?).+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -39,7 +39,7 @@ class CzshareCom(SimpleHoster): USER_CREDIT_PATTERN = r'<div class="credit">\s*kredit: <strong>([\d .,]+)(\w+)</strong>\s*</div><!-- .credit -->' - def checkTrafficLeft(self): + def check_traffic_left(self): #: check if user logged in m = re.search(self.USER_CREDIT_PATTERN, self.html) if m is None: @@ -52,32 +52,32 @@ class CzshareCom(SimpleHoster): #: check user credit try: credit = parseFileSize(m.group(1).replace(' ', ''), m.group(2)) - self.logInfo(_("Premium download for %i KiB of Credit") % (self.pyfile.size / 1024)) - self.logInfo(_("User %s has %i KiB left") % (self.user, credit / 1024)) + self.log_info(_("Premium download for %i KiB of Credit") % (self.pyfile.size / 1024)) + self.log_info(_("User %s has %i KiB left") % (self.user, credit / 1024)) if credit < self.pyfile.size: - self.logInfo(_("Not enough credit to download file: %s") % self.pyfile.name) + self.log_info(_("Not enough credit to download file: %s") % self.pyfile.name) return False except Exception, e: #: let's continue and see what happens... - self.logError(e) + self.log_error(e) return True - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): #: parse download link try: form = re.search(self.PREMIUM_FORM_PATTERN, self.html, re.S).group(1) inputs = dict(re.findall(self.FORM_INPUT_PATTERN, form)) except Exception, e: - self.logError(e) - self.resetAccount() + self.log_error(e) + self.reset_account() #: download the file, destination is determined by pyLoad self.download("http://sdilej.cz/profi_down.php", post=inputs, disposition=True) - def handleFree(self, pyfile): + def handle_free(self, pyfile): #: get free url m = re.search(self.FREE_URL_PATTERN, self.html) if m is None: @@ -85,7 +85,7 @@ class CzshareCom(SimpleHoster): parsed_url = "http://sdilej.cz" + m.group(1) - self.logDebug("PARSED_URL:" + parsed_url) + self.log_debug("PARSED_URL:" + parsed_url) #: get download ticket and parse html self.html = self.load(parsed_url) @@ -98,32 +98,32 @@ class CzshareCom(SimpleHoster): pyfile.size = int(inputs['size']) except Exception, e: - self.logError(e) + self.log_error(e) self.error(_("Form")) #: get and decrypt captcha captcha_url = 'http://sdilej.cz/captcha.php' for _i in xrange(5): - inputs['captchastring2'] = self.decryptCaptcha(captcha_url) + inputs['captchastring2'] = self.decrypt_captcha(captcha_url) self.html = self.load(parsed_url, post=inputs) if u"<li>ZadanÃœ ovÄÅovacà kód nesouhlasÃ!</li>" in self.html: - self.invalidCaptcha() + self.invalid_captcha() elif re.search(self.MULTIDL_PATTERN, self.html): self.wait(5 * 60, 12, _("Download limit reached")) else: - self.correctCaptcha() + self.correct_captcha() break else: self.fail(_("No valid captcha code entered")) m = re.search("countdown_number = (\d+);", self.html) - self.setWait(int(m.group(1)) if m else 50) + self.set_wait(int(m.group(1)) if m else 50) #: download the file, destination is determined by pyLoad - self.logDebug("WAIT URL", self.req.lastEffectiveURL) + self.log_debug("WAIT URL", self.req.lastEffectiveURL) m = re.search("free_wait.php\?server=(.*?)&(.*)", self.req.lastEffectiveURL) if m is None: @@ -134,9 +134,9 @@ class CzshareCom(SimpleHoster): self.wait() - def checkFile(self): + def check_file(self): #: check download - check = self.checkDownload({ + check = self.check_download({ "temp offline" : re.compile(r"^Soubor je do.*asn.* nedostupn.*$"), "credit" : re.compile(r"^Nem.*te dostate.*n.* kredit.$"), "multi-dl" : re.compile(self.MULTIDL_PATTERN), @@ -147,13 +147,13 @@ class CzshareCom(SimpleHoster): self.fail(_("File not available - try later")) elif check == "credit": - self.resetAccount() + self.reset_account() elif check == "multi-dl": self.wait(5 * 60, 12, _("Download limit reached")) elif check == "captcha": - self.invalidCaptcha() + self.invalid_captcha() self.retry() return super(CzshareCom, self).checkFile() diff --git a/module/plugins/hoster/DailymotionCom.py b/module/plugins/hoster/DailymotionCom.py index f9cc0d28e..18f84ff56 100644 --- a/module/plugins/hoster/DailymotionCom.py +++ b/module/plugins/hoster/DailymotionCom.py @@ -8,7 +8,7 @@ from module.network.RequestFactory import getURL from module.plugins.internal.Hoster import Hoster -def getInfo(urls): +def get_info(urls): result = [] regex = re.compile(DailymotionCom.__pattern__) apiurl = "https://api.dailymotion.com/video/%s" @@ -40,7 +40,7 @@ def getInfo(urls): class DailymotionCom(Hoster): __name__ = "DailymotionCom" __type__ = "hoster" - __version__ = "0.21" + __version__ = "0.22" __pattern__ = r'https?://(?:www\.)?dailymotion\.com/.*video/(?P<ID>[\w^_]+)' __config__ = [("quality", "Lowest;LD 144p;LD 240p;SD 384p;HQ 480p;HD 720p;HD 1080p;Highest", "Quality", "Highest")] @@ -51,11 +51,11 @@ class DailymotionCom(Hoster): def setup(self): - self.resumeDownload = True - self.multiDL = True + self.resume_download = True + self.multi_dl = True - def getStreams(self): + def get_streams(self): streams = [] for result in re.finditer(r"\"(?P<URL>http:\\/\\/www.dailymotion.com\\/cdn\\/H264-(?P<QF>.*?)\\.*?)\"", @@ -71,8 +71,8 @@ class DailymotionCom(Hoster): return sorted(streams, key=lambda x: x[0][::-1]) - def getQuality(self): - q = self.getConfig('quality') + def get_quality(self): + q = self.get_config('quality') if q == "Lowest": quality = 0 @@ -84,7 +84,7 @@ class DailymotionCom(Hoster): return quality - def getLink(self, streams, quality): + def get_link(self, streams, quality): if quality > 0: for x, s in [item for item in enumerate(streams)][::-1]: qf = s[0][1] @@ -98,28 +98,28 @@ class DailymotionCom(Hoster): s = streams[idx] - self.logInfo(_("Download video quality %sx%s") % s[0]) + self.log_info(_("Download video quality %sx%s") % s[0]) return s[1] - def checkInfo(self, pyfile): - pyfile.name, pyfile.size, pyfile.status, pyfile.url = getInfo([pyfile.url])[0] + def check_info(self, pyfile): + pyfile.name, pyfile.size, pyfile.status, pyfile.url = get_info([pyfile.url])[0] if pyfile.status == 1: self.offline() elif pyfile.status == 6: - self.tempOffline() + self.temp_offline() def process(self, pyfile): - self.checkInfo(pyfile) + self.check_info(pyfile) id = re.match(self.__pattern__, pyfile.url).group('ID') self.html = self.load("http://www.dailymotion.com/embed/video/" + id) - streams = self.getStreams() - quality = self.getQuality() + streams = self.get_streams() + quality = self.get_quality() - self.download(self.getLink(streams, quality)) + self.download(self.get_link(streams, quality)) diff --git a/module/plugins/hoster/DataHu.py b/module/plugins/hoster/DataHu.py index 955c94437..c6d14c8bf 100644 --- a/module/plugins/hoster/DataHu.py +++ b/module/plugins/hoster/DataHu.py @@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class DataHu(SimpleHoster): __name__ = "DataHu" __type__ = "hoster" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?data\.hu/get/\w+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -28,8 +28,8 @@ class DataHu(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = self.premium + self.resume_download = True + self.multi_dl = self.premium getInfo = create_getInfo(DataHu) diff --git a/module/plugins/hoster/DataportCz.py b/module/plugins/hoster/DataportCz.py index 1b4041c69..d3b25d2ad 100644 --- a/module/plugins/hoster/DataportCz.py +++ b/module/plugins/hoster/DataportCz.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class DataportCz(SimpleHoster): __name__ = "DataportCz" __type__ = "hoster" - __version__ = "0.41" + __version__ = "0.42" __pattern__ = r'http://(?:www\.)?dataport\.cz/file/(.+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -24,12 +24,12 @@ class DataportCz(SimpleHoster): FREE_SLOTS_PATTERN = ur'PoÄet volnÃœch slotů: <span class="darkblue">(\d+)</span><br />' - def handleFree(self, pyfile): + def handle_free(self, pyfile): captchas = {"1": "jkeG", "2": "hMJQ", "3": "vmEK", "4": "ePQM", "5": "blBd"} for _i in xrange(60): - action, inputs = self.parseHtmlForm('free_download_form') - self.logDebug(action, inputs) + action, inputs = self.parse_html_form('free_download_form') + self.log_debug(action, inputs) if not action or not inputs: self.error(_("free_download_form")) @@ -40,13 +40,13 @@ class DataportCz(SimpleHoster): self.download("http://www.dataport.cz%s" % action, post=inputs) - check = self.checkDownload({"captcha": 'alert("\u0160patn\u011b opsan\u00fd k\u00f3d z obr\u00e1zu");', + check = self.check_download({"captcha": 'alert("\u0160patn\u011b opsan\u00fd k\u00f3d z obr\u00e1zu");', "slot" : 'alert("Je n\u00e1m l\u00edto, ale moment\u00e1ln\u011b nejsou'}) if check == "captcha": self.error(_("invalid captcha")) elif check == "slot": - self.logDebug("No free slots - wait 60s and retry") + self.log_debug("No free slots - wait 60s and retry") self.wait(60, False) self.html = self.load(pyfile.url) continue diff --git a/module/plugins/hoster/DateiTo.py b/module/plugins/hoster/DateiTo.py index 92a96b9ec..fe1a65e12 100644 --- a/module/plugins/hoster/DateiTo.py +++ b/module/plugins/hoster/DateiTo.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class DateiTo(SimpleHoster): __name__ = "DateiTo" __type__ = "hoster" - __version__ = "0.09" + __version__ = "0.10" __pattern__ = r'http://(?:www\.)?datei\.to/datei/(?P<ID>\w+)\.html' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -29,19 +29,19 @@ class DateiTo(SimpleHoster): DATA_PATTERN = r'url: "(.*?)", data: "(.*?)",' - def handleFree(self, pyfile): + def handle_free(self, pyfile): url = 'http://datei.to/ajax/download.php' data = {'P': 'I', 'ID': self.info['pattern']['ID']} recaptcha = ReCaptcha(self) for _i in xrange(10): - self.logDebug("URL", url, "POST", data) + self.log_debug("URL", url, "POST", data) self.html = self.load(url, post=data) - self.checkErrors() + self.check_errors() if url.endswith('download.php') and 'P' in data: if data['P'] == 'I': - self.doWait() + self.do_wait() elif data['P'] == 'IV': break @@ -60,7 +60,7 @@ class DateiTo(SimpleHoster): self.link = self.html - def doWait(self): + def do_wait(self): m = re.search(self.WAIT_PATTERN, self.html) wait_time = int(m.group(1)) if m else 30 diff --git a/module/plugins/hoster/DdlstorageCom.py b/module/plugins/hoster/DdlstorageCom.py index 976d9ccf9..e4abeac2a 100644 --- a/module/plugins/hoster/DdlstorageCom.py +++ b/module/plugins/hoster/DdlstorageCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class DdlstorageCom(DeadHoster): __name__ = "DdlstorageCom" __type__ = "hoster" - __version__ = "1.02" + __version__ = "1.03" __pattern__ = r'https?://(?:www\.)?ddlstorage\.com/\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/DebridItaliaCom.py b/module/plugins/hoster/DebridItaliaCom.py index 9e3d87934..d67836d20 100644 --- a/module/plugins/hoster/DebridItaliaCom.py +++ b/module/plugins/hoster/DebridItaliaCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo class DebridItaliaCom(MultiHoster): __name__ = "DebridItaliaCom" __type__ = "hoster" - __version__ = "0.18" + __version__ = "0.19" __pattern__ = r'https?://(?:www\.|s\d+\.)?debriditalia\.com/dl/\d+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -23,9 +23,9 @@ class DebridItaliaCom(MultiHoster): URL_REPLACEMENTS = [("https://", "http://")] - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): self.html = self.load("http://www.debriditalia.com/api.php", - get={'generate': "on", 'link': pyfile.url, 'p': self.getPassword()}) + get={'generate': "on", 'link': pyfile.url, 'p': self.get_password()}) if "ERROR:" not in self.html: self.link = self.html.strip() @@ -35,7 +35,7 @@ class DebridItaliaCom(MultiHoster): self.html = self.load("http://debriditalia.com/linkgen2.php", post={'xjxfun' : "convertiLink", 'xjxargs[]': "S<![CDATA[%s]]>" % pyfile.url, - 'xjxargs[]': "S%s" % self.getPassword()}) + 'xjxargs[]': "S%s" % self.get_password()}) try: self.link = re.search(r'<a href="(.+?)"', self.html).group(1) except AttributeError: diff --git a/module/plugins/hoster/DepositfilesCom.py b/module/plugins/hoster/DepositfilesCom.py index 18f23f552..4e4265391 100644 --- a/module/plugins/hoster/DepositfilesCom.py +++ b/module/plugins/hoster/DepositfilesCom.py @@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class DepositfilesCom(SimpleHoster): __name__ = "DepositfilesCom" __type__ = "hoster" - __version__ = "0.56" + __version__ = "0.57" __pattern__ = r'https?://(?:www\.)?(depositfiles\.com|dfiles\.(eu|ru))(/\w{1,3})?/files/(?P<ID>\w+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -40,18 +40,18 @@ class DepositfilesCom(SimpleHoster): LINK_MIRROR_PATTERN = r'class="repeat_mirror"><a href="(.+?)"' - def handleFree(self, pyfile): + def handle_free(self, pyfile): self.html = self.load(pyfile.url, post={'gateway_result': "1"}) - self.checkErrors() + self.check_errors() m = re.search(r"var fid = '(\w+)';", self.html) if m is None: self.retry(wait_time=5) params = {'fid': m.group(1)} - self.logDebug("FID: %s" % params['fid']) + self.log_debug("FID: %s" % params['fid']) - self.checkErrors() + self.check_errors() recaptcha = ReCaptcha(self) captcha_key = recaptcha.detect_key() @@ -69,9 +69,9 @@ class DepositfilesCom(SimpleHoster): self.link = urllib.unquote(m.group(1)) - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): if '<span class="html_download_api-gold_traffic_limit">' in self.html: - self.logWarning(_("Download limit reached")) + self.log_warning(_("Download limit reached")) self.retry(25, 60 * 60, "Download limit reached") elif 'onClick="show_gold_offer' in self.html: diff --git a/module/plugins/hoster/DevhostSt.py b/module/plugins/hoster/DevhostSt.py index a8a031aaf..27bf100de 100644 --- a/module/plugins/hoster/DevhostSt.py +++ b/module/plugins/hoster/DevhostSt.py @@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class DevhostSt(SimpleHoster): __name__ = "DevhostSt" __type__ = "hoster" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'http://(?:www\.)?d-h\.st/(?!users/)\w{3}' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -30,8 +30,8 @@ class DevhostSt(SimpleHoster): def setup(self): - self.multiDL = True - self.chunkLimit = 1 + self.multi_dl = True + self.chunk_limit = 1 getInfo = create_getInfo(DevhostSt) diff --git a/module/plugins/hoster/DlFreeFr.py b/module/plugins/hoster/DlFreeFr.py index e3be19782..f8c684ed4 100644 --- a/module/plugins/hoster/DlFreeFr.py +++ b/module/plugins/hoster/DlFreeFr.py @@ -35,7 +35,7 @@ class CustomBrowser(Browser): class DlFreeFr(SimpleHoster): __name__ = "DlFreeFr" __type__ = "hoster" - __version__ = "0.30" + __version__ = "0.31" __pattern__ = r'http://(?:www\.)?dl\.free\.fr/(\w+|getfile\.pl\?file=/\w+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -53,10 +53,10 @@ class DlFreeFr(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = True - self.limitDL = 5 - self.chunkLimit = 1 + self.resume_download = True + self.multi_dl = True + self.limit_dl = 5 + self.chunk_limit = 1 def init(self): @@ -78,7 +78,7 @@ class DlFreeFr(SimpleHoster): if content_type and content_type.startswith("text/html"): #: Undirect acces to requested file, with a web page providing it (captcha) self.html = self.load(valid_url) - self.handleFree(pyfile) + self.handle_free(pyfile) else: #: Direct access to requested file for users using free.fr as Internet Service Provider. self.link = valid_url @@ -92,10 +92,10 @@ class DlFreeFr(SimpleHoster): self.fail(_("Invalid return code: ") + str(headers.get('code'))) - def handleFree(self, pyfile): - action, inputs = self.parseHtmlForm('action="getfile.pl"') + def handle_free(self, pyfile): + action, inputs = self.parse_html_form('action="getfile.pl"') self.load("http://dl.free.fr/getfile.pl", post=inputs) - headers = self.getLastHeaders() + headers = self.get_last_headers() if headers.get("code") == 302 and "set-cookie" in headers and "location" in headers: m = re.search("(.*?)=(.*?); path=(.*?); domain=(.*)", headers.get("set-cookie")) cj = CookieJar(__name__) @@ -110,8 +110,8 @@ class DlFreeFr(SimpleHoster): self.fail(_("Invalid response")) - def getLastHeaders(self): - #parse header + def get_last_headers(self): + # parse header header = {"code": self.req.code} for line in self.req.http.header.splitlines(): line = line.strip() diff --git a/module/plugins/hoster/DodanePl.py b/module/plugins/hoster/DodanePl.py index 46f748cc4..c0aeaafbe 100644 --- a/module/plugins/hoster/DodanePl.py +++ b/module/plugins/hoster/DodanePl.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class DodanePl(DeadHoster): __name__ = "DodanePl" __type__ = "hoster" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?dodane\.pl/file/\d+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/DropboxCom.py b/module/plugins/hoster/DropboxCom.py index eec968f5a..9bc022515 100644 --- a/module/plugins/hoster/DropboxCom.py +++ b/module/plugins/hoster/DropboxCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class DropboxCom(SimpleHoster): __name__ = "DropboxCom" __type__ = "hoster" - __version__ = "0.04" + __version__ = "0.05" __pattern__ = r'https?://(?:www\.)?dropbox\.com/.+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -27,12 +27,12 @@ class DropboxCom(SimpleHoster): def setup(self): - self.multiDL = True - self.chunkLimit = 1 - self.resumeDownload = True + self.multi_dl = True + self.chunk_limit = 1 + self.resume_download = True - def handleFree(self, pyfile): + def handle_free(self, pyfile): self.download(pyfile.url, get={'dl': "1"}) diff --git a/module/plugins/hoster/DuploadOrg.py b/module/plugins/hoster/DuploadOrg.py index 076171544..57535c46a 100644 --- a/module/plugins/hoster/DuploadOrg.py +++ b/module/plugins/hoster/DuploadOrg.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class DuploadOrg(DeadHoster): __name__ = "DuploadOrg" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'http://(?:www\.)?dupload\.org/\w{12}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/EasybytezCom.py b/module/plugins/hoster/EasybytezCom.py index 693910c1b..5de267cde 100644 --- a/module/plugins/hoster/EasybytezCom.py +++ b/module/plugins/hoster/EasybytezCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class EasybytezCom(XFSHoster): __name__ = "EasybytezCom" __type__ = "hoster" - __version__ = "0.23" + __version__ = "0.24" __pattern__ = r'http://(?:www\.)?easybytez\.com/\w{12}' diff --git a/module/plugins/hoster/EdiskCz.py b/module/plugins/hoster/EdiskCz.py index 96be21860..100c6d269 100644 --- a/module/plugins/hoster/EdiskCz.py +++ b/module/plugins/hoster/EdiskCz.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class EdiskCz(SimpleHoster): __name__ = "EdiskCz" __type__ = "hoster" - __version__ = "0.23" + __version__ = "0.24" __pattern__ = r'http://(?:www\.)?edisk\.(cz|sk|eu)/(stahni|sk/stahni|en/download)/.+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -26,13 +26,13 @@ class EdiskCz(SimpleHoster): def setup(self): - self.multiDL = False + self.multi_dl = False def process(self, pyfile): url = re.sub("/(stahni|sk/stahni)/", "/en/download/", pyfile.url) - self.logDebug("URL:" + url) + self.log_debug("URL:" + url) m = re.search(self.ACTION_PATTERN, url) if m is None: diff --git a/module/plugins/hoster/EgoFilesCom.py b/module/plugins/hoster/EgoFilesCom.py index 78108962f..3f081da41 100644 --- a/module/plugins/hoster/EgoFilesCom.py +++ b/module/plugins/hoster/EgoFilesCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class EgoFilesCom(DeadHoster): __name__ = "EgoFilesCom" __type__ = "hoster" - __version__ = "0.16" + __version__ = "0.17" __pattern__ = r'https?://(?:www\.)?egofiles\.com/\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/EnteruploadCom.py b/module/plugins/hoster/EnteruploadCom.py index 8ef994e1e..46215f5a2 100644 --- a/module/plugins/hoster/EnteruploadCom.py +++ b/module/plugins/hoster/EnteruploadCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class EnteruploadCom(DeadHoster): __name__ = "EnteruploadCom" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'http://(?:www\.)?enterupload\.com/\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/EpicShareNet.py b/module/plugins/hoster/EpicShareNet.py index 7e3c8ba0e..91858ef3f 100644 --- a/module/plugins/hoster/EpicShareNet.py +++ b/module/plugins/hoster/EpicShareNet.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class EpicShareNet(DeadHoster): __name__ = "EpicShareNet" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'https?://(?:www\.)?epicshare\.net/\w{12}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/EuroshareEu.py b/module/plugins/hoster/EuroshareEu.py index deb138ec7..4401391a9 100644 --- a/module/plugins/hoster/EuroshareEu.py +++ b/module/plugins/hoster/EuroshareEu.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class EuroshareEu(SimpleHoster): __name__ = "EuroshareEu" __type__ = "hoster" - __version__ = "0.29" + __version__ = "0.30" __pattern__ = r'http://(?:www\.)?euroshare\.(eu|sk|cz|hu|pl)/file/.+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -29,25 +29,25 @@ class EuroshareEu(SimpleHoster): URL_REPLACEMENTS = [(r"(http://[^/]*\.)(sk|cz|hu|pl)/", r"\1eu/")] - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): if self.ERROR_PATTERN in self.html: self.account.relogin(self.user) self.retry(reason=_("User not logged in")) self.link = pyfile.url.rstrip('/') + "/download/" - check = self.checkDownload({"login": re.compile(self.ERROR_PATTERN), + check = self.check_download({"login": re.compile(self.ERROR_PATTERN), "json" : re.compile(r'\{"status":"error".*?"message":"(.*?)"')}) - if check == "login" or (check == "json" and self.lastCheck.group(1) == "Access token expired"): + if check == "login" or (check == "json" and self.last_check.group(1) == "Access token expired"): self.account.relogin(self.user) self.retry(reason=_("Access token expired")) elif check == "json": - self.fail(self.lastCheck.group(1)) + self.fail(self.last_check.group(1)) - def handleFree(self, pyfile): + def handle_free(self, pyfile): if re.search(self.DL_LIMIT_PATTERN, self.html): self.wait(5 * 60, 12, _("Download limit reached")) diff --git a/module/plugins/hoster/ExashareCom.py b/module/plugins/hoster/ExashareCom.py index d70ca6d3a..6c117f596 100644 --- a/module/plugins/hoster/ExashareCom.py +++ b/module/plugins/hoster/ExashareCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class ExashareCom(XFSHoster): __name__ = "ExashareCom" __type__ = "hoster" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?exashare\.com/\w{12}' @@ -21,12 +21,12 @@ class ExashareCom(XFSHoster): def setup(self): - self.multiDL = True - self.chunkLimit = 1 - self.resumeDownload = self.premium + self.multi_dl = True + self.chunk_limit = 1 + self.resume_download = self.premium - def handleFree(self, pyfile): + def handle_free(self, pyfile): m = re.search(self.LINK_FREE_PATTERN, self.html) if m is None: self.error(_("Free download link not found")) diff --git a/module/plugins/hoster/ExtabitCom.py b/module/plugins/hoster/ExtabitCom.py index ead2e1e53..c2ae32099 100644 --- a/module/plugins/hoster/ExtabitCom.py +++ b/module/plugins/hoster/ExtabitCom.py @@ -5,13 +5,13 @@ import re from module.common.json_layer import json_loads from module.plugins.internal.ReCaptcha import ReCaptcha -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, secondsToMidnight +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, seconds_to_midnight class ExtabitCom(SimpleHoster): __name__ = "ExtabitCom" __type__ = "hoster" - __version__ = "0.66" + __version__ = "0.67" __pattern__ = r'http://(?:www\.)?extabit\.com/(file|go|fid)/(?P<ID>\w+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -29,7 +29,7 @@ class ExtabitCom(SimpleHoster): LINK_FREE_PATTERN = r'[\'"](http://guest\d+\.extabit\.com/\w+/.*?)[\'"]' - def handleFree(self, pyfile): + def handle_free(self, pyfile): if r">Only premium users can download this file" in self.html: self.fail(_("Only premium users can download this file")) @@ -37,10 +37,10 @@ class ExtabitCom(SimpleHoster): if m: self.wait(int(m.group(1)) * 60, True) elif "The daily downloads limit from your IP is exceeded" in self.html: - self.logWarning(_("You have reached your daily downloads limit for today")) - self.wait(secondsToMidnight(gmt=2), True) + self.log_warning(_("You have reached your daily downloads limit for today")) + self.wait(seconds_to_midnight(gmt=2), True) - self.logDebug("URL: " + self.req.http.lastEffectiveURL) + self.log_debug("URL: " + self.req.http.lastEffectiveURL) m = re.match(self.__pattern__, self.req.http.lastEffectiveURL) fileID = m.group('ID') if m else self.info['pattern']['ID'] @@ -54,10 +54,10 @@ class ExtabitCom(SimpleHoster): get_data['capture'], get_data['challenge'] = recaptcha.challenge(captcha_key) res = json_loads(self.load("http://extabit.com/file/%s/" % fileID, get=get_data)) if "ok" in res: - self.correctCaptcha() + self.correct_captcha() break else: - self.invalidCaptcha() + self.invalid_captcha() else: self.fail(_("Invalid captcha")) else: diff --git a/module/plugins/hoster/FastixRu.py b/module/plugins/hoster/FastixRu.py index 468bcc8af..4e6b2e236 100644 --- a/module/plugins/hoster/FastixRu.py +++ b/module/plugins/hoster/FastixRu.py @@ -10,7 +10,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo class FastixRu(MultiHoster): __name__ = "FastixRu" __type__ = "hoster" - __version__ = "0.12" + __version__ = "0.13" __pattern__ = r'http://(?:www\.)?fastix\.(ru|it)/file/\w{24}' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -22,10 +22,10 @@ class FastixRu(MultiHoster): def setup(self): - self.chunkLimit = 3 + self.chunk_limit = 3 - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): api_key = self.account.getAccountData(self.user) api_key = api_key['api'] @@ -34,7 +34,7 @@ class FastixRu(MultiHoster): data = json_loads(self.html) - self.logDebug("Json data", data) + self.log_debug("Json data", data) if "error\":true" in self.html: self.offline() diff --git a/module/plugins/hoster/FastshareCz.py b/module/plugins/hoster/FastshareCz.py index e56a05d37..1ed3213ff 100644 --- a/module/plugins/hoster/FastshareCz.py +++ b/module/plugins/hoster/FastshareCz.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class FastshareCz(SimpleHoster): __name__ = "FastshareCz" __type__ = "hoster" - __version__ = "0.30" + __version__ = "0.31" __pattern__ = r'http://(?:www\.)?fastshare\.cz/\d+/.+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -33,20 +33,20 @@ class FastshareCz(SimpleHoster): CREDIT_ERROR = " credit for " - def checkErrors(self): + def check_errors(self): if self.SLOT_ERROR in self.html: errmsg = self.info['error'] = _("No free slots") self.retry(12, 60, errmsg) if self.CREDIT_ERROR in self.html: errmsg = self.info['error'] = _("Not enough traffic left") - self.logWarning(errmsg) - self.resetAccount() + self.log_warning(errmsg) + self.reset_account() self.info.pop('error', None) - def handleFree(self, pyfile): + def handle_free(self, pyfile): m = re.search(self.FREE_URL_PATTERN, self.html) if m: action, captcha_src = m.groups() @@ -54,12 +54,12 @@ class FastshareCz(SimpleHoster): self.error(_("FREE_URL_PATTERN not found")) baseurl = "http://www.fastshare.cz" - captcha = self.decryptCaptcha(urlparse.urljoin(baseurl, captcha_src)) + captcha = self.decrypt_captcha(urlparse.urljoin(baseurl, captcha_src)) self.download(urlparse.urljoin(baseurl, action), post={'code': captcha, 'btn.x': 77, 'btn.y': 18}) - def checkFile(self): - check = self.checkDownload({ + def check_file(self): + check = self.check_download({ 'paralell-dl' : re.compile(r"<title>FastShare.cz</title>|<script>alert\('Pres FREE muzete stahovat jen jeden soubor najednou.'\)"), 'wrong captcha': re.compile(r'Download for FREE'), 'credit' : re.compile(self.CREDIT_ERROR) @@ -72,7 +72,7 @@ class FastshareCz(SimpleHoster): self.retry(max_tries=5, reason=_("Wrong captcha")) elif check == "credit": - self.resetAccount() + self.reset_account() return super(FastshareCz, self).checkFile() diff --git a/module/plugins/hoster/FileApeCom.py b/module/plugins/hoster/FileApeCom.py index 79157539b..3dbbfc4e4 100644 --- a/module/plugins/hoster/FileApeCom.py +++ b/module/plugins/hoster/FileApeCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class FileApeCom(DeadHoster): __name__ = "FileApeCom" __type__ = "hoster" - __version__ = "0.12" + __version__ = "0.13" __pattern__ = r'http://(?:www\.)?fileape\.com/(index\.php\?act=download\&id=|dl/)\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/FileSharkPl.py b/module/plugins/hoster/FileSharkPl.py index d01a34bad..595d0c7ed 100644 --- a/module/plugins/hoster/FileSharkPl.py +++ b/module/plugins/hoster/FileSharkPl.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class FileSharkPl(SimpleHoster): __name__ = "FileSharkPl" __type__ = "hoster" - __version__ = "0.11" + __version__ = "0.12" __pattern__ = r'http://(?:www\.)?fileshark\.pl/pobierz/\d+/\w+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -37,16 +37,16 @@ class FileSharkPl(SimpleHoster): def setup(self): - self.resumeDownload = True + self.resume_download = True if self.premium: - self.multiDL = True - self.limitDL = 20 + self.multi_dl = True + self.limit_dl = 20 else: - self.multiDL = False + self.multi_dl = False - def checkErrors(self): + def check_errors(self): #: check if file is now available for download (-> file name can be found in html body) m = re.search(self.WAIT_PATTERN, self.html) if m: @@ -62,7 +62,7 @@ class FileSharkPl(SimpleHoster): elif re.match(self.SLOT_ERROR_PATTERN, alert): errmsg = self.info['error'] = _("No free download slots available") - self.logWarning(errmsg) + self.log_warning(errmsg) self.retry(10, 30 * 60, _("Still no free download slots available")) else: @@ -72,7 +72,7 @@ class FileSharkPl(SimpleHoster): self.info.pop('error', None) - def handleFree(self, pyfile): + def handle_free(self, pyfile): m = re.search(self.LINK_FREE_PATTERN, self.html) if m is None: self.error(_("Download url not found")) @@ -84,10 +84,10 @@ class FileSharkPl(SimpleHoster): m = re.search(self.WAIT_PATTERN, self.html) if m: seconds = int(m.group(1)) - self.logDebug("Wait %s seconds" % seconds) + self.log_debug("Wait %s seconds" % seconds) self.wait(seconds) - action, inputs = self.parseHtmlForm('action=""') + action, inputs = self.parse_html_form('action=""') m = re.search(self.TOKEN_PATTERN, self.html) if m is None: @@ -102,7 +102,7 @@ class FileSharkPl(SimpleHoster): tmp_load = self.load self.load = self._decode64 #: work-around: injects decode64 inside decryptCaptcha - inputs['form[captcha]'] = self.decryptCaptcha(m.group(1), imgtype='jpeg') + inputs['form[captcha]'] = self.decrypt_captcha(m.group(1), imgtype='jpeg') inputs['form[start]'] = "" self.load = tmp_load diff --git a/module/plugins/hoster/FileStoreTo.py b/module/plugins/hoster/FileStoreTo.py index 3262b73ad..e17e16f55 100644 --- a/module/plugins/hoster/FileStoreTo.py +++ b/module/plugins/hoster/FileStoreTo.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class FileStoreTo(SimpleHoster): __name__ = "FileStoreTo" __type__ = "hoster" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'http://(?:www\.)?filestore\.to/\?d=(?P<ID>\w+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -25,11 +25,11 @@ class FileStoreTo(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = True + self.resume_download = True + self.multi_dl = True - def handleFree(self, pyfile): + def handle_free(self, pyfile): self.wait(10) self.link = self.load("http://filestore.to/ajax/download.php", get={'D': re.search(r'"D=(\w+)', self.html).group(1)}) diff --git a/module/plugins/hoster/FilebeerInfo.py b/module/plugins/hoster/FilebeerInfo.py index 244131dc7..adfb35454 100644 --- a/module/plugins/hoster/FilebeerInfo.py +++ b/module/plugins/hoster/FilebeerInfo.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class FilebeerInfo(DeadHoster): __name__ = "FilebeerInfo" __type__ = "hoster" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?filebeer\.info/(?!\d*~f)(?P<ID>\w+)' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/FileboomMe.py b/module/plugins/hoster/FileboomMe.py index 9cdeebe3d..717ce549d 100644 --- a/module/plugins/hoster/FileboomMe.py +++ b/module/plugins/hoster/FileboomMe.py @@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class FileboomMe(SimpleHoster): __name__ = "FileboomMe" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'https?://f(?:ile)?boom\.me/file/(?P<ID>\w+)' @@ -30,12 +30,12 @@ class FileboomMe(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = False - self.chunkLimit = 1 + self.resume_download = True + self.multi_dl = False + self.chunk_limit = 1 - def handleFree(self, pyfile): + def handle_free(self, pyfile): post_url = urljoin(pyfile.url, "/file/" + self.info['pattern']['ID']) m = re.search(r'data-slow-id="(\w+)"', self.html) @@ -55,7 +55,7 @@ class FileboomMe(SimpleHoster): m = re.search(self.CAPTCHA_PATTERN, self.html) if m: - captcha = self.decryptCaptcha(urljoin(pyfile.url, m.group(1))) + captcha = self.decrypt_captcha(urljoin(pyfile.url, m.group(1))) self.html = self.load(post_url, post={'CaptchaForm[code]' : captcha, @@ -64,10 +64,10 @@ class FileboomMe(SimpleHoster): 'uniqueId' : uniqueId}) if 'The verification code is incorrect' in self.html: - self.invalidCaptcha() + self.invalid_captcha() else: - self.checkErrors() + self.check_errors() self.html = self.load(post_url, post={'free' : 1, @@ -78,7 +78,7 @@ class FileboomMe(SimpleHoster): self.link = urljoin(pyfile.url, m.group(0)) else: - self.invalidCaptcha() + self.invalid_captcha() break diff --git a/module/plugins/hoster/FilecloudIo.py b/module/plugins/hoster/FilecloudIo.py index 346e9c444..d9013630d 100644 --- a/module/plugins/hoster/FilecloudIo.py +++ b/module/plugins/hoster/FilecloudIo.py @@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class FilecloudIo(SimpleHoster): __name__ = "FilecloudIo" __type__ = "hoster" - __version__ = "0.09" + __version__ = "0.10" __pattern__ = r'http://(?:www\.)?(?:filecloud\.io|ifile\.it|mihd\.net)/(?P<ID>\w+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -39,12 +39,12 @@ class FilecloudIo(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = True - self.chunkLimit = 1 + self.resume_download = True + self.multi_dl = True + self.chunk_limit = 1 - def handleFree(self, pyfile): + def handle_free(self, pyfile): data = {"ukey": self.info['pattern']['ID']} m = re.search(self.AB1_PATTERN, self.html) @@ -68,13 +68,13 @@ class FilecloudIo(SimpleHoster): json_url = "http://filecloud.io/download-request.json" res = self.load(json_url, post=data) - self.logDebug(res) + self.log_debug(res) res = json_loads(res) if "error" in res and res['error']: self.fail(res) - self.logDebug(res) + self.log_debug(res) if res['captcha']: data['ctype'] = "recaptcha" @@ -83,13 +83,13 @@ class FilecloudIo(SimpleHoster): json_url = "http://filecloud.io/download-request.json" res = self.load(json_url, post=data) - self.logDebug(res) + self.log_debug(res) res = json_loads(res) if "retry" in res and res['retry']: - self.invalidCaptcha() + self.invalid_captcha() else: - self.correctCaptcha() + self.correct_captcha() break else: self.fail(_("Incorrect captcha")) @@ -109,13 +109,13 @@ class FilecloudIo(SimpleHoster): self.fail(_("Unexpected server response")) - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): akey = self.account.getAccountData(self.user)['akey'] ukey = self.info['pattern']['ID'] - self.logDebug("Akey: %s | Ukey: %s" % (akey, ukey)) + self.log_debug("Akey: %s | Ukey: %s" % (akey, ukey)) rep = self.load("http://api.filecloud.io/api-fetch_download_url.api", post={"akey": akey, "ukey": ukey}) - self.logDebug("FetchDownloadUrl: " + rep) + self.log_debug("FetchDownloadUrl: " + rep) rep = json_loads(rep) if rep['status'] == 'ok': self.link = rep['download_url'] diff --git a/module/plugins/hoster/FiledropperCom.py b/module/plugins/hoster/FiledropperCom.py index 73bab2d64..b4b94ff87 100644 --- a/module/plugins/hoster/FiledropperCom.py +++ b/module/plugins/hoster/FiledropperCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class FiledropperCom(SimpleHoster): __name__ = "FiledropperCom" __type__ = "hoster" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'https?://(?:www\.)?filedropper\.com/\w+' @@ -24,16 +24,16 @@ class FiledropperCom(SimpleHoster): def setup(self): - self.multiDL = False - self.chunkLimit = 1 + self.multi_dl = False + self.chunk_limit = 1 - def handleFree(self, pyfile): + def handle_free(self, pyfile): m = re.search(r'img id="img" src="(.+?)"', self.html) if m is None: self.fail("Captcha not found") - captcha_code = self.decryptCaptcha("http://www.filedropper.com/%s" % m.group(1)) + captcha_code = self.decrypt_captcha("http://www.filedropper.com/%s" % m.group(1)) m = re.search(r'method="post" action="(.+?)"', self.html) if m is None: diff --git a/module/plugins/hoster/FilefactoryCom.py b/module/plugins/hoster/FilefactoryCom.py index 3aa9dc2a9..8d7409824 100644 --- a/module/plugins/hoster/FilefactoryCom.py +++ b/module/plugins/hoster/FilefactoryCom.py @@ -7,7 +7,7 @@ from module.network.RequestFactory import getURL from module.plugins.internal.SimpleHoster import SimpleHoster, parseFileInfo -def getInfo(urls): +def get_info(urls): for url in urls: h = getURL(url, just_header=True) m = re.search(r'Location: (.+)\r\n', h) @@ -20,7 +20,7 @@ def getInfo(urls): class FilefactoryCom(SimpleHoster): __name__ = "FilefactoryCom" __type__ = "hoster" - __version__ = "0.56" + __version__ = "0.57" __pattern__ = r'https?://(?:www\.)?filefactory\.com/(file|trafficshare/\w+)/\w+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -42,7 +42,7 @@ class FilefactoryCom(SimpleHoster): COOKIES = [("filefactory.com", "locale", "en_US.utf8")] - def handleFree(self, pyfile): + def handle_free(self, pyfile): if "Currently only Premium Members can download files larger than" in self.html: self.fail(_("File too large for free download")) elif "All free download slots on this server are currently in use" in self.html: @@ -59,12 +59,12 @@ class FilefactoryCom(SimpleHoster): self.wait(m.group(1)) - def checkFile(self): - check = self.checkDownload({'multiple': "You are currently downloading too many files at once.", + def check_file(self): + check = self.check_download({'multiple': "You are currently downloading too many files at once.", 'error' : '<div id="errorMessage">'}) if check == "multiple": - self.logDebug("Parallel downloads detected; waiting 15 minutes") + self.log_debug("Parallel downloads detected; waiting 15 minutes") self.retry(wait_time=15 * 60, reason=_("Parallel downloads")) elif check == "error": @@ -73,8 +73,8 @@ class FilefactoryCom(SimpleHoster): return super(FilefactoryCom, self).checkFile() - def handlePremium(self, pyfile): - self.link = self.directLink(self.load(pyfile.url, just_header=True)) + def handle_premium(self, pyfile): + self.link = self.direct_link(self.load(pyfile.url, just_header=True)) if not self.link: html = self.load(pyfile.url) diff --git a/module/plugins/hoster/FilejungleCom.py b/module/plugins/hoster/FilejungleCom.py index 68f578096..e29ad1fbd 100644 --- a/module/plugins/hoster/FilejungleCom.py +++ b/module/plugins/hoster/FilejungleCom.py @@ -7,7 +7,7 @@ from module.plugins.internal.Plugin import chunks class FilejungleCom(FileserveCom): __name__ = "FilejungleCom" __type__ = "hoster" - __version__ = "0.52" + __version__ = "0.53" __pattern__ = r'http://(?:www\.)?filejungle\.com/f/(?P<ID>[^/]+)' @@ -24,6 +24,6 @@ class FilejungleCom(FileserveCom): LONG_WAIT_PATTERN = r'<h1>Please wait for (\d+) (\w+)\s*to download the next file\.</h1>' -def getInfo(urls): +def get_info(urls): for chunk in chunks(urls, 100): yield checkFile(FilejungleCom, chunk) diff --git a/module/plugins/hoster/FileomCom.py b/module/plugins/hoster/FileomCom.py index 306953b84..df7fc0aeb 100644 --- a/module/plugins/hoster/FileomCom.py +++ b/module/plugins/hoster/FileomCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class FileomCom(XFSHoster): __name__ = "FileomCom" __type__ = "hoster" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'https?://(?:www\.)?fileom\.com/\w{12}' @@ -25,9 +25,9 @@ class FileomCom(XFSHoster): def setup(self): - self.multiDL = True - self.chunkLimit = 1 - self.resumeDownload = self.premium + self.multi_dl = True + self.chunk_limit = 1 + self.resume_download = self.premium getInfo = create_getInfo(FileomCom) diff --git a/module/plugins/hoster/FilepostCom.py b/module/plugins/hoster/FilepostCom.py index b2891a9e8..30ea6a869 100644 --- a/module/plugins/hoster/FilepostCom.py +++ b/module/plugins/hoster/FilepostCom.py @@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class FilepostCom(SimpleHoster): __name__ = "FilepostCom" __type__ = "hoster" - __version__ = "0.34" + __version__ = "0.35" __pattern__ = r'https?://(?:www\.)?(?:filepost\.com/files|fp\.io)/(?P<ID>[^/]+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -29,7 +29,7 @@ class FilepostCom(SimpleHoster): FLP_TOKEN_PATTERN = r'set_store_options\({token: \'(.+?)\'' - def handleFree(self, pyfile): + def handle_free(self, pyfile): m = re.search(self.FLP_TOKEN_PATTERN, self.html) if m is None: self.error(_("Token")) @@ -43,7 +43,7 @@ class FilepostCom(SimpleHoster): #: Get wait time get_dict = {'SID': self.req.cj.getCookie('SID'), 'JsHttpRequest': str(int(time.time() * 10000)) + '-xml'} post_dict = {'action': 'set_download', 'token': flp_token, 'code': self.info['pattern']['ID']} - wait_time = int(self.getJsonResponse(get_dict, post_dict, 'wait_time')) + wait_time = int(self.get_json_response(get_dict, post_dict, 'wait_time')) if wait_time > 0: self.wait(wait_time) @@ -52,15 +52,15 @@ class FilepostCom(SimpleHoster): if 'var is_pass_exists = true;' in self.html: #: Solve password - password = self.getPassword() + password = self.get_password() if password: - self.logInfo(_("Password protected link, trying ") + file_pass) + self.log_info(_("Password protected link, trying ") + file_pass) get_dict['JsHttpRequest'] = str(int(time.time() * 10000)) + '-xml' post_dict['file_pass'] = file_pass - self.link = self.getJsonResponse(get_dict, post_dict, 'link') + self.link = self.get_json_response(get_dict, post_dict, 'link') if not self.link: self.fail(_("Incorrect password")) @@ -76,19 +76,19 @@ class FilepostCom(SimpleHoster): if i: post_dict['recaptcha_response_field'], post_dict['recaptcha_challenge_field'] = recaptcha.challenge( captcha_key) - self.logDebug(u"RECAPTCHA: %s : %s : %s" % ( + self.log_debug(u"RECAPTCHA: %s : %s : %s" % ( captcha_key, post_dict['recaptcha_challenge_field'], post_dict['recaptcha_response_field'])) - self.link = self.getJsonResponse(get_dict, post_dict, 'link') + self.link = self.get_json_response(get_dict, post_dict, 'link') else: self.fail(_("Invalid captcha")) - def getJsonResponse(self, get_dict, post_dict, field): + def get_json_response(self, get_dict, post_dict, field): res = json_loads(self.load('https://filepost.com/files/get/', get=get_dict, post=post_dict)) - self.logDebug(res) + self.log_debug(res) if not 'js' in res: self.error(_("JSON %s 1") % field) @@ -109,7 +109,7 @@ class FilepostCom(SimpleHoster): return None elif 'CAPTCHA' in res['js']['error']: - self.logDebug("Error response is unknown, but mentions CAPTCHA") + self.log_debug("Error response is unknown, but mentions CAPTCHA") return None else: diff --git a/module/plugins/hoster/FilepupNet.py b/module/plugins/hoster/FilepupNet.py index 874fde3c8..439f9f8f8 100644 --- a/module/plugins/hoster/FilepupNet.py +++ b/module/plugins/hoster/FilepupNet.py @@ -12,7 +12,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class FilepupNet(SimpleHoster): __name__ = "FilepupNet" __type__ = "hoster" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?filepup\.net/files/\w+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -32,11 +32,11 @@ class FilepupNet(SimpleHoster): def setup(self): - self.multiDL = False - self.chunkLimit = 1 + self.multi_dl = False + self.chunk_limit = 1 - def handleFree(self, pyfile): + def handle_free(self, pyfile): m = re.search(self.LINK_FREE_PATTERN, self.html) if m is None: self.error(_("Download link not found")) diff --git a/module/plugins/hoster/FilerNet.py b/module/plugins/hoster/FilerNet.py index ecf656926..1912f06dc 100644 --- a/module/plugins/hoster/FilerNet.py +++ b/module/plugins/hoster/FilerNet.py @@ -15,7 +15,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class FilerNet(SimpleHoster): __name__ = "FilerNet" __type__ = "hoster" - __version__ = "0.20" + __version__ = "0.21" __pattern__ = r'https?://(?:www\.)?filer\.net/get/\w+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -34,14 +34,14 @@ class FilerNet(SimpleHoster): LINK_FREE_PATTERN = LINK_PREMIUM_PATTERN = r'href="([^"]+)">Get download</a>' - def handleFree(self, pyfile): - inputs = self.parseHtmlForm(input_names={'token': re.compile(r'.+')})[1] + def handle_free(self, pyfile): + inputs = self.parse_html_form(input_names={'token': re.compile(r'.+')})[1] if 'token' not in inputs: self.error(_("Unable to detect token")) self.html = self.load(pyfile.url, post={'token': inputs['token']}) - inputs = self.parseHtmlForm(input_names={'hash': re.compile(r'.+')})[1] + inputs = self.parse_html_form(input_names={'hash': re.compile(r'.+')})[1] if 'hash' not in inputs: self.error(_("Unable to detect hash")) @@ -58,9 +58,9 @@ class FilerNet(SimpleHoster): if 'location' in self.req.http.header.lower(): self.link = re.search(r'location: (\S+)', self.req.http.header, re.I).group(1) - self.correctCaptcha() + self.correct_captcha() else: - self.invalidCaptcha() + self.invalid_captcha() getInfo = create_getInfo(FilerNet) diff --git a/module/plugins/hoster/FilerioCom.py b/module/plugins/hoster/FilerioCom.py index c6ebbd444..948a46f31 100644 --- a/module/plugins/hoster/FilerioCom.py +++ b/module/plugins/hoster/FilerioCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class FilerioCom(XFSHoster): __name__ = "FilerioCom" __type__ = "hoster" - __version__ = "0.07" + __version__ = "0.08" __pattern__ = r'http://(?:www\.)?(filerio\.(in|com)|filekeen\.com)/\w{12}' diff --git a/module/plugins/hoster/FilesMailRu.py b/module/plugins/hoster/FilesMailRu.py index f93281702..71ef231b1 100644 --- a/module/plugins/hoster/FilesMailRu.py +++ b/module/plugins/hoster/FilesMailRu.py @@ -7,7 +7,7 @@ from module.plugins.internal.Hoster import Hoster from module.plugins.internal.Plugin import chunks -def getInfo(urls): +def get_info(urls): result = [] for chunk in chunks(urls, 10): for url in chunk: @@ -32,7 +32,7 @@ def getInfo(urls): class FilesMailRu(Hoster): __name__ = "FilesMailRu" __type__ = "hoster" - __version__ = "0.33" + __version__ = "0.34" __pattern__ = r'http://(?:www\.)?files\.mail\.ru/.+' @@ -42,57 +42,57 @@ class FilesMailRu(Hoster): def setup(self): - self.multiDL = bool(self.account) + self.multi_dl = bool(self.account) def process(self, pyfile): self.html = self.load(pyfile.url) self.url_pattern = '<a href="(.+?)" onclick="return Act\(this\, \'dlink\'\, event\)">(.+?)</a>' - #marks the file as "offline" when the pattern was found on the html-page''' + # marks the file as "offline" when the pattern was found on the html-page''' if r'<div class="errorMessage mb10">' in self.html: self.offline() elif r'Page cannot be displayed' in self.html: self.offline() - #the filename that will be showed in the list (e.g. test.part1.rar)''' - pyfile.name = self.getFileName() + # the filename that will be showed in the list (e.g. test.part1.rar)''' + pyfile.name = self.get_file_name() - #prepare and download''' + # prepare and download''' if not self.account: self.prepare() - self.download(self.getFileUrl()) - self.myPostProcess() + self.download(self.get_file_url()) + self.my_post_process() else: - self.download(self.getFileUrl()) - self.myPostProcess() + self.download(self.get_file_url()) + self.my_post_process() def prepare(self): """ You have to wait some seconds. Otherwise you will get a 40Byte HTML Page instead of the file you expected """ - self.setWait(10) + self.set_wait(10) self.wait() return True - def getFileUrl(self): + def get_file_url(self): """ Gives you the URL to the file. Extracted from the Files.mail.ru HTML-page stored in self.html """ return re.search(self.url_pattern, self.html).group(0).split('<a href="')[1].split('" onclick="return Act')[0] - def getFileName(self): + def get_file_name(self): """ Gives you the Name for each file. Also extracted from the HTML-Page """ return re.search(self.url_pattern, self.html).group(0).split(', event)">')[1].split('</a>')[0] - def myPostProcess(self): + def my_post_process(self): #: searches the file for HTMl-Code. Sometimes the Redirect #: doesn't work (maybe a curl Problem) and you get only a small #: HTML file and the Download is marked as "finished" @@ -103,9 +103,9 @@ class FilesMailRu(Hoster): #: so i set it to check every download because sometimes there are downloads #: that contain the HTML-Text and 60MB ZEROs after that in a xyzfile.part1.rar file #: (Loading 100MB in to ram is not an option) - check = self.checkDownload({"html": "<meta name="}, read_size=50000) + check = self.check_download({"html": "<meta name="}, read_size=50000) if check == "html": - self.logInfo(_( + self.log_info(_( "There was HTML Code in the Downloaded File (%s)...redirect error? The Download will be restarted." % self.pyfile.name)) self.retry() diff --git a/module/plugins/hoster/FileserveCom.py b/module/plugins/hoster/FileserveCom.py index 71cdb1fae..8ba963588 100644 --- a/module/plugins/hoster/FileserveCom.py +++ b/module/plugins/hoster/FileserveCom.py @@ -7,11 +7,11 @@ from module.network.RequestFactory import getURL from module.plugins.internal.Hoster import Hoster from module.plugins.internal.Plugin import chunks from module.plugins.internal.ReCaptcha import ReCaptcha -from module.plugins.internal.SimpleHoster import secondsToMidnight +from module.plugins.internal.SimpleHoster import seconds_to_midnight from module.utils import parseFileSize -def checkFile(plugin, urls): +def check_file(plugin, urls): html = getURL(plugin.URLS[1], post={"urls": "\n".join(urls)}) file_info = [] @@ -33,7 +33,7 @@ def checkFile(plugin, urls): class FileserveCom(Hoster): __name__ = "FileserveCom" __type__ = "hoster" - __version__ = "0.56" + __version__ = "0.57" __pattern__ = r'http://(?:www\.)?fileserve\.com/file/(?P<ID>[^/]+)' @@ -60,39 +60,39 @@ class FileserveCom(Hoster): def setup(self): - self.resumeDownload = self.multiDL = self.premium + self.resume_download = self.multi_dl = self.premium self.file_id = re.match(self.__pattern__, self.pyfile.url).group('ID') self.url = "%s%s" % (self.URLS[0], self.file_id) - self.logDebug("File ID: %s URL: %s" % (self.file_id, self.url)) + self.log_debug("File ID: %s URL: %s" % (self.file_id, self.url)) def process(self, pyfile): pyfile.name, pyfile.size, status, self.url = checkFile(self, [self.url])[0] if status != 2: self.offline() - self.logDebug("File Name: %s Size: %d" % (pyfile.name, pyfile.size)) + self.log_debug("File Name: %s Size: %d" % (pyfile.name, pyfile.size)) if self.premium: - self.handlePremium() + self.handle_premium() else: - self.handleFree() + self.handle_free() - def handleFree(self): + def handle_free(self): self.html = self.load(self.url) action = self.load(self.url, post={"checkDownload": "check"}) action = json_loads(action) - self.logDebug(action) + self.log_debug(action) if "fail" in action: if action['fail'] == "timeLimit": self.html = self.load(self.url, post={"checkDownload": "showError", "errorType": "timeLimit"}) - self.doLongWait(re.search(self.LONG_WAIT_PATTERN, self.html)) + self.do_long_wait(re.search(self.LONG_WAIT_PATTERN, self.html)) elif action['fail'] == "parallelDownload": - self.logWarning(_("Parallel download error, now waiting 60s")) + self.log_warning(_("Parallel download error, now waiting 60s")) self.retry(wait_time=60, reason=_("parallelDownload")) else: @@ -100,47 +100,47 @@ class FileserveCom(Hoster): elif "success" in action: if action['success'] == "showCaptcha": - self.doCaptcha() - self.doTimmer() + self.do_captcha() + self.do_timmer() elif action['success'] == "showTimmer": - self.doTimmer() + self.do_timmer() else: self.error(_("Unknown server response")) #: show download link res = self.load(self.url, post={"downloadLink": "show"}) - self.logDebug("Show downloadLink response: %s" % res) + self.log_debug("Show downloadLink response: %s" % res) if "fail" in res: self.error(_("Couldn't retrieve download url")) #: this may either download our file or forward us to an error page self.download(self.url, post={"download": "normal"}) - self.logDebug(self.req.http.lastEffectiveURL) + self.log_debug(self.req.http.lastEffectiveURL) - check = self.checkDownload({"expired": self.LINK_EXPIRED_PATTERN, + check = self.check_download({"expired": self.LINK_EXPIRED_PATTERN, "wait" : re.compile(self.LONG_WAIT_PATTERN), "limit" : self.DL_LIMIT_PATTERN}) if check == "expired": - self.logDebug("Download link was expired") + self.log_debug("Download link was expired") self.retry() elif check == "wait": - self.doLongWait(self.lastCheck) + self.do_long_wait(self.last_check) elif check == "limit": - self.logWarning(_("Download limited reached for today")) - self.setWait(secondsToMidnight(gmt=2), True) + self.log_warning(_("Download limited reached for today")) + self.set_wait(seconds_to_midnight(gmt=2), True) self.wait() self.retry() self.thread.m.reconnecting.wait(3) #: Ease issue with later downloads appearing to be in parallel - def doTimmer(self): + def do_timmer(self): res = self.load(self.url, post={"downloadLink": "wait"}) - self.logDebug("Wait response: %s" % res[:80]) + self.log_debug("Wait response: %s" % res[:80]) if "fail" in res: self.fail(_("Failed getting wait time")) @@ -153,11 +153,11 @@ class FileserveCom(Hoster): else: wait_time = int(res) + 3 - self.setWait(wait_time) + self.set_wait(wait_time) self.wait() - def doCaptcha(self): + def do_captcha(self): captcha_key = re.search(self.CAPTCHA_KEY_PATTERN, self.html).group(1) recaptcha = ReCaptcha(self) @@ -168,25 +168,25 @@ class FileserveCom(Hoster): 'recaptcha_response_field' : response, 'recaptcha_shortencode_field': self.file_id})) if not res['success']: - self.invalidCaptcha() + self.invalid_captcha() else: - self.correctCaptcha() + self.correct_captcha() break else: self.fail(_("Invalid captcha")) - def doLongWait(self, m): + def do_long_wait(self, m): wait_time = (int(m.group(1)) * {'seconds': 1, 'minutes': 60, 'hours': 3600}[m.group(2)]) if m else 12 * 60 - self.setWait(wait_time, True) + self.set_wait(wait_time, True) self.wait() self.retry() - def handlePremium(self): + def handle_premium(self): premium_url = None if self.__name__ == "FileserveCom": - #try api download + # try api download res = self.load("http://app.fileserve.com/api/download/premium/", post={"username": self.user, "password": self.account.getAccountData(self.user)['password'], @@ -196,21 +196,21 @@ class FileserveCom(Hoster): if res['error_code'] == "302": premium_url = res['next'] elif res['error_code'] in ["305", "500"]: - self.tempOffline() + self.temp_offline() elif res['error_code'] in ["403", "605"]: - self.resetAccount() + self.reset_account() elif res['error_code'] in ["606", "607", "608"]: self.offline() else: - self.logError(res['error_code'], res['error_message']) + self.log_error(res['error_code'], res['error_message']) self.download(premium_url or self.pyfile.url) - if not premium_url and self.checkDownload({"login": re.compile(self.NOT_LOGGED_IN_PATTERN)}): + if not premium_url and self.check_download({"login": re.compile(self.NOT_LOGGED_IN_PATTERN)}): self.account.relogin(self.user) self.retry(reason=_("Not logged in")) -def getInfo(urls): +def get_info(urls): for chunk in chunks(urls, 100): yield checkFile(FileserveCom, chunk) diff --git a/module/plugins/hoster/FileshareInUa.py b/module/plugins/hoster/FileshareInUa.py index aa1785f19..baeffa735 100644 --- a/module/plugins/hoster/FileshareInUa.py +++ b/module/plugins/hoster/FileshareInUa.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class FileshareInUa(DeadHoster): __name__ = "FileshareInUa" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'https?://(?:www\.)?fileshare\.in\.ua/\w{7}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/FilesonicCom.py b/module/plugins/hoster/FilesonicCom.py index 5254a6f9b..2d825f77e 100644 --- a/module/plugins/hoster/FilesonicCom.py +++ b/module/plugins/hoster/FilesonicCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class FilesonicCom(DeadHoster): __name__ = "FilesonicCom" __type__ = "hoster" - __version__ = "0.35" + __version__ = "0.36" __pattern__ = r'http://(?:www\.)?filesonic\.com/file/\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/FileuploadNet.py b/module/plugins/hoster/FileuploadNet.py index 0f2875318..acddc4c0a 100644 --- a/module/plugins/hoster/FileuploadNet.py +++ b/module/plugins/hoster/FileuploadNet.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class FileuploadNet(SimpleHoster): __name__ = "FileuploadNet" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'https?://(?:www\.)?(en\.)?file-upload\.net/download-\d+/.+' @@ -25,8 +25,8 @@ class FileuploadNet(SimpleHoster): def setup(self): - self.multiDL = True - self.chunkLimit = 1 + self.multi_dl = True + self.chunk_limit = 1 getInfo = create_getInfo(FileuploadNet) diff --git a/module/plugins/hoster/FilezyNet.py b/module/plugins/hoster/FilezyNet.py index 9f442c846..9df311ecf 100644 --- a/module/plugins/hoster/FilezyNet.py +++ b/module/plugins/hoster/FilezyNet.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class FilezyNet(DeadHoster): __name__ = "FilezyNet" __type__ = "hoster" - __version__ = "0.20" + __version__ = "0.21" __pattern__ = r'http://(?:www\.)?filezy\.net/\w{12}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/FiredriveCom.py b/module/plugins/hoster/FiredriveCom.py index 8faee5b52..57752b341 100644 --- a/module/plugins/hoster/FiredriveCom.py +++ b/module/plugins/hoster/FiredriveCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class FiredriveCom(DeadHoster): __name__ = "FiredriveCom" __type__ = "hoster" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'https?://(?:www\.)?(firedrive|putlocker)\.com/(mobile/)?(file|embed)/(?P<ID>\w+)' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/FlyFilesNet.py b/module/plugins/hoster/FlyFilesNet.py index fb57baffd..63cabda66 100644 --- a/module/plugins/hoster/FlyFilesNet.py +++ b/module/plugins/hoster/FlyFilesNet.py @@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster class FlyFilesNet(SimpleHoster): __name__ = "FlyFilesNet" __type__ = "hoster" - __version__ = "0.10" + __version__ = "0.11" __pattern__ = r'http://(?:www\.)?flyfiles\.net/.+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -33,10 +33,10 @@ class FlyFilesNet(SimpleHoster): #: get download URL parsed_url = getURL(url, post={"getDownLink": session}) - self.logDebug("Parsed URL: %s" % parsed_url) + self.log_debug("Parsed URL: %s" % parsed_url) if parsed_url == '#downlink|' or parsed_url == "#downlink|#": - self.logWarning(_("Could not get the download URL. Please wait 10 minutes")) + self.log_warning(_("Could not get the download URL. Please wait 10 minutes")) self.wait(10 * 60, True) self.retry() diff --git a/module/plugins/hoster/FourSharedCom.py b/module/plugins/hoster/FourSharedCom.py index 79eb1fb83..52f311550 100644 --- a/module/plugins/hoster/FourSharedCom.py +++ b/module/plugins/hoster/FourSharedCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class FourSharedCom(SimpleHoster): __name__ = "FourSharedCom" __type__ = "hoster" - __version__ = "0.31" + __version__ = "0.32" __pattern__ = r'https?://(?:www\.)?4shared(\-china)?\.com/(account/)?(download|get|file|document|photo|video|audio|mp3|office|rar|zip|archive|music)/.+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -35,7 +35,7 @@ class FourSharedCom(SimpleHoster): ID_PATTERN = r'name="d3fid" value="(.*?)"' - def handleFree(self, pyfile): + def handle_free(self, pyfile): m = re.search(self.LINK_BTN_PATTERN, self.html) if m: link = m.group(1) @@ -53,7 +53,7 @@ class FourSharedCom(SimpleHoster): try: m = re.search(self.ID_PATTERN, self.html) res = self.load('http://www.4shared.com/web/d2/getFreeDownloadLimitInfo?fileId=%s' % m.group(1)) - self.logDebug(res) + self.log_debug(res) except Exception: pass diff --git a/module/plugins/hoster/FreakshareCom.py b/module/plugins/hoster/FreakshareCom.py index f8e72e62f..86dc45585 100644 --- a/module/plugins/hoster/FreakshareCom.py +++ b/module/plugins/hoster/FreakshareCom.py @@ -4,13 +4,13 @@ import re from module.plugins.internal.Hoster import Hoster from module.plugins.internal.ReCaptcha import ReCaptcha -from module.plugins.internal.SimpleHoster import secondsToMidnight +from module.plugins.internal.SimpleHoster import seconds_to_midnight class FreakshareCom(Hoster): __name__ = "FreakshareCom" __type__ = "hoster" - __version__ = "0.42" + __version__ = "0.43" __pattern__ = r'http://(?:www\.)?freakshare\.(net|com)/files/\S*?/' @@ -23,7 +23,7 @@ class FreakshareCom(Hoster): def setup(self): - self.multiDL = False + self.multi_dl = False self.req_opts = [] @@ -43,7 +43,7 @@ class FreakshareCom(Hoster): self.download(pyfile.url, post=self.req_opts) - check = self.checkDownload({"bad" : "bad try", + check = self.check_download({"bad" : "bad try", "paralell" : "> Sorry, you cant download more then 1 files at time. <", "empty" : "Warning: Unknown: Filename cannot be empty", "wrong_captcha" : "Wrong Captcha!", @@ -53,7 +53,7 @@ class FreakshareCom(Hoster): self.fail(_("Bad Try")) elif check == "paralell": - self.setWait(300, True) + self.set_wait(300, True) self.wait() self.retry() @@ -61,7 +61,7 @@ class FreakshareCom(Hoster): self.fail(_("File not downloadable")) elif check == "wrong_captcha": - self.invalidCaptcha() + self.invalid_captcha() self.retry() elif check == "downloadserver": @@ -76,7 +76,7 @@ class FreakshareCom(Hoster): if not self.file_exists(): self.offline() - self.setWait(self.get_waiting_time()) + self.set_wait(self.get_waiting_time()) pyfile.name = self.get_file_name() pyfile.size = self.get_file_size() @@ -97,10 +97,10 @@ class FreakshareCom(Hoster): """ if not self.html: self.download_html() - if not self.wantReconnect: + if not self.want_reconnect: self.req_opts = self.get_download_options() #: get the Post options for the Request - #file_url = self.pyfile.url - #return file_url + # file_url = self.pyfile.url + # return file_url else: self.offline() @@ -109,7 +109,7 @@ class FreakshareCom(Hoster): if not self.html: self.download_html() - if not self.wantReconnect: + if not self.want_reconnect: m = re.search(r"<h1\sclass=\"box_heading\"\sstyle=\"text-align:center;\">([^ ]+)", self.html) if m: file_name = m.group(1) @@ -126,7 +126,7 @@ class FreakshareCom(Hoster): if not self.html: self.download_html() - if not self.wantReconnect: + if not self.want_reconnect: m = re.search(r"<h1\sclass=\"box_heading\"\sstyle=\"text-align:center;\">[^ ]+ - ([^ ]+) (\w\w)yte", self.html) if m: units = float(m.group(1).replace(",", "")) @@ -141,8 +141,8 @@ class FreakshareCom(Hoster): self.download_html() if "Your Traffic is used up for today" in self.html: - self.wantReconnect = True - return secondsToMidnight(gmt=2) + self.want_reconnect = True + return seconds_to_midnight(gmt=2) timestring = re.search('\s*var\s(?:downloadWait|time)\s=\s(\d*)[\d.]*;', self.html) if timestring: diff --git a/module/plugins/hoster/FreeWayMe.py b/module/plugins/hoster/FreeWayMe.py index 59b3d93bb..3750e6069 100644 --- a/module/plugins/hoster/FreeWayMe.py +++ b/module/plugins/hoster/FreeWayMe.py @@ -6,7 +6,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo class FreeWayMe(MultiHoster): __name__ = "FreeWayMe" __type__ = "hoster" - __version__ = "0.18" + __version__ = "0.19" __pattern__ = r'https?://(?:www\.)?free-way\.(bz|me)/.+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -18,12 +18,12 @@ class FreeWayMe(MultiHoster): def setup(self): - self.resumeDownload = False - self.multiDL = self.premium - self.chunkLimit = 1 + self.resume_download = False + self.multi_dl = self.premium + self.chunk_limit = 1 - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): user, data = self.account.selectAccount() for _i in xrange(5): @@ -40,14 +40,14 @@ class FreeWayMe(MultiHoster): headers = self.load(header['location'], just_header=True) if headers['code'] == 500: #: error on 2nd stage - self.logError(_("Error [stage2]")) + self.log_error(_("Error [stage2]")) else: #: seems to work.. self.download(header['location']) break else: #: error page first stage - self.logError(_("Error [stage1]")) + self.log_error(_("Error [stage1]")) #@TODO: handle errors diff --git a/module/plugins/hoster/FreevideoCz.py b/module/plugins/hoster/FreevideoCz.py index 49f02a28b..32403caf5 100644 --- a/module/plugins/hoster/FreevideoCz.py +++ b/module/plugins/hoster/FreevideoCz.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class FreevideoCz(DeadHoster): __name__ = "FreevideoCz" __type__ = "hoster" - __version__ = "0.30" + __version__ = "0.31" __pattern__ = r'http://(?:www\.)?freevideo\.cz/vase-videa/.+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/FshareVn.py b/module/plugins/hoster/FshareVn.py index 717265014..7e1d573d8 100644 --- a/module/plugins/hoster/FshareVn.py +++ b/module/plugins/hoster/FshareVn.py @@ -8,7 +8,7 @@ from module.network.RequestFactory import getURL from module.plugins.internal.SimpleHoster import SimpleHoster, parseFileInfo -def getInfo(urls): +def get_info(urls): for url in urls: html = getURL("http://www.fshare.vn/check_link.php", post={'action': "check_link", 'arrlinks': url}) @@ -16,14 +16,14 @@ def getInfo(urls): yield parseFileInfo(FshareVn, url, html) -def doubleDecode(m): +def double_decode(m): return m.group(1).decode('raw_unicode_escape') class FshareVn(SimpleHoster): __name__ = "FshareVn" __type__ = "hoster" - __version__ = "0.20" + __version__ = "0.21" __pattern__ = r'http://(?:www\.)?fshare\.vn/file/.+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -47,22 +47,22 @@ class FshareVn(SimpleHoster): post={'action': "check_link", 'arrlinks': pyfile.url}) - def handleFree(self, pyfile): + def handle_free(self, pyfile): self.html = self.load(pyfile.url) - self.checkErrors() + self.check_errors() - action, inputs = self.parseHtmlForm('frm_download') + action, inputs = self.parse_html_form('frm_download') url = urlparse.urljoin(pyfile.url, action) if not inputs: self.error(_("No FORM")) elif 'link_file_pwd_dl' in inputs: - password = self.getPassword() + password = self.get_password() if password: - self.logInfo(_("Password protected link, trying ") + password) + self.log_info(_("Password protected link, trying ") + password) inputs['link_file_pwd_dl'] = password self.html = self.load(url, post=inputs) @@ -74,10 +74,10 @@ class FshareVn(SimpleHoster): else: self.html = self.load(url, post=inputs) - self.checkErrors() + self.check_errors() m = re.search(r'var count = (\d+)', self.html) - self.setWait(int(m.group(1)) if m else 30) + self.set_wait(int(m.group(1)) if m else 30) m = re.search(self.LINK_FREE_PATTERN, self.html) if m is None: @@ -87,19 +87,19 @@ class FshareVn(SimpleHoster): self.wait() - def checkErrors(self): + def check_errors(self): if '/error.php?' in self.req.lastEffectiveURL or u"Liên kết bạn chá»n khÃŽng tá»n" in self.html: self.offline() m = re.search(self.WAIT_PATTERN, self.html) if m: - self.logInfo(_("Wait until %s ICT") % m.group(1)) + self.log_info(_("Wait until %s ICT") % m.group(1)) wait_until = time.mktime.time(time.strptime.time(m.group(1), "%d/%m/%Y %H:%M")) self.wait(wait_until - time.mktime.time(time.gmtime.time()) - 7 * 60 * 60, True) self.retry() elif '<ul class="message-error">' in self.html: msg = "Unknown error occured or wait time not parsed" - self.logError(msg) + self.log_error(msg) self.retry(30, 2 * 60, msg) self.info.pop('error', None) diff --git a/module/plugins/hoster/Ftp.py b/module/plugins/hoster/Ftp.py index f4d6380ee..8c269b255 100644 --- a/module/plugins/hoster/Ftp.py +++ b/module/plugins/hoster/Ftp.py @@ -11,7 +11,7 @@ from module.plugins.internal.Hoster import Hoster class Ftp(Hoster): __name__ = "Ftp" __type__ = "hoster" - __version__ = "0.53" + __version__ = "0.54" __pattern__ = r'(?:ftps?|sftp)://([\w.-]+(:[\w.-]+)?@)?[\w.-]+(:\d+)?/.+' @@ -23,8 +23,8 @@ class Ftp(Hoster): def setup(self): - self.chunkLimit = -1 - self.resumeDownload = True + self.chunk_limit = -1 + self.resume_download = True def process(self, pyfile): @@ -41,10 +41,10 @@ class Ftp(Hoster): servers = [x['login'] for x in self.account.getAllAccounts()] if self.account else [] if netloc in servers: - self.logDebug("Logging on to %s" % netloc) + self.log_debug("Logging on to %s" % netloc) self.req.addAuth(self.account.getAccountInfo(netloc)['password']) else: - pwd = self.getPassword() + pwd = self.get_password() if ':' in pwd: self.req.addAuth(pwd) @@ -56,14 +56,14 @@ class Ftp(Hoster): self.fail(_("Error %d: %s") % e.args) self.req.http.c.setopt(pycurl.NOBODY, 0) - self.logDebug(self.req.http.header) + self.log_debug(self.req.http.header) m = re.search(r"Content-Length:\s*(\d+)", res) if m: pyfile.size = int(m.group(1)) self.download(pyfile.url) else: - #Naive ftp directory listing + # Naive ftp directory listing if re.search(r'^25\d.*?"', self.req.http.header, re.M): pyfile.url = pyfile.url.rstrip('/') pkgname = "/".join([pyfile.package().name, urlparse.urlparse(pyfile.url).path.rpartition('/')[2]]) @@ -71,7 +71,7 @@ class Ftp(Hoster): self.req.http.c.setopt(48, 1) #: CURLOPT_DIRLISTONLY res = self.load(pyfile.url, decode=False) links = [pyfile.url + x for x in res.splitlines()] - self.logDebug("LINKS", links) + self.log_debug("LINKS", links) self.core.api.addPackage(pkgname, links) else: self.fail(_("Unexpected server response")) diff --git a/module/plugins/hoster/GamefrontCom.py b/module/plugins/hoster/GamefrontCom.py index f987a371a..915ebca7c 100644 --- a/module/plugins/hoster/GamefrontCom.py +++ b/module/plugins/hoster/GamefrontCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class GamefrontCom(SimpleHoster): __name__ = "GamefrontCom" __type__ = "hoster" - __version__ = "0.08" + __version__ = "0.09" __pattern__ = r'http://(?:www\.)?gamefront\.com/files/(?P<ID>\d+)' @@ -23,14 +23,14 @@ class GamefrontCom(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = True + self.resume_download = True + self.multi_dl = True - def handleFree(self, pyfile): + def handle_free(self, pyfile): self.html = self.load("http://www.gamefront.com/files/service/thankyou", get={'id': self.info['pattern']['ID']}) - return super(GamefrontCom, self).handleFree(pyfile) + return super(GamefrontCom, self).handle_free(pyfile) getInfo = create_getInfo(GamefrontCom) diff --git a/module/plugins/hoster/GigapetaCom.py b/module/plugins/hoster/GigapetaCom.py index c2feeb6f8..bfa30358e 100644 --- a/module/plugins/hoster/GigapetaCom.py +++ b/module/plugins/hoster/GigapetaCom.py @@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class GigapetaCom(SimpleHoster): __name__ = "GigapetaCom" __type__ = "hoster" - __version__ = "0.04" + __version__ = "0.05" __pattern__ = r'http://(?:www\.)?gigapeta\.com/dl/\w+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -29,16 +29,16 @@ class GigapetaCom(SimpleHoster): COOKIES = [("gigapeta.com", "lang", "us")] - def handleFree(self, pyfile): + def handle_free(self, pyfile): captcha_key = str(random.randint(1, 100000000)) captcha_url = "http://gigapeta.com/img/captcha.gif?x=%s" % captcha_key self.req.http.c.setopt(pycurl.FOLLOWLOCATION, 0) for _i in xrange(5): - self.checkErrors() + self.check_errors() - captcha = self.decryptCaptcha(captcha_url) + captcha = self.decrypt_captcha(captcha_url) self.html = self.load(pyfile.url, post={ "captcha_key": captcha_key, "captcha": captcha, @@ -49,7 +49,7 @@ class GigapetaCom(SimpleHoster): self.link = m.group(1).rstrip() #@TODO: Remove .rstrip() in 0.4.10 break elif "Entered figures don`t coincide with the picture" in self.html: - self.invalidCaptcha() + self.invalid_captcha() else: self.fail(_("No valid captcha code entered")) diff --git a/module/plugins/hoster/GooIm.py b/module/plugins/hoster/GooIm.py index 4b27e6cc8..c40a41029 100644 --- a/module/plugins/hoster/GooIm.py +++ b/module/plugins/hoster/GooIm.py @@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class GooIm(SimpleHoster): __name__ = "GooIm" __type__ = "hoster" - __version__ = "0.04" + __version__ = "0.05" __pattern__ = r'https?://(?:www\.)?goo\.im/.+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -26,11 +26,11 @@ class GooIm(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = True + self.resume_download = True + self.multi_dl = True - def handleFree(self, pyfile): + def handle_free(self, pyfile): self.wait(10) self.link = pyfile.url diff --git a/module/plugins/hoster/GoogledriveCom.py b/module/plugins/hoster/GoogledriveCom.py index d658a8ba1..85dc6989c 100644 --- a/module/plugins/hoster/GoogledriveCom.py +++ b/module/plugins/hoster/GoogledriveCom.py @@ -13,7 +13,7 @@ from module.utils import html_unescape class GoogledriveCom(SimpleHoster): __name__ = "GoogledriveCom" __type__ = "hoster" - __version__ = "0.12" + __version__ = "0.13" __pattern__ = r'https?://(?:www\.)?(drive|docs)\.google\.com/(file/d/\w+|uc\?.*id=)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -32,12 +32,12 @@ class GoogledriveCom(SimpleHoster): def setup(self): - self.multiDL = True - self.resumeDownload = True - self.chunkLimit = 1 + self.multi_dl = True + self.resume_download = True + self.chunk_limit = 1 - def handleFree(self, pyfile): + def handle_free(self, pyfile): for _i in xrange(2): m = re.search(self.LINK_FREE_PATTERN, self.html) @@ -49,7 +49,7 @@ class GoogledriveCom(SimpleHoster): if not urlparse.urlparse(link).scheme: link = urlparse.urljoin("https://docs.google.com/", link) - direct_link = self.directLink(link, False) + direct_link = self.direct_link(link, False) if not direct_link: self.html = self.load(link) else: diff --git a/module/plugins/hoster/HellshareCz.py b/module/plugins/hoster/HellshareCz.py index ac0043b37..9e713b30e 100644 --- a/module/plugins/hoster/HellshareCz.py +++ b/module/plugins/hoster/HellshareCz.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class HellshareCz(SimpleHoster): __name__ = "HellshareCz" __type__ = "hoster" - __version__ = "0.85" + __version__ = "0.86" __pattern__ = r'http://(?:www\.)?hellshare\.(?:cz|com|sk|hu|pl)/[^?]*/\d+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -29,8 +29,8 @@ class HellshareCz(SimpleHoster): def setup(self): - self.resumeDownload = self.multiDL = bool(self.account) - self.chunkLimit = 1 + self.resume_download = self.multi_dl = bool(self.account) + self.chunk_limit = 1 getInfo = create_getInfo(HellshareCz) diff --git a/module/plugins/hoster/HellspyCz.py b/module/plugins/hoster/HellspyCz.py index 9b10760bd..a717a0b36 100644 --- a/module/plugins/hoster/HellspyCz.py +++ b/module/plugins/hoster/HellspyCz.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class HellspyCz(DeadHoster): __name__ = "HellspyCz" __type__ = "hoster" - __version__ = "0.28" + __version__ = "0.29" __pattern__ = r'http://(?:www\.)?(?:hellspy\.(?:cz|com|sk|hu|pl)|sciagaj\.pl)(/\S+/\d+)' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/HighWayMe.py b/module/plugins/hoster/HighWayMe.py index a33a1137b..e51970c71 100644 --- a/module/plugins/hoster/HighWayMe.py +++ b/module/plugins/hoster/HighWayMe.py @@ -3,13 +3,13 @@ import re from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo -from module.plugins.internal.SimpleHoster import secondsToMidnight +from module.plugins.internal.SimpleHoster import seconds_to_midnight class HighWayMe(MultiHoster): __name__ = "HighWayMe" __type__ = "hoster" - __version__ = "0.12" + __version__ = "0.13" __pattern__ = r'https?://.+high-way\.my' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -21,10 +21,10 @@ class HighWayMe(MultiHoster): def setup(self): - self.chunkLimit = 4 + self.chunk_limit = 4 - def checkErrors(self): + def check_errors(self): if self.html.get('code') == 302: #@NOTE: This is not working. It should by if 302 Moved Temporarily then... But I don't now how to implement it. self.account.relogin(self.user) self.retry() @@ -33,31 +33,31 @@ class HighWayMe(MultiHoster): self.offline() elif "downloadlimit" in self.html: - self.logWarning(_("Reached maximum connctions")) + self.log_warning(_("Reached maximum connctions")) self.retry(5, 60, _("Reached maximum connctions")) elif "trafficlimit" in self.html: - self.logWarning(_("Reached daily limit")) - self.retry(wait_time=secondsToMidnight(gmt=2), reason="Daily limit for this host reached") + self.log_warning(_("Reached daily limit")) + self.retry(wait_time=seconds_to_midnight(gmt=2), reason="Daily limit for this host reached") elif "<code>8</code>" in self.html: - self.logWarning(_("Hoster temporarily unavailable, waiting 1 minute and retry")) + self.log_warning(_("Hoster temporarily unavailable, waiting 1 minute and retry")) self.retry(5, 60, _("Hoster is temporarily unavailable")) - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): for _i in xrange(5): self.html = self.load("https://high-way.me/load.php", get={'link': self.pyfile.url}) if self.html: - self.logDebug("JSON data: " + self.html) + self.log_debug("JSON data: " + self.html) break else: - self.logInfo(_("Unable to get API data, waiting 1 minute and retry")) + self.log_info(_("Unable to get API data, waiting 1 minute and retry")) self.retry(5, 60, _("Unable to get API data")) - self.checkErrors() + self.check_errors() try: self.pyfile.name = re.search(r'<name>([^<]+)</name>', self.html).group(1) diff --git a/module/plugins/hoster/HostujeNet.py b/module/plugins/hoster/HostujeNet.py index ec91e50b9..18cba844f 100644 --- a/module/plugins/hoster/HostujeNet.py +++ b/module/plugins/hoster/HostujeNet.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class HostujeNet(SimpleHoster): __name__ = "HostujeNet" __type__ = "hoster" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?hostuje\.net/\w+' @@ -23,11 +23,11 @@ class HostujeNet(SimpleHoster): def setup(self): - self.multiDL = True - self.chunkLimit = 1 + self.multi_dl = True + self.chunk_limit = 1 - def handleFree(self, pyfile): + def handle_free(self, pyfile): m = re.search(r'<script src="([\w^_]+.php)"></script>', self.html) if m: jscript = self.load("http://hostuje.net/" + m.group(1)) @@ -39,7 +39,7 @@ class HostujeNet(SimpleHoster): else: self.error(_("script not found")) - action, inputs = self.parseHtmlForm(pyfile.url.replace(".", "\.").replace( "?", "\?")) + action, inputs = self.parse_html_form(pyfile.url.replace(".", "\.").replace( "?", "\?")) if not action: self.error(_("form not found")) diff --git a/module/plugins/hoster/HotfileCom.py b/module/plugins/hoster/HotfileCom.py index 082415c6b..4878b111b 100644 --- a/module/plugins/hoster/HotfileCom.py +++ b/module/plugins/hoster/HotfileCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class HotfileCom(DeadHoster): __name__ = "HotfileCom" __type__ = "hoster" - __version__ = "0.37" + __version__ = "0.38" __pattern__ = r'https?://(?:www\.)?hotfile\.com/dl/\d+/\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/HugefilesNet.py b/module/plugins/hoster/HugefilesNet.py index 3fdcca1ba..d3851d137 100644 --- a/module/plugins/hoster/HugefilesNet.py +++ b/module/plugins/hoster/HugefilesNet.py @@ -8,7 +8,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class HugefilesNet(XFSHoster): __name__ = "HugefilesNet" __type__ = "hoster" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'http://(?:www\.)?hugefiles\.net/\w{12}' diff --git a/module/plugins/hoster/HundredEightyUploadCom.py b/module/plugins/hoster/HundredEightyUploadCom.py index 2a35a008f..74f69fd3b 100644 --- a/module/plugins/hoster/HundredEightyUploadCom.py +++ b/module/plugins/hoster/HundredEightyUploadCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class HundredEightyUploadCom(XFSHoster): __name__ = "HundredEightyUploadCom" __type__ = "hoster" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'http://(?:www\.)?180upload\.com/\w{12}' diff --git a/module/plugins/hoster/IFileWs.py b/module/plugins/hoster/IFileWs.py index ff263d43a..a0149d034 100644 --- a/module/plugins/hoster/IFileWs.py +++ b/module/plugins/hoster/IFileWs.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class IFileWs(DeadHoster): __name__ = "IFileWs" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'http://(?:www\.)?ifile\.ws/\w{12}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/IcyFilesCom.py b/module/plugins/hoster/IcyFilesCom.py index f81381c66..6d5accddb 100644 --- a/module/plugins/hoster/IcyFilesCom.py +++ b/module/plugins/hoster/IcyFilesCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class IcyFilesCom(DeadHoster): __name__ = "IcyFilesCom" __type__ = "hoster" - __version__ = "0.06" + __version__ = "0.07" __pattern__ = r'http://(?:www\.)?icyfiles\.com/(.+)' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/IfileIt.py b/module/plugins/hoster/IfileIt.py index 18aa0b60f..148cd57d3 100644 --- a/module/plugins/hoster/IfileIt.py +++ b/module/plugins/hoster/IfileIt.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class IfileIt(DeadHoster): __name__ = "IfileIt" __type__ = "hoster" - __version__ = "0.29" + __version__ = "0.30" __pattern__ = r'^unmatchable$' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/IfolderRu.py b/module/plugins/hoster/IfolderRu.py index 5f3b4bb51..cc39b32cb 100644 --- a/module/plugins/hoster/IfolderRu.py +++ b/module/plugins/hoster/IfolderRu.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class IfolderRu(SimpleHoster): __name__ = "IfolderRu" __type__ = "hoster" - __version__ = "0.39" + __version__ = "0.40" __pattern__ = r'http://(?:www)?(files\.)?(ifolder\.ru|metalarea\.org|rusfolder\.(com|net|ru))/(files/)?(?P<ID>\d+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -34,11 +34,11 @@ class IfolderRu(SimpleHoster): def setup(self): - self.resumeDownload = self.multiDL = bool(self.account) - self.chunkLimit = 1 + self.resume_download = self.multi_dl = bool(self.account) + self.chunk_limit = 1 - def handleFree(self, pyfile): + def handle_free(self, pyfile): url = "http://rusfolder.com/%s" % self.info['pattern']['ID'] self.html = self.load("http://rusfolder.com/%s" % self.info['pattern']['ID']) self.getFileInfo() @@ -47,14 +47,14 @@ class IfolderRu(SimpleHoster): captcha_url = "http://ints.rusfolder.com/random/images/?session=%s" % session_id for _i in xrange(5): - action, inputs = self.parseHtmlForm('id="download-step-one-form"') - inputs['confirmed_number'] = self.decryptCaptcha(captcha_url, cookies=True) + action, inputs = self.parse_html_form('id="download-step-one-form"') + inputs['confirmed_number'] = self.decrypt_captcha(captcha_url, cookies=True) inputs['action'] = '1' - self.logDebug(inputs) + self.log_debug(inputs) self.html = self.load(url, post=inputs) if self.WRONG_CAPTCHA_PATTERN in self.html: - self.invalidCaptcha() + self.invalid_captcha() else: break else: diff --git a/module/plugins/hoster/JumbofilesCom.py b/module/plugins/hoster/JumbofilesCom.py index 4812f0224..1da6d7d3c 100644 --- a/module/plugins/hoster/JumbofilesCom.py +++ b/module/plugins/hoster/JumbofilesCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class JumbofilesCom(SimpleHoster): __name__ = "JumbofilesCom" __type__ = "hoster" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?jumbofiles\.com/(?P<ID>\w{12})' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -24,11 +24,11 @@ class JumbofilesCom(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = True + self.resume_download = True + self.multi_dl = True - def handleFree(self, pyfile): + def handle_free(self, pyfile): post_data = {"id": self.info['pattern']['ID'], "op": "download3", "rand": ""} html = self.load(self.pyfile.url, post=post_data) self.link = re.search(self.LINK_FREE_PATTERN, html).group(1) diff --git a/module/plugins/hoster/JunocloudMe.py b/module/plugins/hoster/JunocloudMe.py index 415d5e2d0..fb5eae4f8 100644 --- a/module/plugins/hoster/JunocloudMe.py +++ b/module/plugins/hoster/JunocloudMe.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class JunocloudMe(XFSHoster): __name__ = "JunocloudMe" __type__ = "hoster" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'http://(?:\w+\.)?junocloud\.me/\w{12}' diff --git a/module/plugins/hoster/Keep2ShareCc.py b/module/plugins/hoster/Keep2ShareCc.py index d90466904..c743f4fc9 100644 --- a/module/plugins/hoster/Keep2ShareCc.py +++ b/module/plugins/hoster/Keep2ShareCc.py @@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class Keep2ShareCc(SimpleHoster): __name__ = "Keep2ShareCc" __type__ = "hoster" - __version__ = "0.23" + __version__ = "0.24" __pattern__ = r'https?://(?:www\.)?(keep2share|k2s|keep2s)\.cc/file/(?P<ID>\w+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -39,11 +39,11 @@ class Keep2ShareCc(SimpleHoster): ERROR_PATTERN = r'>\s*(Free user can\'t download large files|You no can access to this file|This download available only for premium users|This is private file)' - def checkErrors(self): + def check_errors(self): m = re.search(self.TEMP_ERROR_PATTERN, self.html) if m: self.info['error'] = m.group(1) - self.wantReconnect = True + self.want_reconnect = True self.retry(wait_time=30 * 60, reason=m.group(0)) m = re.search(self.ERROR_PATTERN, self.html) @@ -53,30 +53,30 @@ class Keep2ShareCc(SimpleHoster): m = re.search(self.WAIT_PATTERN, self.html) if m: - self.logDebug("Hoster told us to wait for %s" % m.group(1)) + self.log_debug("Hoster told us to wait for %s" % m.group(1)) #: string to time convert courtesy of https://stackoverflow.com/questions/10663720 ftr = [3600, 60, 1] wait_time = sum(a * b for a, b in zip(ftr, map(int, m.group(1).split(':')))) - self.wantReconnect = True + self.want_reconnect = True self.retry(wait_time=wait_time, reason="Please wait to download this file") self.info.pop('error', None) - def handleFree(self, pyfile): + def handle_free(self, pyfile): self.fid = re.search(r'<input type="hidden" name="slow_id" value="(.+?)">', self.html).group(1) self.html = self.load(pyfile.url, post={'yt0': '', 'slow_id': self.fid}) - #: self.logDebug(self.fid) - #: self.logDebug(pyfile.url) + #: self.log_debug(self.fid) + #: self.log_debug(pyfile.url) - self.checkErrors() + self.check_errors() m = re.search(self.LINK_FREE_PATTERN, self.html) if m is None: - self.handleCaptcha() + self.handle_captcha() self.wait(31) self.html = self.load(pyfile.url) @@ -87,20 +87,20 @@ class Keep2ShareCc(SimpleHoster): self.link = m.group(1) - def handleCaptcha(self): + def handle_captcha(self): post_data = {'free' : 1, 'freeDownloadRequest': 1, 'uniqueId' : self.fid, 'yt0' : ''} m = re.search(r'id="(captcha\-form)"', self.html) - self.logDebug("captcha-form found %s" % m) + self.log_debug("captcha-form found %s" % m) m = re.search(self.CAPTCHA_PATTERN, self.html) - self.logDebug("CAPTCHA_PATTERN found %s" % m) + self.log_debug("CAPTCHA_PATTERN found %s" % m) if m: captcha_url = urlparse.urljoin("http://keep2s.cc/", m.group(1)) - post_data['CaptchaForm[code]'] = self.decryptCaptcha(captcha_url) + post_data['CaptchaForm[code]'] = self.decrypt_captcha(captcha_url) else: recaptcha = ReCaptcha(self) response, challenge = recaptcha.challenge() @@ -110,9 +110,9 @@ class Keep2ShareCc(SimpleHoster): self.html = self.load(self.pyfile.url, post=post_data) if 'verification code is incorrect' not in self.html: - self.correctCaptcha() + self.correct_captcha() else: - self.invalidCaptcha() + self.invalid_captcha() getInfo = create_getInfo(Keep2ShareCc) diff --git a/module/plugins/hoster/KickloadCom.py b/module/plugins/hoster/KickloadCom.py index 7690c85c8..2be82bcfd 100644 --- a/module/plugins/hoster/KickloadCom.py +++ b/module/plugins/hoster/KickloadCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class KickloadCom(DeadHoster): __name__ = "KickloadCom" __type__ = "hoster" - __version__ = "0.21" + __version__ = "0.22" __pattern__ = r'http://(?:www\.)?kickload\.com/get/.+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/KingfilesNet.py b/module/plugins/hoster/KingfilesNet.py index f14cbd8b4..41e6f1c46 100644 --- a/module/plugins/hoster/KingfilesNet.py +++ b/module/plugins/hoster/KingfilesNet.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class KingfilesNet(SimpleHoster): __name__ = "KingfilesNet" __type__ = "hoster" - __version__ = "0.08" + __version__ = "0.09" __pattern__ = r'http://(?:www\.)?kingfiles\.net/(?P<ID>\w{12})' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -31,11 +31,11 @@ class KingfilesNet(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = True + self.resume_download = True + self.multi_dl = True - def handleFree(self, pyfile): + def handle_free(self, pyfile): #: Click the free user button post_data = {'op' : "download1", 'usr_login' : "", @@ -55,7 +55,7 @@ class KingfilesNet(SimpleHoster): self.error(_("Random key not found")) rand = m.group(1) - self.logDebug("rand = ", rand) + self.log_debug("rand = ", rand) post_data = {'op' : "download2", 'id' : self.info['pattern']['ID'], diff --git a/module/plugins/hoster/LemUploadsCom.py b/module/plugins/hoster/LemUploadsCom.py index 098867c8b..71ad1c5db 100644 --- a/module/plugins/hoster/LemUploadsCom.py +++ b/module/plugins/hoster/LemUploadsCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class LemUploadsCom(DeadHoster): __name__ = "LemUploadsCom" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'https?://(?:www\.)?lemuploads\.com/\w{12}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/LetitbitNet.py b/module/plugins/hoster/LetitbitNet.py index 62afb6c7c..60634354b 100644 --- a/module/plugins/hoster/LetitbitNet.py +++ b/module/plugins/hoster/LetitbitNet.py @@ -12,7 +12,7 @@ import urlparse from module.common.json_layer import json_loads, json_dumps from module.network.RequestFactory import getURL from module.plugins.internal.ReCaptcha import ReCaptcha -from module.plugins.internal.SimpleHoster import SimpleHoster, secondsToMidnight +from module.plugins.internal.SimpleHoster import SimpleHoster, seconds_to_midnight def api_response(url): @@ -22,7 +22,7 @@ def api_response(url): return json_loads(api_rep) -def getInfo(urls): +def get_info(urls): for url in urls: api_rep = api_response(url) if api_rep['status'] == 'OK': @@ -35,7 +35,7 @@ def getInfo(urls): class LetitbitNet(SimpleHoster): __name__ = "LetitbitNet" __type__ = "hoster" - __version__ = "0.31" + __version__ = "0.32" __pattern__ = r'https?://(?:www\.)?(letitbit|shareflare)\.net/download/.+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -53,16 +53,16 @@ class LetitbitNet(SimpleHoster): def setup(self): - self.resumeDownload = True + self.resume_download = True - def handleFree(self, pyfile): - action, inputs = self.parseHtmlForm('id="ifree_form"') + def handle_free(self, pyfile): + action, inputs = self.parse_html_form('id="ifree_form"') if not action: self.error(_("ifree_form")) pyfile.size = float(inputs['sssize']) - self.logDebug(action, inputs) + self.log_debug(action, inputs) inputs['desc'] = "" self.html = self.load(urlparse.urljoin("http://letitbit.net/", action), post=inputs) @@ -70,12 +70,12 @@ class LetitbitNet(SimpleHoster): m = re.search(self.SECONDS_PATTERN, self.html) seconds = int(m.group(1)) if m else 60 - self.logDebug("Seconds found", seconds) + self.log_debug("Seconds found", seconds) m = re.search(self.CAPTCHA_CONTROL_FIELD, self.html) recaptcha_control_field = m.group(1) - self.logDebug("ReCaptcha control field found", recaptcha_control_field) + self.log_debug("ReCaptcha control field found", recaptcha_control_field) self.wait(seconds) @@ -83,7 +83,7 @@ class LetitbitNet(SimpleHoster): if res != '1': self.error(_("Unknown response - ajax_check_url")) - self.logDebug(res) + self.log_debug(res) recaptcha = ReCaptcha(self) response, challenge = recaptcha.challenge() @@ -92,21 +92,21 @@ class LetitbitNet(SimpleHoster): "recaptcha_response_field": response, "recaptcha_control_field": recaptcha_control_field} - self.logDebug("Post data to send", post_data) + self.log_debug("Post data to send", post_data) res = self.load("http://letitbit.net/ajax/check_recaptcha.php", post=post_data) - self.logDebug(res) + self.log_debug(res) if not res: - self.invalidCaptcha() + self.invalid_captcha() if res == "error_free_download_blocked": - self.logWarning(_("Daily limit reached")) - self.wait(secondsToMidnight(gmt=2), True) + self.log_warning(_("Daily limit reached")) + self.wait(seconds_to_midnight(gmt=2), True) if res == "error_wrong_captcha": - self.invalidCaptcha() + self.invalid_captcha() self.retry() elif res.startswith('['): @@ -121,13 +121,13 @@ class LetitbitNet(SimpleHoster): self.link = urls[0] - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): api_key = self.user premium_key = self.account.getAccountData(self.user)['password'] json_data = [api_key, ["download/direct_links", {"pass": premium_key, "link": pyfile.url}]] api_rep = self.load('http://api.letitbit.net/json', post={'r': json_dumps(json_data)}) - self.logDebug("API Data: " + api_rep) + self.log_debug("API Data: " + api_rep) api_rep = json_loads(api_rep) if api_rep['status'] == 'FAIL': diff --git a/module/plugins/hoster/LinksnappyCom.py b/module/plugins/hoster/LinksnappyCom.py index f7bdef0dd..19cad7b97 100644 --- a/module/plugins/hoster/LinksnappyCom.py +++ b/module/plugins/hoster/LinksnappyCom.py @@ -10,7 +10,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo class LinksnappyCom(MultiHoster): __name__ = "LinksnappyCom" __type__ = "hoster" - __version__ = "0.09" + __version__ = "0.10" __pattern__ = r'https?://(?:[^/]+\.)?linksnappy\.com' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -24,7 +24,7 @@ class LinksnappyCom(MultiHoster): SINGLE_CHUNK_HOSTERS = ["easybytez.com"] - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): host = self._get_host(pyfile.url) json_params = json_dumps({'link' : pyfile.url, 'type' : host, @@ -34,7 +34,7 @@ class LinksnappyCom(MultiHoster): r = self.load("http://gen.linksnappy.com/genAPI.php", post={'genLinks': json_params}) - self.logDebug("JSON data: " + r) + self.log_debug("JSON data: " + r) j = json_loads(r)['links'][0] @@ -45,7 +45,7 @@ class LinksnappyCom(MultiHoster): self.link = j['generated'] if host in self.SINGLE_CHUNK_HOSTERS: - self.chunkLimit = 1 + self.chunk_limit = 1 else: self.setup() diff --git a/module/plugins/hoster/LoadTo.py b/module/plugins/hoster/LoadTo.py index e974b9f3d..5c276ff38 100644 --- a/module/plugins/hoster/LoadTo.py +++ b/module/plugins/hoster/LoadTo.py @@ -13,7 +13,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class LoadTo(SimpleHoster): __name__ = "LoadTo" __type__ = "hoster" - __version__ = "0.24" + __version__ = "0.25" __pattern__ = r'http://(?:www\.)?load\.to/\w+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -35,11 +35,11 @@ class LoadTo(SimpleHoster): def setup(self): - self.multiDL = True - self.chunkLimit = 1 + self.multi_dl = True + self.chunk_limit = 1 - def handleFree(self, pyfile): + def handle_free(self, pyfile): #: Search for Download URL m = re.search(self.LINK_FREE_PATTERN, self.html) if m is None: diff --git a/module/plugins/hoster/LolabitsEs.py b/module/plugins/hoster/LolabitsEs.py index 08773888b..e5656b6a0 100644 --- a/module/plugins/hoster/LolabitsEs.py +++ b/module/plugins/hoster/LolabitsEs.py @@ -9,7 +9,7 @@ from module.utils import html_unescape class LolabitsEs(SimpleHoster): __name__ = "LolabitsEs" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'https?://(?:www\.)?lolabits\.es/.+' @@ -28,15 +28,15 @@ class LolabitsEs(SimpleHoster): def setup(self): - self.chunkLimit = 1 + self.chunk_limit = 1 - def handleFree(self, pyfile): + def handle_free(self, pyfile): fileid = re.search(self.FILEID_PATTERN, self.html).group(1) - self.logDebug("FileID: " + fileid) + self.log_debug("FileID: " + fileid) token = re.search(self.TOKEN_PATTERN, self.html).group(1) - self.logDebug("Token: " + token) + self.log_debug("Token: " + token) self.html = self.load("http://lolabits.es/action/License/Download", post={'fileId' : fileid, diff --git a/module/plugins/hoster/LomafileCom.py b/module/plugins/hoster/LomafileCom.py index ef05cd1ea..67cb32608 100644 --- a/module/plugins/hoster/LomafileCom.py +++ b/module/plugins/hoster/LomafileCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class LomafileCom(DeadHoster): __name__ = "LomafileCom" __type__ = "hoster" - __version__ = "0.52" + __version__ = "0.53" __pattern__ = r'http://lomafile\.com/\w{12}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/LuckyShareNet.py b/module/plugins/hoster/LuckyShareNet.py index c08203346..ec5e87f12 100644 --- a/module/plugins/hoster/LuckyShareNet.py +++ b/module/plugins/hoster/LuckyShareNet.py @@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class LuckyShareNet(SimpleHoster): __name__ = "LuckyShareNet" __type__ = "hoster" - __version__ = "0.07" + __version__ = "0.08" __pattern__ = r'https?://(?:www\.)?luckyshare\.net/(?P<ID>\d{10,})' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -25,13 +25,13 @@ class LuckyShareNet(SimpleHoster): OFFLINE_PATTERN = r'There is no such file available' - def parseJson(self, rep): + def parse_json(self, rep): if 'AJAX Error' in rep: html = self.load(self.pyfile.url) m = re.search(r"waitingtime = (\d+);", html) if m: seconds = int(m.group(1)) - self.logDebug("You have to wait %d seconds between free downloads" % seconds) + self.log_debug("You have to wait %d seconds between free downloads" % seconds) self.retry(wait_time=seconds) else: self.error(_("Unable to detect wait time between free downloads")) @@ -42,12 +42,12 @@ class LuckyShareNet(SimpleHoster): #@TODO: There should be a filesize limit for free downloads # Some files could not be downloaded in free mode - def handleFree(self, pyfile): + def handle_free(self, pyfile): rep = self.load(r"http://luckyshare.net/download/request/type/time/file/" + self.info['pattern']['ID']) - self.logDebug("JSON: " + rep) + self.log_debug("JSON: " + rep) - json = self.parseJson(rep) + json = self.parse_json(rep) self.wait(json['time']) recaptcha = ReCaptcha(self) @@ -56,13 +56,13 @@ class LuckyShareNet(SimpleHoster): response, challenge = recaptcha.challenge() rep = self.load(r"http://luckyshare.net/download/verify/challenge/%s/response/%s/hash/%s" % (challenge, response, json['hash'])) - self.logDebug("JSON: " + rep) + self.log_debug("JSON: " + rep) if 'link' in rep: - json.update(self.parseJson(rep)) - self.correctCaptcha() + json.update(self.parse_json(rep)) + self.correct_captcha() break elif 'Verification failed' in rep: - self.invalidCaptcha() + self.invalid_captcha() else: self.error(_("Unable to get downlaod link")) diff --git a/module/plugins/hoster/MediafireCom.py b/module/plugins/hoster/MediafireCom.py index 56f13362a..b1a7477e1 100644 --- a/module/plugins/hoster/MediafireCom.py +++ b/module/plugins/hoster/MediafireCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class MediafireCom(SimpleHoster): __name__ = "MediafireCom" __type__ = "hoster" - __version__ = "0.89" + __version__ = "0.90" __pattern__ = r'https?://(?:www\.)?mediafire\.com/(file/|view/\??|download(\.php\?|/)|\?)(?P<ID>\w{15})' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -31,11 +31,11 @@ class MediafireCom(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = True + self.resume_download = True + self.multi_dl = True - def handleCaptcha(self): + def handle_captcha(self): solvemedia = SolveMedia(self) captcha_key = solvemedia.detect_key() @@ -55,22 +55,22 @@ class MediafireCom(SimpleHoster): post={'g-recaptcha-response': response}) - def handleFree(self, pyfile): - self.handleCaptcha() + def handle_free(self, pyfile): + self.handle_captcha() if self.PASSWORD_PATTERN in self.html: - password = self.getPassword() + password = self.get_password() if not password: self.fail(_("No password found")) else: - self.logInfo(_("Password protected link, trying: ") + password) + self.log_info(_("Password protected link, trying: ") + password) self.html = self.load(self.link, post={'downloadp': password}) if self.PASSWORD_PATTERN in self.html: self.fail(_("Incorrect password")) - return super(MediafireCom, self).handleFree(pyfile) + return super(MediafireCom, self).handle_free(pyfile) getInfo = create_getInfo(MediafireCom) diff --git a/module/plugins/hoster/MegaCoNz.py b/module/plugins/hoster/MegaCoNz.py index 2e6dcfda6..411c12c4a 100644 --- a/module/plugins/hoster/MegaCoNz.py +++ b/module/plugins/hoster/MegaCoNz.py @@ -48,7 +48,7 @@ from module.utils import decode, fs_decode, fs_encode class MegaCoNz(Hoster): __name__ = "MegaCoNz" __type__ = "hoster" - __version__ = "0.30" + __version__ = "0.31" __pattern__ = r'(https?://(?:www\.)?mega(\.co)?\.nz/|mega:|chrome:.+?)#(?P<TYPE>N|)!(?P<ID>[\w^_]+)!(?P<KEY>[\w,-]+)' @@ -67,7 +67,7 @@ class MegaCoNz(Hoster): return standard_b64decode(data + '=' * (-len(data) % 4)) - def getCipherKey(self, key): + def get_cipher_key(self, key): """ Construct the cipher key from the given data """ @@ -88,16 +88,16 @@ class MegaCoNz(Hoster): uid = random.randint(10 << 9, 10 ** 10) res = self.load(self.API_URL, get={'id': uid}, post=json_dumps([kwargs])) - self.logDebug("Api Response: " + res) + self.log_debug("Api Response: " + res) return json_loads(res) - def decryptAttr(self, data, key): - k, iv, meta_mac = self.getCipherKey(key) + def decrypt_attr(self, data, key): + k, iv, meta_mac = self.get_cipher_key(key) cbc = AES.new(k, AES.MODE_CBC, "\0" * 16) attr = decode(cbc.decrypt(self.b64_decode(data))) - self.logDebug("Decrypted Attr: %s" % attr) + self.log_debug("Decrypted Attr: %s" % attr) if not attr.startswith("MEGA"): self.fail(_("Decryption failed")) @@ -105,7 +105,7 @@ class MegaCoNz(Hoster): return json_loads(re.search(r'{.+?}', attr).group(0)) - def decryptFile(self, key): + def decrypt_file(self, key): """ Decrypts the file at lastDownload` """ @@ -113,14 +113,14 @@ class MegaCoNz(Hoster): n = self.b64_decode(key)[16:24] #: convert counter to long and shift bytes - k, iv, meta_mac = self.getCipherKey(key) + k, iv, meta_mac = self.get_cipher_key(key) ctr = Counter.new(128, initial_value=long(n.encode("hex"), 16) << 64) cipher = AES.new(k, AES.MODE_CTR, counter=ctr) self.pyfile.setStatus("decrypting") self.pyfile.setProgress(0) - file_crypted = fs_encode(self.lastDownload) + file_crypted = fs_encode(self.last_download) file_decrypted = file_crypted.rsplit(self.FILE_SUFFIX)[0] try: @@ -167,17 +167,17 @@ class MegaCoNz(Hoster): #: self.fail(_("Checksum mismatch")) os.remove(file_crypted) - self.lastDownload = fs_decode(file_decrypted) + self.last_download = fs_decode(file_decrypted) - def checkError(self, code): + def check_error(self, code): ecode = abs(code) if ecode in (9, 16, 21): self.offline() elif ecode in (3, 13, 17, 18, 19): - self.tempOffline() + self.temp_offline() elif ecode in (1, 4, 6, 10, 15, 21): self.retry(5, 30, _("Error code: [%s]") % -ecode) @@ -192,7 +192,7 @@ class MegaCoNz(Hoster): key = pattern['KEY'] public = pattern['TYPE'] == '' - self.logDebug("ID: %s" % id, "Key: %s" % key, "Type: %s" % ("public" if public else "node")) + self.log_debug("ID: %s" % id, "Key: %s" % key, "Type: %s" % ("public" if public else "node")) #: g is for requesting a download url #: this is similar to the calls in the mega js app, documentation is very bad @@ -202,11 +202,11 @@ class MegaCoNz(Hoster): mega = self.api_response(a="g", g=1, n=id, ssl=1)[0] if isinstance(mega, int): - self.checkError(mega) + self.check_error(mega) elif "e" in mega: - self.checkError(mega['e']) + self.check_error(mega['e']) - attr = self.decryptAttr(mega['at'], key) + attr = self.decrypt_attr(mega['at'], key) pyfile.name = attr['n'] + self.FILE_SUFFIX pyfile.size = mega['s'] @@ -215,7 +215,7 @@ class MegaCoNz(Hoster): self.download(mega['g']) - self.decryptFile(key) + self.decrypt_file(key) #: Everything is finished and final name can be set pyfile.name = attr['n'] diff --git a/module/plugins/hoster/MegaDebridEu.py b/module/plugins/hoster/MegaDebridEu.py index e4a002f9b..67c8f087b 100644 --- a/module/plugins/hoster/MegaDebridEu.py +++ b/module/plugins/hoster/MegaDebridEu.py @@ -10,7 +10,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo class MegaDebridEu(MultiHoster): __name__ = "MegaDebridEu" __type__ = "hoster" - __version__ = "0.48" + __version__ = "0.49" __pattern__ = r'http://((?:www\d+\.|s\d+\.)?mega-debrid\.eu|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/download/file/[\w^_]+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -41,7 +41,7 @@ class MegaDebridEu(MultiHoster): return False - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): """ Debrid a link Return The debrided link if succeed or original link if fail diff --git a/module/plugins/hoster/MegaFilesSe.py b/module/plugins/hoster/MegaFilesSe.py index 249eff952..f592c940b 100644 --- a/module/plugins/hoster/MegaFilesSe.py +++ b/module/plugins/hoster/MegaFilesSe.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class MegaFilesSe(DeadHoster): __name__ = "MegaFilesSe" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'http://(?:www\.)?megafiles\.se/\w{12}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/MegaRapidCz.py b/module/plugins/hoster/MegaRapidCz.py index ed6e0a3ad..e00efc1a9 100644 --- a/module/plugins/hoster/MegaRapidCz.py +++ b/module/plugins/hoster/MegaRapidCz.py @@ -8,7 +8,7 @@ from module.network.RequestFactory import getRequest from module.plugins.internal.SimpleHoster import SimpleHoster, parseFileInfo -def getInfo(urls): +def get_info(urls): h = getRequest() h.c.setopt(pycurl.HTTPHEADER, ["Accept: text/html", @@ -22,7 +22,7 @@ def getInfo(urls): class MegaRapidCz(SimpleHoster): __name__ = "MegaRapidCz" __type__ = "hoster" - __version__ = "0.56" + __version__ = "0.57" __pattern__ = r'http://(?:www\.)?(share|mega)rapid\.cz/soubor/\d+/.+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -48,10 +48,10 @@ class MegaRapidCz(SimpleHoster): def setup(self): - self.chunkLimit = 1 + self.chunk_limit = 1 - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): m = re.search(self.LINK_PREMIUM_PATTERN, self.html) if m: self.link = m.group(1) diff --git a/module/plugins/hoster/MegaRapidoNet.py b/module/plugins/hoster/MegaRapidoNet.py index 4b0465e44..cc5be0ea3 100644 --- a/module/plugins/hoster/MegaRapidoNet.py +++ b/module/plugins/hoster/MegaRapidoNet.py @@ -5,7 +5,7 @@ import random from module.plugins.internal.MultiHoster import MultiHoster -def random_with_N_digits(n): +def random_with_n_digits(n): rand = "0." not_zero = 0 for i in xrange(1, n + 1): @@ -23,7 +23,7 @@ def random_with_N_digits(n): class MegaRapidoNet(MultiHoster): __name__ = "MegaRapidoNet" __type__ = "hoster" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?\w+\.megarapido\.net/\?file=\w+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -39,7 +39,7 @@ class MegaRapidoNet(MultiHoster): ERROR_PATTERN = r'<\s*?div[^>]*?class\s*?=\s*?["\']?alert-message error.*?>([^<]*)' - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): self.html = self.load("http://megarapido.net/gerar.php", post={'rand' :random_with_N_digits(16), 'urllist' : pyfile.url, @@ -52,4 +52,4 @@ class MegaRapidoNet(MultiHoster): if "desloga e loga novamente para gerar seus links" in self.html.lower(): self.error("You have logged in at another place") - return super(MegaRapidoNet, self).handlePremium(pyfile) + return super(MegaRapidoNet, self).handle_premium(pyfile) diff --git a/module/plugins/hoster/MegacrypterCom.py b/module/plugins/hoster/MegacrypterCom.py index 27c3c7253..7152a1cbc 100644 --- a/module/plugins/hoster/MegacrypterCom.py +++ b/module/plugins/hoster/MegacrypterCom.py @@ -10,7 +10,7 @@ from module.plugins.hoster.MegaCoNz import MegaCoNz class MegacrypterCom(MegaCoNz): __name__ = "MegacrypterCom" __type__ = "hoster" - __version__ = "0.22" + __version__ = "0.23" __pattern__ = r'https?://\w{0,10}\.?megacrypter\.com/[\w!-]+' @@ -27,9 +27,9 @@ class MegacrypterCom(MegaCoNz): """ Dispatch a call to the api, see megacrypter.com/api_doc """ - self.logDebug("JSON request: " + json_dumps(kwargs)) + self.log_debug("JSON request: " + json_dumps(kwargs)) res = self.load(self.API_URL, post=json_dumps(kwargs)) - self.logDebug("API Response: " + res) + self.log_debug("API Response: " + res) return json_loads(res) @@ -53,7 +53,7 @@ class MegacrypterCom(MegaCoNz): self.download(dl['url']) - self.decryptFile(key) + self.decrypt_file(key) #: Everything is finished and final name can be set pyfile.name = info['name'] diff --git a/module/plugins/hoster/MegareleaseOrg.py b/module/plugins/hoster/MegareleaseOrg.py index 6349144ec..5273a1d5e 100644 --- a/module/plugins/hoster/MegareleaseOrg.py +++ b/module/plugins/hoster/MegareleaseOrg.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class MegareleaseOrg(DeadHoster): __name__ = "MegareleaseOrg" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'https?://(?:www\.)?megarelease\.org/\w{12}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/MegasharesCom.py b/module/plugins/hoster/MegasharesCom.py index 0c74e380d..34ed8bf8b 100644 --- a/module/plugins/hoster/MegasharesCom.py +++ b/module/plugins/hoster/MegasharesCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class MegasharesCom(SimpleHoster): __name__ = "MegasharesCom" __type__ = "hoster" - __version__ = "0.28" + __version__ = "0.29" __pattern__ = r'http://(?:www\.)?(d\d{2}\.)?megashares\.com/((index\.php)?\?d\d{2}=|dl/)\w+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -35,15 +35,15 @@ class MegasharesCom(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = self.premium + self.resume_download = True + self.multi_dl = self.premium - def handlePremium(self, pyfile): - self.handleDownload(True) + def handle_premium(self, pyfile): + self.handle_download(True) - def handleFree(self, pyfile): + def handle_free(self, pyfile): if self.NO_SLOTS_PATTERN in self.html: self.retry(wait_time=5 * 60) @@ -55,10 +55,10 @@ class MegasharesCom(SimpleHoster): for _i in xrange(5): random_num = re.search(self.REACTIVATE_NUM_PATTERN, self.html).group(1) - verifyinput = self.decryptCaptcha("http://d01.megashares.com/index.php", + verifyinput = self.decrypt_captcha("http://d01.megashares.com/index.php", get={'secgfx': "gfx", 'random_num': random_num}) - self.logInfo(_("Reactivating passport %s: %s %s") % (passport_num, random_num, verifyinput)) + self.log_info(_("Reactivating passport %s: %s %s") % (passport_num, random_num, verifyinput)) res = self.load("http://d01.megashares.com%s" % request_uri, get={'rs' : "check_passport_renewal", @@ -69,10 +69,10 @@ class MegasharesCom(SimpleHoster): 'rsrnd[]' : str(int(time.time() * 1000))}) if 'Thank you for reactivating your passport.' in res: - self.correctCaptcha() + self.correct_captcha() self.retry() else: - self.invalidCaptcha() + self.invalid_captcha() else: self.fail(_("Failed to reactivate passport")) @@ -80,7 +80,7 @@ class MegasharesCom(SimpleHoster): if m: time = [int(x) for x in m.groups()] renew = time[0] + (time[1] * 60) + (time[2] * 60) - self.logDebug("Waiting %d seconds for a new passport" % renew) + self.log_debug("Waiting %d seconds for a new passport" % renew) self.retry(wait_time=renew, reason=_("Passport renewal")) #: Check traffic left on passport @@ -88,17 +88,17 @@ class MegasharesCom(SimpleHoster): if m is None: self.fail(_("Passport not found")) - self.logInfo(_("Download passport: %s") % m.group(1)) + self.log_info(_("Download passport: %s") % m.group(1)) data_left = float(m.group(2)) * 1024 ** {'B': 0, 'KB': 1, 'MB': 2, 'GB': 3}[m.group(3)] - self.logInfo(_("Data left: %s %s (%d MB needed)") % (m.group(2), m.group(3), self.pyfile.size / 1048576)) + self.log_info(_("Data left: %s %s (%d MB needed)") % (m.group(2), m.group(3), self.pyfile.size / 1048576)) if not data_left: self.retry(wait_time=600, reason=_("Passport renewal")) - self.handleDownload(False) + self.handle_download(False) - def handleDownload(self, premium=False): + def handle_download(self, premium=False): #: Find download link m = re.search(self.LINK_PATTERN % (1 if premium else 2), self.html) msg = _('%s download URL' % ('Premium' if premium else 'Free')) @@ -106,7 +106,7 @@ class MegasharesCom(SimpleHoster): self.error(msg) self.link = m.group(1) - self.logDebug("%s: %s" % (msg, self.link)) + self.log_debug("%s: %s" % (msg, self.link)) getInfo = create_getInfo(MegasharesCom) diff --git a/module/plugins/hoster/MegauploadCom.py b/module/plugins/hoster/MegauploadCom.py index 590819f7f..b2f177dd6 100644 --- a/module/plugins/hoster/MegauploadCom.py +++ b/module/plugins/hoster/MegauploadCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class MegauploadCom(DeadHoster): __name__ = "MegauploadCom" __type__ = "hoster" - __version__ = "0.31" + __version__ = "0.32" __pattern__ = r'http://(?:www\.)?megaupload\.com/\?.*&?(d|v)=\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/MegavideoCom.py b/module/plugins/hoster/MegavideoCom.py index accd079fc..c2051703f 100644 --- a/module/plugins/hoster/MegavideoCom.py +++ b/module/plugins/hoster/MegavideoCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class MegavideoCom(DeadHoster): __name__ = "MegavideoCom" __type__ = "hoster" - __version__ = "0.21" + __version__ = "0.22" __pattern__ = r'http://(?:www\.)?megavideo\.com/\?.*&?(d|v)=\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/MovReelCom.py b/module/plugins/hoster/MovReelCom.py index 2fe5184ae..c7de30841 100644 --- a/module/plugins/hoster/MovReelCom.py +++ b/module/plugins/hoster/MovReelCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class MovReelCom(XFSHoster): __name__ = "MovReelCom" __type__ = "hoster" - __version__ = "1.24" + __version__ = "1.25" __pattern__ = r'http://(?:www\.)?movreel\.com/\w{12}' diff --git a/module/plugins/hoster/MultihostersCom.py b/module/plugins/hoster/MultihostersCom.py index bcd7c6237..97894030d 100644 --- a/module/plugins/hoster/MultihostersCom.py +++ b/module/plugins/hoster/MultihostersCom.py @@ -6,7 +6,7 @@ from module.plugins.hoster.ZeveraCom import ZeveraCom class MultihostersCom(ZeveraCom): __name__ = "MultihostersCom" __type__ = "hoster" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'https?://(?:www\.)multihosters\.com/(getFiles\.ashx|Members/download\.ashx)\?.*ourl=.+' diff --git a/module/plugins/hoster/MultishareCz.py b/module/plugins/hoster/MultishareCz.py index 2a5031f08..1f6ed4334 100644 --- a/module/plugins/hoster/MultishareCz.py +++ b/module/plugins/hoster/MultishareCz.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class MultishareCz(SimpleHoster): __name__ = "MultishareCz" __type__ = "hoster" - __version__ = "0.40" + __version__ = "0.41" __pattern__ = r'http://(?:www\.)?multishare\.cz/stahnout/(?P<ID>\d+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -28,20 +28,20 @@ class MultishareCz(SimpleHoster): OFFLINE_PATTERN = ur'<h1>Stáhnout soubor</h1><p><strong>PoÅŸadovanÃœ soubor neexistuje.</strong></p>' - def handleFree(self, pyfile): + def handle_free(self, pyfile): self.download("http://www.multishare.cz/html/download_free.php", get={'ID': self.info['pattern']['ID']}) - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): self.download("http://www.multishare.cz/html/download_premium.php", get={'ID': self.info['pattern']['ID']}) - def handleMulti(self, pyfile): + def handle_multi(self, pyfile): self.html = self.load('http://www.multishare.cz/html/mms_ajax.php', post={"link": pyfile.url}) - self.checkInfo() + self.check_info() - if not self.checkTrafficLeft(): + if not self.check_traffic_left(): self.fail(_("Not enough credit left to download file")) self.download("http://dl%d.mms.multishare.cz/html/mms_process.php" % round(random.random() * 10000 * random.random()), diff --git a/module/plugins/hoster/MyfastfileCom.py b/module/plugins/hoster/MyfastfileCom.py index 1211a532f..f68bfab18 100644 --- a/module/plugins/hoster/MyfastfileCom.py +++ b/module/plugins/hoster/MyfastfileCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo class MyfastfileCom(MultiHoster): __name__ = "MyfastfileCom" __type__ = "hoster" - __version__ = "0.09" + __version__ = "0.10" __pattern__ = r'http://\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/dl/' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -21,14 +21,14 @@ class MyfastfileCom(MultiHoster): def setup(self): - self.chunkLimit = -1 + self.chunk_limit = -1 - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): self.html = self.load('http://myfastfile.com/api.php', get={'user': self.user, 'pass': self.account.getAccountData(self.user)['password'], 'link': pyfile.url}) - self.logDebug("JSON data: " + self.html) + self.log_debug("JSON data: " + self.html) self.html = json_loads(self.html) if self.html['status'] != 'ok': diff --git a/module/plugins/hoster/MystoreTo.py b/module/plugins/hoster/MystoreTo.py index 531368134..1609abf7e 100644 --- a/module/plugins/hoster/MystoreTo.py +++ b/module/plugins/hoster/MystoreTo.py @@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class MystoreTo(SimpleHoster): __name__ = "MystoreTo" __type__ = "hoster" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'https?://(?:www\.)?mystore\.to/dl/.+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -27,12 +27,12 @@ class MystoreTo(SimpleHoster): def setup(self): - self.chunkLimit = 1 - self.resumeDownload = True - self.multiDL = True + self.chunk_limit = 1 + self.resume_download = True + self.multi_dl = True - def handleFree(self, pyfile): + def handle_free(self, pyfile): try: fid = re.search(r'wert="(.+?)"', self.html).group(1) diff --git a/module/plugins/hoster/MyvideoDe.py b/module/plugins/hoster/MyvideoDe.py index 2194069f5..ce43c0764 100644 --- a/module/plugins/hoster/MyvideoDe.py +++ b/module/plugins/hoster/MyvideoDe.py @@ -9,7 +9,7 @@ from module.utils import html_unescape class MyvideoDe(Hoster): __name__ = "MyvideoDe" __type__ = "hoster" - __version__ = "0.91" + __version__ = "0.92" __pattern__ = r'http://(?:www\.)?myvideo\.de/watch/' diff --git a/module/plugins/hoster/NahrajCz.py b/module/plugins/hoster/NahrajCz.py index cf708be09..c463fbcfb 100644 --- a/module/plugins/hoster/NahrajCz.py +++ b/module/plugins/hoster/NahrajCz.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class NahrajCz(DeadHoster): __name__ = "NahrajCz" __type__ = "hoster" - __version__ = "0.21" + __version__ = "0.22" __pattern__ = r'http://(?:www\.)?nahraj\.cz/content/download/.+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/NarodRu.py b/module/plugins/hoster/NarodRu.py index 0a44cd6eb..3c3b0d124 100644 --- a/module/plugins/hoster/NarodRu.py +++ b/module/plugins/hoster/NarodRu.py @@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class NarodRu(SimpleHoster): __name__ = "NarodRu" __type__ = "hoster" - __version__ = "0.12" + __version__ = "0.13" __pattern__ = r'http://(?:www\.)?narod(\.yandex)?\.ru/(disk|start/\d+\.\w+-narod\.yandex\.ru)/(?P<ID>\d+)/.+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -32,7 +32,7 @@ class NarodRu(SimpleHoster): LINK_FREE_PATTERN = r'<a class="h-link" rel="yandex_bar" href="(.+?)">' - def handleFree(self, pyfile): + def handle_free(self, pyfile): for _i in xrange(5): self.html = self.load('http://narod.ru/disk/getcapchaxml/?rnd=%d' % int(random.random() * 777)) @@ -42,18 +42,18 @@ class NarodRu(SimpleHoster): post_data = {"action": "sendcapcha"} captcha_url, post_data['key'] = m.groups() - post_data['rep'] = self.decryptCaptcha(captcha_url) + post_data['rep'] = self.decrypt_captcha(captcha_url) self.html = self.load(pyfile.url, post=post_data) m = re.search(self.LINK_FREE_PATTERN, self.html) if m: self.link = urlparse.urljoin("http://narod.ru", m.group(1)) - self.correctCaptcha() + self.correct_captcha() break elif u'<b class="error-msg"><strong>ÐÑОблОÑÑ?</strong>' in self.html: - self.invalidCaptcha() + self.invalid_captcha() else: self.error(_("Download link")) diff --git a/module/plugins/hoster/NetloadIn.py b/module/plugins/hoster/NetloadIn.py index 82f5c22fb..208b8fb6a 100644 --- a/module/plugins/hoster/NetloadIn.py +++ b/module/plugins/hoster/NetloadIn.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class NetloadIn(DeadHoster): __name__ = "NetloadIn" __type__ = "hoster" - __version__ = "0.50" + __version__ = "0.51" __pattern__ = r'https?://(?:www\.)?netload\.(in|me)/(?P<PATH>datei|index\.php\?id=10&file_id=)(?P<ID>\w+)' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/NitroflareCom.py b/module/plugins/hoster/NitroflareCom.py index efd54dd62..f60a9c2e2 100644 --- a/module/plugins/hoster/NitroflareCom.py +++ b/module/plugins/hoster/NitroflareCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster class NitroflareCom(SimpleHoster): __name__ = "NitroflareCom" __type__ = "hoster" - __version__ = "0.14" + __version__ = "0.15" __pattern__ = r'https?://(?:www\.)?nitroflare\.com/view/(?P<ID>[\w^_]+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -31,7 +31,7 @@ class NitroflareCom(SimpleHoster): # ERROR_PATTERN = r'downloading is not possible' - def handleFree(self, pyfile): + def handle_free(self, pyfile): #: used here to load the cookies which will be required later self.load(pyfile.url, post={'goToFreePage': ""}) @@ -39,7 +39,7 @@ class NitroflareCom(SimpleHoster): self.html = self.load("http://nitroflare.com/ajax/freeDownload.php", post={'method': "startTimer", 'fileId': self.info['pattern']['ID']}) - self.checkErrors() + self.check_errors() try: js_file = self.load("http://nitroflare.com/js/downloadFree.js?v=1.0.1") @@ -59,4 +59,4 @@ class NitroflareCom(SimpleHoster): 'recaptcha_challenge_field': challenge, 'recaptcha_response_field' : response}) - return super(NitroflareCom, self).handleFree(pyfile) + return super(NitroflareCom, self).handle_free(pyfile) diff --git a/module/plugins/hoster/NoPremiumPl.py b/module/plugins/hoster/NoPremiumPl.py index e300194a6..9e935cd08 100644 --- a/module/plugins/hoster/NoPremiumPl.py +++ b/module/plugins/hoster/NoPremiumPl.py @@ -7,7 +7,7 @@ from module.plugins.internal.MultiHoster import MultiHoster class NoPremiumPl(MultiHoster): __name__ = "NoPremiumPl" __type__ = "hoster" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'https?://direct\.nopremium\.pl.+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -44,7 +44,7 @@ class NoPremiumPl(MultiHoster): self.pwd = data['pwd'] - def runFileQuery(self, url, mode=None): + def run_file_query(self, url, mode=None): query = self.API_QUERY.copy() query['username'] = self.usr @@ -55,27 +55,27 @@ class NoPremiumPl(MultiHoster): query['check'] = 2 query['loc'] = 1 - self.logDebug(query) + self.log_debug(query) return self.load(self.API_URL, post=query) - def handleFree(self, pyfile): + def handle_free(self, pyfile): try: - data = self.runFileQuery(pyfile.url, 'fileinfo') + data = self.run_file_query(pyfile.url, 'fileinfo') except Exception: - self.logDebug("runFileQuery error") - self.tempOffline() + self.log_debug("runFileQuery error") + self.temp_offline() try: parsed = json_loads(data) except Exception: - self.logDebug("loads error") - self.tempOffline() + self.log_debug("loads error") + self.temp_offline() - self.logDebug(parsed) + self.log_debug(parsed) if "errno" in parsed.keys(): if parsed['errno'] in self.ERROR_CODES: @@ -98,8 +98,8 @@ class NoPremiumPl(MultiHoster): pyfile.size = parsed['filesize'] try: - self.link = self.runFileQuery(pyfile.url, 'filedownload') + self.link = self.run_file_query(pyfile.url, 'filedownload') except Exception: - self.logDebug("runFileQuery error #2") - self.tempOffline() + self.log_debug("runFileQuery error #2") + self.temp_offline() diff --git a/module/plugins/hoster/NosuploadCom.py b/module/plugins/hoster/NosuploadCom.py index 4f3f34ddb..922fd7654 100644 --- a/module/plugins/hoster/NosuploadCom.py +++ b/module/plugins/hoster/NosuploadCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class NosuploadCom(XFSHoster): __name__ = "NosuploadCom" __type__ = "hoster" - __version__ = "0.31" + __version__ = "0.32" __pattern__ = r'http://(?:www\.)?nosupload\.com/\?d=\w{12}' @@ -23,15 +23,15 @@ class NosuploadCom(XFSHoster): WAIT_PATTERN = r'Please wait.*?>(\d+)</span>' - def getDownloadLink(self): + def get_download_link(self): #: stage1: press the "Free Download" button - data = self.getPostParameters() + data = self.get_post_parameters() self.html = self.load(self.pyfile.url, post=data) #: stage2: wait some time and press the "Download File" button - data = self.getPostParameters() + data = self.get_post_parameters() wait_time = re.search(self.WAIT_PATTERN, self.html, re.M | re.S).group(1) - self.logDebug("Hoster told us to wait %s seconds" % wait_time) + self.log_debug("Hoster told us to wait %s seconds" % wait_time) self.wait(wait_time) self.html = self.load(self.pyfile.url, post=data) diff --git a/module/plugins/hoster/NovafileCom.py b/module/plugins/hoster/NovafileCom.py index b00f71635..8de511ed5 100644 --- a/module/plugins/hoster/NovafileCom.py +++ b/module/plugins/hoster/NovafileCom.py @@ -10,7 +10,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class NovafileCom(XFSHoster): __name__ = "NovafileCom" __type__ = "hoster" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'http://(?:www\.)?novafile\.com/\w{12}' diff --git a/module/plugins/hoster/NowDownloadSx.py b/module/plugins/hoster/NowDownloadSx.py index 7be699ae4..ef43c7c94 100644 --- a/module/plugins/hoster/NowDownloadSx.py +++ b/module/plugins/hoster/NowDownloadSx.py @@ -9,7 +9,7 @@ from module.utils import fixup class NowDownloadSx(SimpleHoster): __name__ = "NowDownloadSx" __type__ = "hoster" - __version__ = "0.10" + __version__ = "0.11" __pattern__ = r'http://(?:www\.)?(nowdownload\.[a-zA-Z]{2,}/(dl/|download\.php.+?id=|mobile/(#/files/|.+?id=))|likeupload\.org/)\w+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -32,12 +32,12 @@ class NowDownloadSx(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = True - self.chunkLimit = -1 + self.resume_download = True + self.multi_dl = True + self.chunk_limit = -1 - def handleFree(self, pyfile): + def handle_free(self, pyfile): tokenlink = re.search(self.TOKEN_PATTERN, self.html) continuelink = re.search(self.CONTINUE_PATTERN, self.html) if tokenlink is None or continuelink is None: diff --git a/module/plugins/hoster/NowVideoSx.py b/module/plugins/hoster/NowVideoSx.py index 477379597..849a35edd 100644 --- a/module/plugins/hoster/NowVideoSx.py +++ b/module/plugins/hoster/NowVideoSx.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class NowVideoSx(SimpleHoster): __name__ = "NowVideoSx" __type__ = "hoster" - __version__ = "0.12" + __version__ = "0.13" __pattern__ = r'http://(?:www\.)?nowvideo\.[a-zA-Z]{2,}/(video/|mobile/(#/videos/|.+?id=))(?P<ID>\w+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -28,11 +28,11 @@ class NowVideoSx(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = True + self.resume_download = True + self.multi_dl = True - def handleFree(self, pyfile): + def handle_free(self, pyfile): self.html = self.load("http://www.nowvideo.sx/mobile/video.php", get={'id': self.info['pattern']['ID']}) m = re.search(self.LINK_FREE_PATTERN, self.html) diff --git a/module/plugins/hoster/OboomCom.py b/module/plugins/hoster/OboomCom.py index 4f845394a..fb42243c5 100644 --- a/module/plugins/hoster/OboomCom.py +++ b/module/plugins/hoster/OboomCom.py @@ -13,7 +13,7 @@ from module.plugins.internal.ReCaptcha import ReCaptcha class OboomCom(Hoster): __name__ = "OboomCom" __type__ = "hoster" - __version__ = "0.34" + __version__ = "0.35" __pattern__ = r'https?://(?:www\.)?oboom\.com/(?:#(?:id=|/)?)?(?P<ID>\w{8})' @@ -26,52 +26,52 @@ class OboomCom(Hoster): def setup(self): - self.chunkLimit = 1 - self.multiDL = self.resumeDownload = self.premium + self.chunk_limit = 1 + self.multi_dl = self.resume_download = self.premium def process(self, pyfile): self.pyfile.url.replace(".com/#id=", ".com/#") self.pyfile.url.replace(".com/#/", ".com/#") self.html = self.load(pyfile.url) - self.getFileId(self.pyfile.url) - self.getSessionToken() - self.getFileInfo(self.sessionToken, self.fileId) - self.pyfile.name = self.fileName - self.pyfile.size = self.fileSize + self.get_file_id(self.pyfile.url) + self.get_session_token() + self.getFileInfo(self.session_token, self.file_id) + self.pyfile.name = self.file_name + self.pyfile.size = self.file_size if not self.premium: - self.solveCaptcha() - self.getDownloadTicket() - self.download("https://%s/1.0/dlh" % self.downloadDomain, get={"ticket": self.downloadTicket, "http_errors": 0}) + self.solve_captcha() + self.get_download_ticket() + self.download("https://%s/1.0/dlh" % self.download_domain, get={"ticket": self.download_ticket, "http_errors": 0}) - def loadUrl(self, url, get=None): + def load_url(self, url, get=None): if get is None: get = dict() return json_loads(self.load(url, get)) - def getFileId(self, url): - self.fileId = re.match(OboomCom.__pattern__, url).group('ID') + def get_file_id(self, url): + self.file_id = re.match(OboomCom.__pattern__, url).group('ID') - def getSessionToken(self): + def get_session_token(self): if self.premium: accountInfo = self.account.getAccountInfo(self.user, True) if "session" in accountInfo: - self.sessionToken = accountInfo['session'] + self.session_token = accountInfo['session'] else: self.fail(_("Could not retrieve premium session")) else: apiUrl = "https://www.oboom.com/1.0/guestsession" - result = self.loadUrl(apiUrl) + result = self.load_url(apiUrl) if result[0] == 200: - self.sessionToken = result[1] + self.session_token = result[1] else: self.fail(_("Could not retrieve token for guest session. Error code: %s") % result[0]) - def solveCaptcha(self): + def solve_captcha(self): recaptcha = ReCaptcha(self) for _i in xrange(5): @@ -79,35 +79,35 @@ class OboomCom(Hoster): apiUrl = "https://www.oboom.com/1.0/download/ticket" params = {"recaptcha_challenge_field": challenge, "recaptcha_response_field": response, - "download_id": self.fileId, - "token": self.sessionToken} - result = self.loadUrl(apiUrl, params) + "download_id": self.file_id, + "token": self.session_token} + result = self.load_url(apiUrl, params) if result[0] == 200: - self.downloadToken = result[1] - self.downloadAuth = result[2] - self.correctCaptcha() - self.setWait(30) + self.download_token = result[1] + self.download_auth = result[2] + self.correct_captcha() + self.set_wait(30) self.wait() break elif result[0] == 400: if result[1] == "incorrect-captcha-sol": - self.invalidCaptcha() + self.invalid_captcha() elif result[1] == "captcha-timeout": - self.invalidCaptcha() + self.invalid_captcha() elif result[1] == "forbidden": self.retry(5, 15 * 60, _("Service unavailable")) elif result[0] == 403: if result[1] == -1: #: another download is running - self.setWait(15 * 60) + self.set_wait(15 * 60) else: - self.setWait(result[1], True) + self.set_wait(result[1], True) self.wait() self.retry(5) else: - self.invalidCaptcha() + self.invalid_captcha() self.fail(_("Received invalid captcha 5 times")) @@ -115,31 +115,31 @@ class OboomCom(Hoster): apiUrl = "https://api.oboom.com/1.0/info" params = {"token": token, "items": fileId, "http_errors": 0} - result = self.loadUrl(apiUrl, params) + result = self.load_url(apiUrl, params) if result[0] == 200: item = result[1][0] if item['state'] == "online": - self.fileSize = item['size'] - self.fileName = item['name'] + self.file_size = item['size'] + self.file_name = item['name'] else: self.offline() else: self.fail(_("Could not retrieve file info. Error code %s: %s") % (result[0], result[1])) - def getDownloadTicket(self): + def get_download_ticket(self): apiUrl = "https://api.oboom.com/1/dl" - params = {"item": self.fileId, "http_errors": 0} + params = {"item": self.file_id, "http_errors": 0} if self.premium: - params['token'] = self.sessionToken + params['token'] = self.session_token else: - params['token'] = self.downloadToken - params['auth'] = self.downloadAuth + params['token'] = self.download_token + params['auth'] = self.download_auth - result = self.loadUrl(apiUrl, params) + result = self.load_url(apiUrl, params) if result[0] == 200: - self.downloadDomain = result[1] - self.downloadTicket = result[2] + self.download_domain = result[1] + self.download_ticket = result[2] elif result[0] == 421: self.retry(wait_time=result[2] + 60, reason=_("Connection limit exceeded")) else: diff --git a/module/plugins/hoster/OneFichierCom.py b/module/plugins/hoster/OneFichierCom.py index 4b947c554..5ea400b8d 100644 --- a/module/plugins/hoster/OneFichierCom.py +++ b/module/plugins/hoster/OneFichierCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class OneFichierCom(SimpleHoster): __name__ = "OneFichierCom" __type__ = "hoster" - __version__ = "0.84" + __version__ = "0.85" __pattern__ = r'https?://(?:www\.)?(?:(?P<ID1>\w+)\.)?(?P<HOST>1fichier\.com|alterupload\.com|cjoint\.net|d(es)?fichiers\.com|dl4free\.com|megadl\.fr|mesfichiers\.org|piecejointe\.net|pjointe\.com|tenvoi\.com)(?:/\?(?P<ID2>\w+))?' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -36,26 +36,26 @@ class OneFichierCom(SimpleHoster): def setup(self): - self.multiDL = self.premium - self.resumeDownload = True + self.multi_dl = self.premium + self.resume_download = True - def handleFree(self, pyfile): + def handle_free(self, pyfile): id = self.info['pattern']['ID1'] or self.info['pattern']['ID2'] - url, inputs = self.parseHtmlForm('action="https://1fichier.com/\?%s' % id) + url, inputs = self.parse_html_form('action="https://1fichier.com/\?%s' % id) if not url: self.fail(_("Download link not found")) if "pass" in inputs: - inputs['pass'] = self.getPassword() + inputs['pass'] = self.get_password() inputs['submit'] = "Download" self.download(url, post=inputs) - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): self.download(pyfile.url, post={'dl': "Download", 'did': 0}) diff --git a/module/plugins/hoster/OpenloadIo.py b/module/plugins/hoster/OpenloadIo.py index 5a60b6787..fbdb95383 100644 --- a/module/plugins/hoster/OpenloadIo.py +++ b/module/plugins/hoster/OpenloadIo.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class OpenloadIo(SimpleHoster): __name__ = "OpenloadIo" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'https?://(?:www\.)?openload\.io/f/\w{11}' @@ -20,7 +20,7 @@ class OpenloadIo(SimpleHoster): LINK_FREE_PATTERN = r'id="realdownload"><a href="(https?://[\w\.]+\.openload\.io/dl/.*?)"' def setup(self): - self.multiDL = True - self.chunkLimit = 1 + self.multi_dl = True + self.chunk_limit = 1 getInfo = create_getInfo(OpenloadIo) diff --git a/module/plugins/hoster/OronCom.py b/module/plugins/hoster/OronCom.py index 2e4961704..b3527e439 100644 --- a/module/plugins/hoster/OronCom.py +++ b/module/plugins/hoster/OronCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class OronCom(DeadHoster): __name__ = "OronCom" __type__ = "hoster" - __version__ = "0.14" + __version__ = "0.15" __pattern__ = r'https?://(?:www\.)?oron\.com/\w{12}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/OverLoadMe.py b/module/plugins/hoster/OverLoadMe.py index 944d4c664..ab0440a2e 100644 --- a/module/plugins/hoster/OverLoadMe.py +++ b/module/plugins/hoster/OverLoadMe.py @@ -11,7 +11,7 @@ from module.utils import parseFileSize class OverLoadMe(MultiHoster): __name__ = "OverLoadMe" __type__ = "hoster" - __version__ = "0.12" + __version__ = "0.13" __pattern__ = r'https?://.*overload\.me/.+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -23,10 +23,10 @@ class OverLoadMe(MultiHoster): def setup(self): - self.chunkLimit = 5 + self.chunk_limit = 5 - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): data = self.account.getAccountData(self.user) page = self.load("https://api.over-load.me/getdownload.php", get={'auth': data['password'], @@ -34,11 +34,11 @@ class OverLoadMe(MultiHoster): data = json_loads(page) - self.logDebug(data) + self.log_debug(data) if data['error'] == 1: - self.logWarning(data['msg']) - self.tempOffline() + self.log_warning(data['msg']) + self.temp_offline() else: self.link = data['downloadlink'] if pyfile.name and pyfile.name.endswith('.tmp') and data['filename']: diff --git a/module/plugins/hoster/PandaplaNet.py b/module/plugins/hoster/PandaplaNet.py index ae8406d82..3f088081e 100644 --- a/module/plugins/hoster/PandaplaNet.py +++ b/module/plugins/hoster/PandaplaNet.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class PandaplaNet(DeadHoster): __name__ = "PandaplaNet" __type__ = "hoster" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?pandapla\.net/\w{12}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/PornhostCom.py b/module/plugins/hoster/PornhostCom.py index 708abf40a..cf3d39f29 100644 --- a/module/plugins/hoster/PornhostCom.py +++ b/module/plugins/hoster/PornhostCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.Hoster import Hoster class PornhostCom(Hoster): __name__ = "PornhostCom" __type__ = "hoster" - __version__ = "0.21" + __version__ = "0.22" __pattern__ = r'http://(?:www\.)?pornhost\.com/(\d+/\d+\.html|\d+)' diff --git a/module/plugins/hoster/PornhubCom.py b/module/plugins/hoster/PornhubCom.py index 92119df56..ad0eebb28 100644 --- a/module/plugins/hoster/PornhubCom.py +++ b/module/plugins/hoster/PornhubCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.Hoster import Hoster class PornhubCom(Hoster): __name__ = "PornhubCom" __type__ = "hoster" - __version__ = "0.51" + __version__ = "0.52" __pattern__ = r'http://(?:www\.)?pornhub\.com/view_video\.php\?viewkey=\w+' diff --git a/module/plugins/hoster/PotloadCom.py b/module/plugins/hoster/PotloadCom.py index 5a41f7d3c..654ae8e1b 100644 --- a/module/plugins/hoster/PotloadCom.py +++ b/module/plugins/hoster/PotloadCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class PotloadCom(DeadHoster): __name__ = "PotloadCom" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'http://(?:www\.)?potload\.com/\w{12}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/PremiumTo.py b/module/plugins/hoster/PremiumTo.py index 082f17474..aeeef2847 100644 --- a/module/plugins/hoster/PremiumTo.py +++ b/module/plugins/hoster/PremiumTo.py @@ -11,7 +11,7 @@ from module.utils import fs_encode class PremiumTo(MultiHoster): __name__ = "PremiumTo" __type__ = "hoster" - __version__ = "0.24" + __version__ = "0.25" __pattern__ = r'^unmatchable$' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -27,8 +27,8 @@ class PremiumTo(MultiHoster): CHECK_TRAFFIC = True - def handlePremium(self, pyfile): - #raise timeout to 2min + def handle_premium(self, pyfile): + # raise timeout to 2min self.download("http://premium.to/api/getfile.php", get={'username': self.account.username, 'password': self.account.password, @@ -36,14 +36,14 @@ class PremiumTo(MultiHoster): disposition=True) - def checkFile(self): - if self.checkDownload({'nopremium': "No premium account available"}): + def check_file(self): + if self.check_download({'nopremium': "No premium account available"}): self.retry(60, 5 * 60, "No premium account available") err = '' if self.req.http.code == '420': #: Custom error code send - fail - file = fs_encode(self.lastDownload) + file = fs_encode(self.last_download) with open(file, "rb") as f: err = f.read(256).strip() os.remove(file) diff --git a/module/plugins/hoster/PremiumizeMe.py b/module/plugins/hoster/PremiumizeMe.py index bfd78853b..e87742839 100644 --- a/module/plugins/hoster/PremiumizeMe.py +++ b/module/plugins/hoster/PremiumizeMe.py @@ -7,7 +7,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo class PremiumizeMe(MultiHoster): __name__ = "PremiumizeMe" __type__ = "hoster" - __version__ = "0.18" + __version__ = "0.19" __pattern__ = r'^unmatchable$' #: Since we want to allow the user to specify the list of hoster to use we let MultiHoster.coreReady __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -18,7 +18,7 @@ class PremiumizeMe(MultiHoster): __authors__ = [("Florian Franzen", "FlorianFranzen@gmail.com")] - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): #: In some cases hostsers do not supply us with a filename at download, so we #: are going to set a fall back filename (e.g. for freakshare or xfileshare) pyfile.name = pyfile.name.split('/').pop() #: Remove everthing before last slash @@ -53,7 +53,7 @@ class PremiumizeMe(MultiHoster): self.offline() elif status >= 500: - self.tempOffline() + self.temp_offline() else: self.fail(data['statusmessage']) diff --git a/module/plugins/hoster/PromptfileCom.py b/module/plugins/hoster/PromptfileCom.py index c6878cbb0..ddfce8e19 100644 --- a/module/plugins/hoster/PromptfileCom.py +++ b/module/plugins/hoster/PromptfileCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class PromptfileCom(SimpleHoster): __name__ = "PromptfileCom" __type__ = "hoster" - __version__ = "0.13" + __version__ = "0.14" __pattern__ = r'https?://(?:www\.)?promptfile\.com/' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -25,20 +25,20 @@ class PromptfileCom(SimpleHoster): LINK_FREE_PATTERN = r'<a href=\"(.+)\" target=\"_blank\" class=\"view_dl_link\">Download File</a>' - def handleFree(self, pyfile): + def handle_free(self, pyfile): # STAGE 1: get link to continue m = re.search(self.CHASH_PATTERN, self.html) if m is None: self.error(_("CHASH_PATTERN not found")) chash = m.group(1) - self.logDebug("Read chash %s" % chash) + self.log_debug("Read chash %s" % chash) #: continue to stage2 self.html = self.load(pyfile.url, post={'chash': chash}) # STAGE 2: get the direct link - return super(PromptfileCom, self).handleFree(pyfile) + return super(PromptfileCom, self).handle_free(pyfile) getInfo = create_getInfo(PromptfileCom) diff --git a/module/plugins/hoster/PrzeklejPl.py b/module/plugins/hoster/PrzeklejPl.py index e984d0033..591428757 100644 --- a/module/plugins/hoster/PrzeklejPl.py +++ b/module/plugins/hoster/PrzeklejPl.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class PrzeklejPl(DeadHoster): __name__ = "PrzeklejPl" __type__ = "hoster" - __version__ = "0.11" + __version__ = "0.12" __pattern__ = r'http://(?:www\.)?przeklej\.pl/plik/.+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/PutdriveCom.py b/module/plugins/hoster/PutdriveCom.py index 7f4b7b6cc..a04b43cdb 100644 --- a/module/plugins/hoster/PutdriveCom.py +++ b/module/plugins/hoster/PutdriveCom.py @@ -6,7 +6,7 @@ from module.plugins.hoster.ZeveraCom import ZeveraCom class PutdriveCom(ZeveraCom): __name__ = "PutdriveCom" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'https?://(?:www\.)putdrive\.com/(getFiles\.ashx|Members/download\.ashx)\?.*ourl=.+' diff --git a/module/plugins/hoster/QuickshareCz.py b/module/plugins/hoster/QuickshareCz.py index 26bb1e2df..e9cfdb085 100644 --- a/module/plugins/hoster/QuickshareCz.py +++ b/module/plugins/hoster/QuickshareCz.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class QuickshareCz(SimpleHoster): __name__ = "QuickshareCz" __type__ = "hoster" - __version__ = "0.56" + __version__ = "0.57" __pattern__ = r'http://(?:[^/]*\.)?quickshare\.cz/stahnout-soubor/.+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -30,34 +30,34 @@ class QuickshareCz(SimpleHoster): #: parse js variables self.jsvars = dict((x, y.strip("'")) for x, y in re.findall(r"var (\w+) = ([\d.]+|'.+?')", self.html)) - self.logDebug(self.jsvars) + self.log_debug(self.jsvars) pyfile.name = self.jsvars['ID3'] #: determine download type - free or premium if self.premium: if 'UU_prihlasen' in self.jsvars: if self.jsvars['UU_prihlasen'] == '0': - self.logWarning(_("User not logged in")) + self.log_warning(_("User not logged in")) self.relogin(self.user) self.retry() elif float(self.jsvars['UU_kredit']) < float(self.jsvars['kredit_odecet']): - self.logWarning(_("Not enough credit left")) + self.log_warning(_("Not enough credit left")) self.premium = False if self.premium: - self.handlePremium(pyfile) + self.handle_premium(pyfile) else: - self.handleFree(pyfile) + self.handle_free(pyfile) - if self.checkDownload({"error": re.compile(r"\AChyba!")}, max_size=100): + if self.check_download({"error": re.compile(r"\AChyba!")}, max_size=100): self.fail(_("File not m or plugin defect")) - def handleFree(self, pyfile): + def handle_free(self, pyfile): #: get download url download_url = '%s/download.php' % self.jsvars['server'] data = dict((x, self.jsvars[x]) for x in self.jsvars if x in ("ID1", "ID2", "ID3", "ID4")) - self.logDebug("FREE URL1:" + download_url, data) + self.log_debug("FREE URL1:" + download_url, data) self.req.http.c.setopt(pycurl.FOLLOWLOCATION, 0) self.load(download_url, post=data) @@ -69,7 +69,7 @@ class QuickshareCz(SimpleHoster): self.fail(_("File not found")) self.link = m.group(1).rstrip() #@TODO: Remove .rstrip() in 0.4.10 - self.logDebug("FREE URL2:" + self.link) + self.log_debug("FREE URL2:" + self.link) #: check errors m = re.search(r'/chyba/(\d+)', self.link) @@ -82,7 +82,7 @@ class QuickshareCz(SimpleHoster): self.fail(_("Error %d") % m.group(1)) - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): download_url = '%s/download_premium.php' % self.jsvars['server'] data = dict((x, self.jsvars[x]) for x in self.jsvars if x in ("ID1", "ID2", "ID4", "ID5")) self.download(download_url, get=data) diff --git a/module/plugins/hoster/RPNetBiz.py b/module/plugins/hoster/RPNetBiz.py index 2e6271ac6..a548e1670 100644 --- a/module/plugins/hoster/RPNetBiz.py +++ b/module/plugins/hoster/RPNetBiz.py @@ -9,7 +9,7 @@ from module.common.json_layer import json_loads class RPNetBiz(MultiHoster): __name__ = "RPNetBiz" __type__ = "hoster" - __version__ = "0.15" + __version__ = "0.16" __pattern__ = r'https?://.+rpnet\.biz' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -21,10 +21,10 @@ class RPNetBiz(MultiHoster): def setup(self): - self.chunkLimit = -1 + self.chunk_limit = -1 - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): user, data = self.account.selectAccount() #: Get the download link @@ -34,36 +34,36 @@ class RPNetBiz(MultiHoster): "action" : "generate", "links" : pyfile.url}) - self.logDebug("JSON data: %s" % res) + self.log_debug("JSON data: %s" % res) link_status = json_loads(res)['links'][0] #: get the first link... since we only queried one #: Check if we only have an id as a HDD link if 'id' in link_status: - self.logDebug("Need to wait at least 30 seconds before requery") - self.setWait(30) #: wait for 30 seconds + self.log_debug("Need to wait at least 30 seconds before requery") + self.set_wait(30) #: wait for 30 seconds self.wait() #: Lets query the server again asking for the status on the link, #: we need to keep doing this until we reach 100 max_tries = 30 my_try = 0 while (my_try <= max_tries): - self.logDebug("Try: %d ; Max Tries: %d" % (my_try, max_tries)) + self.log_debug("Try: %d ; Max Tries: %d" % (my_try, max_tries)) res = self.load("https://premium.rpnet.biz/client_api.php", get={"username": user, "password": data['password'], "action": "downloadInformation", "id": link_status['id']}) - self.logDebug("JSON data hdd query: %s" % res) + self.log_debug("JSON data hdd query: %s" % res) download_status = json_loads(res)['download'] if download_status['status'] == '100': link_status['generated'] = download_status['rpnet_link'] - self.logDebug("Successfully downloaded to rpnet HDD: %s" % link_status['generated']) + self.log_debug("Successfully downloaded to rpnet HDD: %s" % link_status['generated']) break else: - self.logDebug("At %s%% for the file download" % download_status['status']) + self.log_debug("At %s%% for the file download" % download_status['status']) - self.setWait(30) + self.set_wait(30) self.wait() my_try += 1 diff --git a/module/plugins/hoster/RapideoPl.py b/module/plugins/hoster/RapideoPl.py index dc6e9253e..a9a0b354a 100644 --- a/module/plugins/hoster/RapideoPl.py +++ b/module/plugins/hoster/RapideoPl.py @@ -7,7 +7,7 @@ from module.plugins.internal.MultiHoster import MultiHoster class RapideoPl(MultiHoster): __name__ = "RapideoPl" __type__ = "hoster" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'^unmatchable$' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -44,7 +44,7 @@ class RapideoPl(MultiHoster): self.pwd = data['pwd'] - def runFileQuery(self, url, mode=None): + def run_file_query(self, url, mode=None): query = self.API_QUERY.copy() query['username'] = self.usr @@ -55,27 +55,27 @@ class RapideoPl(MultiHoster): query['check'] = 2 query['loc'] = 1 - self.logDebug(query) + self.log_debug(query) return self.load(self.API_URL, post=query) - def handleFree(self, pyfile): + def handle_free(self, pyfile): try: - data = self.runFileQuery(pyfile.url, 'fileinfo') + data = self.run_file_query(pyfile.url, 'fileinfo') except Exception: - self.logDebug("RunFileQuery error") - self.tempOffline() + self.log_debug("RunFileQuery error") + self.temp_offline() try: parsed = json_loads(data) except Exception: - self.logDebug("Loads error") - self.tempOffline() + self.log_debug("Loads error") + self.temp_offline() - self.logDebug(parsed) + self.log_debug(parsed) if "errno" in parsed.keys(): if parsed['errno'] in self.ERROR_CODES: @@ -98,8 +98,8 @@ class RapideoPl(MultiHoster): pyfile.size = parsed['filesize'] try: - self.link = self.runFileQuery(pyfile.url, 'filedownload') + self.link = self.run_file_query(pyfile.url, 'filedownload') except Exception: - self.logDebug("runFileQuery error #2") - self.tempOffline() + self.log_debug("runFileQuery error #2") + self.temp_offline() diff --git a/module/plugins/hoster/RapidfileshareNet.py b/module/plugins/hoster/RapidfileshareNet.py index 0bbaed57f..b10cf9aff 100644 --- a/module/plugins/hoster/RapidfileshareNet.py +++ b/module/plugins/hoster/RapidfileshareNet.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class RapidfileshareNet(XFSHoster): __name__ = "RapidfileshareNet" __type__ = "hoster" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?rapidfileshare\.net/\w{12}' diff --git a/module/plugins/hoster/RapidgatorNet.py b/module/plugins/hoster/RapidgatorNet.py index e5298726c..b2962af10 100644 --- a/module/plugins/hoster/RapidgatorNet.py +++ b/module/plugins/hoster/RapidgatorNet.py @@ -14,7 +14,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class RapidgatorNet(SimpleHoster): __name__ = "RapidgatorNet" __type__ = "hoster" - __version__ = "0.34" + __version__ = "0.35" __pattern__ = r'http://(?:www\.)?(rapidgator\.net|rg\.to)/file/\w+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -57,8 +57,8 @@ class RapidgatorNet(SimpleHoster): if self.sid: self.premium = True - self.resumeDownload = self.multiDL = self.premium - self.chunkLimit = 1 + self.resume_download = self.multi_dl = self.premium + self.chunk_limit = 1 def api_response(self, cmd): @@ -66,13 +66,13 @@ class RapidgatorNet(SimpleHoster): json = self.load('%s/%s' % (self.API_URL, cmd), get={'sid': self.sid, 'url': self.pyfile.url}) - self.logDebug("API:%s" % cmd, json, "SID: %s" % self.sid) + self.log_debug("API:%s" % cmd, json, "SID: %s" % self.sid) json = json_loads(json) status = json['response_status'] msg = json['response_details'] except BadHeader, e: - self.logError("API: %s" % cmd, e, "SID: %s" % self.sid) + self.log_error("API: %s" % cmd, e, "SID: %s" % self.sid) status = e.code msg = e @@ -88,7 +88,7 @@ class RapidgatorNet(SimpleHoster): self.retry(wait_time=60) - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): self.api_data = self.api_response('info') self.api_data['md5'] = self.api_data['hash'] @@ -98,22 +98,22 @@ class RapidgatorNet(SimpleHoster): self.link = self.api_response('download')['url'] - def handleFree(self, pyfile): + def handle_free(self, pyfile): jsvars = dict(re.findall(self.JSVARS_PATTERN, self.html)) - self.logDebug(jsvars) + self.log_debug(jsvars) self.req.http.lastURL = pyfile.url self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With: XMLHttpRequest"]) url = "http://rapidgator.net%s?fid=%s" % ( jsvars.get('startTimerUrl', '/download/AjaxStartTimer'), jsvars['fid']) - jsvars.update(self.getJsonResponse(url)) + jsvars.update(self.get_json_response(url)) self.wait(jsvars.get('secs', 45), False) url = "http://rapidgator.net%s?sid=%s" % ( jsvars.get('getDownloadUrl', '/download/AjaxGetDownload'), jsvars['sid']) - jsvars.update(self.getJsonResponse(url)) + jsvars.update(self.get_json_response(url)) self.req.http.lastURL = pyfile.url self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With:"]) @@ -127,7 +127,7 @@ class RapidgatorNet(SimpleHoster): self.link = m.group(1) break else: - captcha = self.handleCaptcha() + captcha = self.handle_captcha() if not captcha: self.error(_("Captcha pattern not found")) @@ -139,25 +139,25 @@ class RapidgatorNet(SimpleHoster): 'adcopy_response' : response}) if "The verification code is incorrect" in self.html: - self.invalidCaptcha() + self.invalid_captcha() else: - self.correctCaptcha() + self.correct_captcha() else: self.error(_("Download link")) - def handleCaptcha(self): + def handle_captcha(self): for klass in (AdsCaptcha, ReCaptcha, SolveMedia): inst = klass(self) if inst.detect_key(): return inst - def getJsonResponse(self, url): + def get_json_response(self, url): res = self.load(url) if not res.startswith('{'): self.retry() - self.logDebug(url, res) + self.log_debug(url, res) return json_loads(res) diff --git a/module/plugins/hoster/RapiduNet.py b/module/plugins/hoster/RapiduNet.py index f2f1abfb7..30e453b93 100644 --- a/module/plugins/hoster/RapiduNet.py +++ b/module/plugins/hoster/RapiduNet.py @@ -12,7 +12,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class RapiduNet(SimpleHoster): __name__ = "RapiduNet" __type__ = "hoster" - __version__ = "0.09" + __version__ = "0.10" __pattern__ = r'https?://(?:www\.)?rapidu\.net/(?P<ID>\d{10})' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -33,22 +33,22 @@ class RapiduNet(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = self.premium + self.resume_download = True + self.multi_dl = self.premium - def handleFree(self, pyfile): + def handle_free(self, pyfile): self.req.http.lastURL = pyfile.url self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With: XMLHttpRequest"]) - jsvars = self.getJsonResponse("https://rapidu.net/ajax.php", + jsvars = self.get_json_response("https://rapidu.net/ajax.php", get={'a': "getLoadTimeToDownload"}, post={'_go': ""}) if str(jsvars['timeToDownload']) is "stop": t = (24 * 60 * 60) - (int(time.time()) % (24 * 60 * 60)) + time.altzone - self.logInfo("You've reach your daily download transfer") + self.log_info("You've reach your daily download transfer") self.retry(10, 10 if t < 1 else None, _("Try tomorrow again")) #@NOTE: check t in case of not synchronised clock @@ -58,7 +58,7 @@ class RapiduNet(SimpleHoster): recaptcha = ReCaptcha(self) response, challenge = recaptcha.challenge(self.RECAPTCHA_KEY) - jsvars = self.getJsonResponse("https://rapidu.net/ajax.php", + jsvars = self.get_json_response("https://rapidu.net/ajax.php", get={'a': "getCheckCaptcha"}, post={'_go' : "", 'captcha1': challenge, @@ -69,12 +69,12 @@ class RapiduNet(SimpleHoster): self.link = jsvars['url'] - def getJsonResponse(self, *args, **kwargs): + def get_json_response(self, *args, **kwargs): res = self.load(*args, **kwargs) if not res.startswith('{'): self.retry() - self.logDebug(res) + self.log_debug(res) return json_loads(res) diff --git a/module/plugins/hoster/RarefileNet.py b/module/plugins/hoster/RarefileNet.py index a45e4ed4d..e3ac29b7d 100644 --- a/module/plugins/hoster/RarefileNet.py +++ b/module/plugins/hoster/RarefileNet.py @@ -8,7 +8,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class RarefileNet(XFSHoster): __name__ = "RarefileNet" __type__ = "hoster" - __version__ = "0.09" + __version__ = "0.10" __pattern__ = r'http://(?:www\.)?rarefile\.net/\w{12}' diff --git a/module/plugins/hoster/RealdebridCom.py b/module/plugins/hoster/RealdebridCom.py index 54cd54008..812598f77 100644 --- a/module/plugins/hoster/RealdebridCom.py +++ b/module/plugins/hoster/RealdebridCom.py @@ -12,7 +12,7 @@ from module.utils import parseFileSize class RealdebridCom(MultiHoster): __name__ = "RealdebridCom" __type__ = "hoster" - __version__ = "0.68" + __version__ = "0.69" __pattern__ = r'https?://((?:www\.|s\d+\.)?real-debrid\.com/dl/|[\w^_]\.rdb\.so/d/)[\w^_]+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -24,24 +24,24 @@ class RealdebridCom(MultiHoster): def setup(self): - self.chunkLimit = 3 + self.chunk_limit = 3 - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): data = json_loads(self.load("https://real-debrid.com/ajax/unrestrict.php", get={'lang' : "en", 'link' : pyfile.url, - 'password': self.getPassword(), + 'password': self.get_password(), 'time' : int(time.time() * 1000)})) - self.logDebug("Returned Data: %s" % data) + self.log_debug("Returned Data: %s" % data) if data['error'] != 0: if data['message'] == "Your file is unavailable on the hoster.": self.offline() else: - self.logWarning(data['message']) - self.tempOffline() + self.log_warning(data['message']) + self.temp_offline() else: if pyfile.name and pyfile.name.endswith('.tmp') and data['file_name']: pyfile.name = data['file_name'] diff --git a/module/plugins/hoster/RedtubeCom.py b/module/plugins/hoster/RedtubeCom.py index 15ce3b2b1..43647b8cf 100644 --- a/module/plugins/hoster/RedtubeCom.py +++ b/module/plugins/hoster/RedtubeCom.py @@ -9,7 +9,7 @@ from module.utils import html_unescape class RedtubeCom(Hoster): __name__ = "RedtubeCom" __type__ = "hoster" - __version__ = "0.21" + __version__ = "0.22" __pattern__ = r'http://(?:www\.)?redtube\.com/\d+' diff --git a/module/plugins/hoster/RehostTo.py b/module/plugins/hoster/RehostTo.py index 54778ef00..f3a011067 100644 --- a/module/plugins/hoster/RehostTo.py +++ b/module/plugins/hoster/RehostTo.py @@ -8,7 +8,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo class RehostTo(MultiHoster): __name__ = "RehostTo" __type__ = "hoster" - __version__ = "0.22" + __version__ = "0.23" __pattern__ = r'https?://.*rehost\.to\..+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -19,7 +19,7 @@ class RehostTo(MultiHoster): __authors__ = [("RaNaN", "RaNaN@pyload.org")] - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): self.download("http://rehost.to/process_download.php", get={'user': "cookie", 'pass': self.account.getAccountInfo(self.user)['session'], diff --git a/module/plugins/hoster/RemixshareCom.py b/module/plugins/hoster/RemixshareCom.py index d60101aed..78b88459b 100644 --- a/module/plugins/hoster/RemixshareCom.py +++ b/module/plugins/hoster/RemixshareCom.py @@ -16,7 +16,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class RemixshareCom(SimpleHoster): __name__ = "RemixshareCom" __type__ = "hoster" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'https?://remixshare\.com/(download|dl)/\w+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -39,11 +39,11 @@ class RemixshareCom(SimpleHoster): def setup(self): - self.multiDL = True - self.chunkLimit = 1 + self.multi_dl = True + self.chunk_limit = 1 - def handleFree(self, pyfile): + def handle_free(self, pyfile): b = re.search(self.LINK_PATTERN, self.html) if not b: self.error(_("File url")) diff --git a/module/plugins/hoster/RgHostNet.py b/module/plugins/hoster/RgHostNet.py index 1a45def44..bc6f4f9ce 100644 --- a/module/plugins/hoster/RgHostNet.py +++ b/module/plugins/hoster/RgHostNet.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class RgHostNet(SimpleHoster): __name__ = "RgHostNet" __type__ = "hoster" - __version__ = "0.04" + __version__ = "0.05" __pattern__ = r'http://(?:www\.)?rghost\.(net|ru)/[\d-]+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] diff --git a/module/plugins/hoster/SafesharingEu.py b/module/plugins/hoster/SafesharingEu.py index 08612e413..cfea37016 100644 --- a/module/plugins/hoster/SafesharingEu.py +++ b/module/plugins/hoster/SafesharingEu.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class SafesharingEu(XFSHoster): __name__ = "SafesharingEu" __type__ = "hoster" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'https?://(?:www\.)?safesharing\.eu/\w{12}' diff --git a/module/plugins/hoster/SecureUploadEu.py b/module/plugins/hoster/SecureUploadEu.py index 6bfbce328..80892932e 100644 --- a/module/plugins/hoster/SecureUploadEu.py +++ b/module/plugins/hoster/SecureUploadEu.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class SecureUploadEu(XFSHoster): __name__ = "SecureUploadEu" __type__ = "hoster" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'https?://(?:www\.)?secureupload\.eu/\w{12}' diff --git a/module/plugins/hoster/SendspaceCom.py b/module/plugins/hoster/SendspaceCom.py index 0ab20949d..e645bb604 100644 --- a/module/plugins/hoster/SendspaceCom.py +++ b/module/plugins/hoster/SendspaceCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class SendspaceCom(SimpleHoster): __name__ = "SendspaceCom" __type__ = "hoster" - __version__ = "0.17" + __version__ = "0.18" __pattern__ = r'https?://(?:www\.)?sendspace\.com/file/\w+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -28,30 +28,30 @@ class SendspaceCom(SimpleHoster): USER_CAPTCHA_PATTERN = r'<td><img src="/captchas/captcha\.php?user=(.+?))"></td>' - def handleFree(self, pyfile): + def handle_free(self, pyfile): params = {} for _i in xrange(3): m = re.search(self.LINK_FREE_PATTERN, self.html) if m: if 'captcha_hash' in params: - self.correctCaptcha() + self.correct_captcha() self.link = m.group(1) break m = re.search(self.CAPTCHA_PATTERN, self.html) if m: if 'captcha_hash' in params: - self.invalidCaptcha() + self.invalid_captcha() captcha_url1 = "http://www.sendspace.com/" + m.group(1) m = re.search(self.USER_CAPTCHA_PATTERN, self.html) captcha_url2 = "http://www.sendspace.com/" + m.group(1) params = {'captcha_hash': m.group(2), 'captcha_submit': 'Verify', - 'captcha_answer': self.decryptCaptcha(captcha_url1) + " " + self.decryptCaptcha(captcha_url2)} + 'captcha_answer': self.decrypt_captcha(captcha_url1) + " " + self.decrypt_captcha(captcha_url2)} else: params = {'download': "Regular Download"} - self.logDebug(params) + self.log_debug(params) self.html = self.load(pyfile.url, post=params) else: self.fail(_("Download link not found")) diff --git a/module/plugins/hoster/Share4WebCom.py b/module/plugins/hoster/Share4WebCom.py index 7a276c1fe..5d9c8ea97 100644 --- a/module/plugins/hoster/Share4WebCom.py +++ b/module/plugins/hoster/Share4WebCom.py @@ -7,7 +7,7 @@ from module.plugins.internal.SimpleHoster import create_getInfo class Share4WebCom(UnibytesCom): __name__ = "Share4WebCom" __type__ = "hoster" - __version__ = "0.11" + __version__ = "0.12" __pattern__ = r'https?://(?:www\.)?share4web\.com/get/\w+' diff --git a/module/plugins/hoster/Share76Com.py b/module/plugins/hoster/Share76Com.py index 4a4af1672..510adaf49 100644 --- a/module/plugins/hoster/Share76Com.py +++ b/module/plugins/hoster/Share76Com.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class Share76Com(DeadHoster): __name__ = "Share76Com" __type__ = "hoster" - __version__ = "0.04" + __version__ = "0.05" __pattern__ = r'http://(?:www\.)?share76\.com/\w{12}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/ShareFilesCo.py b/module/plugins/hoster/ShareFilesCo.py index d9a71d786..288cd08e4 100644 --- a/module/plugins/hoster/ShareFilesCo.py +++ b/module/plugins/hoster/ShareFilesCo.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class ShareFilesCo(DeadHoster): __name__ = "ShareFilesCo" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'http://(?:www\.)?sharefiles\.co/\w{12}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/SharebeesCom.py b/module/plugins/hoster/SharebeesCom.py index 9387483cc..c0846d23c 100644 --- a/module/plugins/hoster/SharebeesCom.py +++ b/module/plugins/hoster/SharebeesCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class SharebeesCom(DeadHoster): __name__ = "SharebeesCom" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'http://(?:www\.)?sharebees\.com/\w{12}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/ShareonlineBiz.py b/module/plugins/hoster/ShareonlineBiz.py index 47b6ba7da..2134ec7e6 100644 --- a/module/plugins/hoster/ShareonlineBiz.py +++ b/module/plugins/hoster/ShareonlineBiz.py @@ -13,7 +13,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class ShareonlineBiz(SimpleHoster): __name__ = "ShareonlineBiz" __type__ = "hoster" - __version__ = "0.53" + __version__ = "0.54" __pattern__ = r'https?://(?:www\.)?(share-online\.biz|egoshare\.com)/(download\.php\?id=|dl/)(?P<ID>\w+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -36,8 +36,8 @@ class ShareonlineBiz(SimpleHoster): @classmethod - def apiInfo(cls, url): - info = super(ShareonlineBiz, cls).apiInfo(url) + def api_info(cls, url): + info = super(ShareonlineBiz, cls).api_info(url) field = getURL("http://api.share-online.biz/linkcheck.php", get={'md5' : "1", @@ -61,42 +61,42 @@ class ShareonlineBiz(SimpleHoster): def setup(self): - self.resumeDownload = self.premium - self.multiDL = False + self.resume_download = self.premium + self.multi_dl = False - def handleCaptcha(self): + def handle_captcha(self): recaptcha = ReCaptcha(self) for _i in xrange(5): response, challenge = recaptcha.challenge(self.RECAPTCHA_KEY) m = re.search(r'var wait=(\d+);', self.html) - self.setWait(int(m.group(1)) if m else 30) + self.set_wait(int(m.group(1)) if m else 30) res = self.load("%s/free/captcha/%d" % (self.pyfile.url, int(time.time() * 1000)), post={'dl_free' : "1", 'recaptcha_challenge_field': challenge, 'recaptcha_response_field' : response}) if not res == '0': - self.correctCaptcha() + self.correct_captcha() return res else: - self.invalidCaptcha() + self.invalid_captcha() else: - self.invalidCaptcha() + self.invalid_captcha() self.fail(_("No valid captcha solution received")) - def handleFree(self, pyfile): + def handle_free(self, pyfile): self.wait(3) self.html = self.load("%s/free/" % pyfile.url, post={'dl_free': "1", 'choice': "free"}) - self.checkErrors() + self.check_errors() - res = self.handleCaptcha() + res = self.handle_captcha() self.link = res.decode('base64') if not self.link.startswith("http://"): @@ -105,22 +105,22 @@ class ShareonlineBiz(SimpleHoster): self.wait() - def checkFile(self): - check = self.checkDownload({'cookie': re.compile(r'<div id="dl_failure"'), + def check_file(self): + check = self.check_download({'cookie': re.compile(r'<div id="dl_failure"'), 'fail' : re.compile(r"<title>Share-Online")}) if check == "cookie": - self.invalidCaptcha() + self.invalid_captcha() self.retry(5, 60, _("Cookie failure")) elif check == "fail": - self.invalidCaptcha() + self.invalid_captcha() self.retry(5, 5 * 60, _("Download failed")) return super(ShareonlineBiz, self).checkFile() - def handlePremium(self, pyfile): #: should be working better loading (account) api internally + def handle_premium(self, pyfile): #: should be working better loading (account) api internally html = self.load("http://api.share-online.biz/account.php", get={'username': self.user, 'password': self.account.getAccountData(self.user)['password'], @@ -133,7 +133,7 @@ class ShareonlineBiz(SimpleHoster): key, value = line.split(": ") dlinfo[key.lower()] = value - self.logDebug(dlinfo) + self.log_debug(dlinfo) if not dlinfo['status'] == "online": self.offline() @@ -144,12 +144,12 @@ class ShareonlineBiz(SimpleHoster): self.link = dlinfo['url'] if self.link == "server_under_maintenance": - self.tempOffline() + self.temp_offline() else: - self.multiDL = True + self.multi_dl = True - def checkErrors(self): + def check_errors(self): m = re.search(r"/failure/(.*?)/1", self.req.lastEffectiveURL) if m is None: self.info.pop('error', None) @@ -158,9 +158,9 @@ class ShareonlineBiz(SimpleHoster): errmsg = m.group(1).lower() try: - self.logError(errmsg, re.search(self.ERROR_PATTERN, self.html).group(1)) + self.log_error(errmsg, re.search(self.ERROR_PATTERN, self.html).group(1)) except Exception: - self.logError("Unknown error occurred", errmsg) + self.log_error("Unknown error occurred", errmsg) if errmsg is "invalid": self.fail(_("File not available")) @@ -172,11 +172,11 @@ class ShareonlineBiz(SimpleHoster): self.retry(wait_time=600, reason=errmsg) elif 'slot' in errmsg: - self.wantReconnect = True + self.want_reconnect = True self.retry(24, 3600, errmsg) else: - self.wantReconnect = True + self.want_reconnect = True self.retry(wait_time=60, reason=errmsg) diff --git a/module/plugins/hoster/ShareplaceCom.py b/module/plugins/hoster/ShareplaceCom.py index 815f54c79..d917e3f35 100644 --- a/module/plugins/hoster/ShareplaceCom.py +++ b/module/plugins/hoster/ShareplaceCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.Hoster import Hoster class ShareplaceCom(Hoster): __name__ = "ShareplaceCom" __type__ = "hoster" - __version__ = "0.13" + __version__ = "0.14" __pattern__ = r'http://(?:www\.)?shareplace\.(com|org)/\?\w+' @@ -31,7 +31,7 @@ class ShareplaceCom(Hoster): self.pyfile.name = self.get_file_name() wait_time = self.get_waiting_time() - self.setWait(wait_time) + self.set_wait(wait_time) self.wait() @@ -64,7 +64,7 @@ class ShareplaceCom(Hoster): url = urllib.unquote( url.replace("http://http:/", "").replace("vvvvvvvvv", "").replace("lllllllll", "").replace( "teletubbies", "")) - self.logDebug("URL: %s" % url) + self.log_debug("URL: %s" % url) return url else: self.error(_("Absolute filepath not found")) diff --git a/module/plugins/hoster/SharingmatrixCom.py b/module/plugins/hoster/SharingmatrixCom.py index 3958ebbd6..5f52849bb 100644 --- a/module/plugins/hoster/SharingmatrixCom.py +++ b/module/plugins/hoster/SharingmatrixCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class SharingmatrixCom(DeadHoster): __name__ = "SharingmatrixCom" __type__ = "hoster" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?sharingmatrix\.com/file/\w+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/ShragleCom.py b/module/plugins/hoster/ShragleCom.py index 689223322..d98ee08ff 100644 --- a/module/plugins/hoster/ShragleCom.py +++ b/module/plugins/hoster/ShragleCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class ShragleCom(DeadHoster): __name__ = "ShragleCom" __type__ = "hoster" - __version__ = "0.22" + __version__ = "0.23" __pattern__ = r'http://(?:www\.)?(cloudnator|shragle)\.com/files/(?P<ID>.+?)/' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/SimplyPremiumCom.py b/module/plugins/hoster/SimplyPremiumCom.py index 8ea121199..f726b0bf9 100644 --- a/module/plugins/hoster/SimplyPremiumCom.py +++ b/module/plugins/hoster/SimplyPremiumCom.py @@ -3,13 +3,13 @@ import re from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo -from module.plugins.internal.SimpleHoster import secondsToMidnight +from module.plugins.internal.SimpleHoster import seconds_to_midnight class SimplyPremiumCom(MultiHoster): __name__ = "SimplyPremiumCom" __type__ = "hoster" - __version__ = "0.09" + __version__ = "0.10" __pattern__ = r'https?://.+simply-premium\.com' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -21,10 +21,10 @@ class SimplyPremiumCom(MultiHoster): def setup(self): - self.chunkLimit = 16 + self.chunk_limit = 16 - def checkErrors(self): + def check_errors(self): if '<valid>0</valid>' in self.html or ( "You are not allowed to download from this host" in self.html and self.premium): self.account.relogin(self.user) @@ -34,30 +34,30 @@ class SimplyPremiumCom(MultiHoster): self.offline() elif "downloadlimit" in self.html: - self.logWarning(_("Reached maximum connctions")) + self.log_warning(_("Reached maximum connctions")) self.retry(5, 60, _("Reached maximum connctions")) elif "trafficlimit" in self.html: - self.logWarning(_("Reached daily limit for this host")) - self.retry(wait_time=secondsToMidnight(gmt=2), reason="Daily limit for this host reached") + self.log_warning(_("Reached daily limit for this host")) + self.retry(wait_time=seconds_to_midnight(gmt=2), reason="Daily limit for this host reached") elif "hostererror" in self.html: - self.logWarning(_("Hoster temporarily unavailable, waiting 1 minute and retry")) + self.log_warning(_("Hoster temporarily unavailable, waiting 1 minute and retry")) self.retry(5, 60, _("Hoster is temporarily unavailable")) - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): for i in xrange(5): self.html = self.load("http://www.simply-premium.com/premium.php", get={'info': "", 'link': self.pyfile.url}) if self.html: - self.logDebug("JSON data: " + self.html) + self.log_debug("JSON data: " + self.html) break else: - self.logInfo(_("Unable to get API data, waiting 1 minute and retry")) + self.log_info(_("Unable to get API data, waiting 1 minute and retry")) self.retry(5, 60, _("Unable to get API data")) - self.checkErrors() + self.check_errors() try: self.pyfile.name = re.search(r'<name>([^<]+)</name>', self.html).group(1) diff --git a/module/plugins/hoster/SimplydebridCom.py b/module/plugins/hoster/SimplydebridCom.py index 5e06bed88..d054a3c54 100644 --- a/module/plugins/hoster/SimplydebridCom.py +++ b/module/plugins/hoster/SimplydebridCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo, rep class SimplydebridCom(MultiHoster): __name__ = "SimplydebridCom" __type__ = "hoster" - __version__ = "0.19" + __version__ = "0.20" __pattern__ = r'http://\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/sd\.php' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -19,8 +19,8 @@ class SimplydebridCom(MultiHoster): __authors__ = [("Kagenoshin", "kagenoshin@gmx.ch")] - def handlePremium(self, pyfile): - #fix the links for simply-debrid.com! + def handle_premium(self, pyfile): + # fix the links for simply-debrid.com! self.link = replace_patterns(pyfile.url, [("clz.to", "cloudzer.net/file") ("http://share-online", "http://www.share-online") ("ul.to", "uploaded.net/file") @@ -40,8 +40,8 @@ class SimplydebridCom(MultiHoster): self.wait(5) - def checkFile(self): - if self.checkDownload({"error": "No address associated with hostname"}): + def check_file(self): + if self.check_download({"error": "No address associated with hostname"}): self.retry(24, 3 * 60, _("Bad file downloaded")) return super(SimplydebridCom, self).checkFile() diff --git a/module/plugins/hoster/SizedriveCom.py b/module/plugins/hoster/SizedriveCom.py index 4c5aedb6d..15007695d 100644 --- a/module/plugins/hoster/SizedriveCom.py +++ b/module/plugins/hoster/SizedriveCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class SizedriveCom(SimpleHoster): __name__ = "SizedriveCom" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'http://(?:www\.)?sizedrive\.com/[rd]/(?P<ID>\w+)' @@ -23,12 +23,12 @@ class SizedriveCom(SimpleHoster): def setup(self): - self.resumeDownload = False - self.multiDL = False - self.chunkLimit = 1 + self.resume_download = False + self.multi_dl = False + self.chunk_limit = 1 - def handleFree(self, pyfile): + def handle_free(self, pyfile): self.wait(5) self.html = self.load("http://www.sizedrive.com/getdownload.php", post={'id': self.info['pattern']['ID']}) diff --git a/module/plugins/hoster/SmoozedCom.py b/module/plugins/hoster/SmoozedCom.py index 9b62314ad..31b5dd4d7 100644 --- a/module/plugins/hoster/SmoozedCom.py +++ b/module/plugins/hoster/SmoozedCom.py @@ -7,7 +7,7 @@ from module.plugins.internal.MultiHoster import MultiHoster class SmoozedCom(MultiHoster): __name__ = "SmoozedCom" __type__ = "hoster" - __version__ = "0.07" + __version__ = "0.08" __pattern__ = r'^unmatchable$' #: Since we want to allow the user to specify the list of hoster to use we let MultiHoster.coreReady __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -22,7 +22,7 @@ class SmoozedCom(MultiHoster): ("Retry", r'{"state":"retry"}')] - def handleFree(self, pyfile): + def handle_free(self, pyfile): #: In some cases hostsers do not supply us with a filename at download, so we #: are going to set a fall back filename (e.g. for freakshare or xfileshare) pyfile.name = pyfile.name.split('/').pop() #: Remove everthing before last slash diff --git a/module/plugins/hoster/SockshareCom.py b/module/plugins/hoster/SockshareCom.py index 44eedf9d4..16f702f15 100644 --- a/module/plugins/hoster/SockshareCom.py +++ b/module/plugins/hoster/SockshareCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class SockshareCom(DeadHoster): __name__ = "SockshareCom" __type__ = "hoster" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'http://(?:www\.)?sockshare\.com/(mobile/)?(file|embed)/(?P<ID>\w+)' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/SolidfilesCom.py b/module/plugins/hoster/SolidfilesCom.py index 184329a40..fc2f2741a 100644 --- a/module/plugins/hoster/SolidfilesCom.py +++ b/module/plugins/hoster/SolidfilesCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class SolidfilesCom(SimpleHoster): __name__ = "SolidfilesCom" __type__ = "hoster" - __version__ = "0.02" + __version__ = "0.03" __pattern__ = r'http://(?:www\.)?solidfiles\.com\/d/\w+' @@ -26,8 +26,8 @@ class SolidfilesCom(SimpleHoster): def setup(self): - self.multiDL = True - self.chunkLimit = 1 + self.multi_dl = True + self.chunk_limit = 1 getInfo = create_getInfo(SolidfilesCom) diff --git a/module/plugins/hoster/SoundcloudCom.py b/module/plugins/hoster/SoundcloudCom.py index 2b041bb94..97d5223be 100644 --- a/module/plugins/hoster/SoundcloudCom.py +++ b/module/plugins/hoster/SoundcloudCom.py @@ -9,7 +9,7 @@ from module.common.json_layer import json_loads class SoundcloudCom(SimpleHoster): __name__ = "SoundcloudCom" __type__ = "hoster" - __version__ = "0.11" + __version__ = "0.12" __pattern__ = r'https?://(?:www\.)?soundcloud\.com/[\w-]+/[\w-]+' __config__ = [("use_premium", "bool" , "Use premium account if available", True ), @@ -24,7 +24,7 @@ class SoundcloudCom(SimpleHoster): OFFLINE_PATTERN = r'<title>"SoundCloud - Hear the worldâs sounds"</title>' - def handleFree(self, pyfile): + def handle_free(self, pyfile): try: song_id = re.search(r'sounds:(\d+)"', self.html).group(1) @@ -46,10 +46,10 @@ class SoundcloudCom(SimpleHoster): key=lambda t: regex.sub(t[0], ''), reverse=True) - self.logDebug("Streams found: %s" % (http_streams or "None")) + self.log_debug("Streams found: %s" % (http_streams or "None")) if http_streams: - stream_name, self.link = http_streams[0 if self.getConfig('quality') == "Higher" else -1] + stream_name, self.link = http_streams[0 if self.get_config('quality') == "Higher" else -1] pyfile.name += '.' + stream_name.split('_')[1].lower() diff --git a/module/plugins/hoster/SpeedLoadOrg.py b/module/plugins/hoster/SpeedLoadOrg.py index 18f04b611..97997517b 100644 --- a/module/plugins/hoster/SpeedLoadOrg.py +++ b/module/plugins/hoster/SpeedLoadOrg.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class SpeedLoadOrg(DeadHoster): __name__ = "SpeedLoadOrg" __type__ = "hoster" - __version__ = "1.02" + __version__ = "1.03" __pattern__ = r'http://(?:www\.)?speedload\.org/(?P<ID>\w+)' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/SpeedfileCz.py b/module/plugins/hoster/SpeedfileCz.py index cd6d65082..9f5da3c47 100644 --- a/module/plugins/hoster/SpeedfileCz.py +++ b/module/plugins/hoster/SpeedfileCz.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class SpeedfileCz(DeadHoster): __name__ = "SpeedFileCz" __type__ = "hoster" - __version__ = "0.32" + __version__ = "0.33" __pattern__ = r'http://(?:www\.)?speedfile\.cz/.+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/SpeedyshareCom.py b/module/plugins/hoster/SpeedyshareCom.py index 91788b2c8..4a9edb966 100644 --- a/module/plugins/hoster/SpeedyshareCom.py +++ b/module/plugins/hoster/SpeedyshareCom.py @@ -12,7 +12,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class SpeedyshareCom(SimpleHoster): __name__ = "SpeedyshareCom" __type__ = "hoster" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'https?://(?:www\.)?(speedyshare\.com|speedy\.sh)/\w+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -31,11 +31,11 @@ class SpeedyshareCom(SimpleHoster): def setup(self): - self.multiDL = False - self.chunkLimit = 1 + self.multi_dl = False + self.chunk_limit = 1 - def handleFree(self, pyfile): + def handle_free(self, pyfile): m = re.search(self.LINK_FREE_PATTERN, self.html) if m is None: self.link = m.group(1) diff --git a/module/plugins/hoster/StorageTo.py b/module/plugins/hoster/StorageTo.py index feb9f3300..fc23916a6 100644 --- a/module/plugins/hoster/StorageTo.py +++ b/module/plugins/hoster/StorageTo.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class StorageTo(DeadHoster): __name__ = "StorageTo" __type__ = "hoster" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'http://(?:www\.)?storage\.to/get/.+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/StreamCz.py b/module/plugins/hoster/StreamCz.py index 24b725722..e2ae0ab83 100644 --- a/module/plugins/hoster/StreamCz.py +++ b/module/plugins/hoster/StreamCz.py @@ -6,7 +6,7 @@ from module.network.RequestFactory import getURL from module.plugins.internal.Hoster import Hoster -def getInfo(urls): +def get_info(urls): result = [] for url in urls: @@ -23,7 +23,7 @@ def getInfo(urls): class StreamCz(Hoster): __name__ = "StreamCz" __type__ = "hoster" - __version__ = "0.21" + __version__ = "0.22" __pattern__ = r'https?://(?:www\.)?stream\.cz/[^/]+/\d+' @@ -39,8 +39,8 @@ class StreamCz(Hoster): def setup(self): - self.resumeDownload = True - self.multiDL = True + self.resume_download = True + self.multi_dl = True def process(self, pyfile): @@ -53,7 +53,7 @@ class StreamCz(Hoster): if m is None: self.error(_("CDN_PATTERN not found")) cdn = m.groupdict() - self.logDebug(cdn) + self.log_debug(cdn) for cdnkey in ("cdnHD", "cdnHQ", "cdnLQ"): if cdnkey in cdn and cdn[cdnkey] > '': cdnid = cdn[cdnkey] @@ -67,5 +67,5 @@ class StreamCz(Hoster): pyfile.name = "%s-%s.%s.mp4" % (m.group(2), m.group(1), cdnkey[-2:]) download_url = "http://cdn-dispatcher.stream.cz/?id=" + cdnid - self.logInfo(_("STREAM: %s") % cdnkey[-2:], download_url) + self.log_info(_("STREAM: %s") % cdnkey[-2:], download_url) self.download(download_url) diff --git a/module/plugins/hoster/StreamcloudEu.py b/module/plugins/hoster/StreamcloudEu.py index 0f8c08ad9..943beadb5 100644 --- a/module/plugins/hoster/StreamcloudEu.py +++ b/module/plugins/hoster/StreamcloudEu.py @@ -8,7 +8,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class StreamcloudEu(XFSHoster): __name__ = "StreamcloudEu" __type__ = "hoster" - __version__ = "0.10" + __version__ = "0.11" __pattern__ = r'http://(?:www\.)?streamcloud\.eu/\w{12}' @@ -21,9 +21,9 @@ class StreamcloudEu(XFSHoster): def setup(self): - self.multiDL = True - self.chunkLimit = 1 - self.resumeDownload = self.premium + self.multi_dl = True + self.chunk_limit = 1 + self.resume_download = self.premium getInfo = create_getInfo(StreamcloudEu) diff --git a/module/plugins/hoster/TurbobitNet.py b/module/plugins/hoster/TurbobitNet.py index efff6521a..e4ff000b2 100644 --- a/module/plugins/hoster/TurbobitNet.py +++ b/module/plugins/hoster/TurbobitNet.py @@ -17,7 +17,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, t class TurbobitNet(SimpleHoster): __name__ = "TurbobitNet" __type__ = "hoster" - __version__ = "0.20" + __version__ = "0.21" __pattern__ = r'http://(?:www\.)?turbobit\.net/(?:download/free/)?(?P<ID>\w+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -42,16 +42,16 @@ class TurbobitNet(SimpleHoster): CAPTCHA_PATTERN = r'<img alt="Captcha" src="(.+?)"' - def handleFree(self, pyfile): + def handle_free(self, pyfile): self.html = self.load("http://turbobit.net/download/free/%s" % self.info['pattern']['ID']) - rtUpdate = self.getRtUpdate() + rtUpdate = self.get_rt_update() - self.solveCaptcha() + self.solve_captcha() self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With: XMLHttpRequest"]) - self.html = self.load(self.getDownloadUrl(rtUpdate)) + self.html = self.load(self.get_download_url(rtUpdate)) self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With:"]) @@ -60,7 +60,7 @@ class TurbobitNet(SimpleHoster): self.link = m.group(1) - def solveCaptcha(self): + def solve_captcha(self): for _i in xrange(5): m = re.search(self.LIMIT_WAIT_PATTERN, self.html) if m: @@ -68,10 +68,10 @@ class TurbobitNet(SimpleHoster): self.wait(wait_time, wait_time > 60) self.retry() - action, inputs = self.parseHtmlForm("action='#'") + action, inputs = self.parse_html_form("action='#'") if not inputs: self.error(_("Captcha form not found")) - self.logDebug(inputs) + self.log_debug(inputs) if inputs['captcha_type'] == 'recaptcha': recaptcha = ReCaptcha(self) @@ -81,25 +81,25 @@ class TurbobitNet(SimpleHoster): if m is None: self.error(_("captcha")) captcha_url = m.group(1) - inputs['captcha_response'] = self.decryptCaptcha(captcha_url) + inputs['captcha_response'] = self.decrypt_captcha(captcha_url) - self.logDebug(inputs) + self.log_debug(inputs) self.html = self.load(self.url, post=inputs) if '<div class="captcha-error">Incorrect, try again!<' in self.html: - self.invalidCaptcha() + self.invalid_captcha() else: - self.correctCaptcha() + self.correct_captcha() break else: self.fail(_("Invalid captcha")) - def getRtUpdate(self): - rtUpdate = self.getStorage("rtUpdate") + def get_rt_update(self): + rtUpdate = self.retrieve("rtUpdate") if not rtUpdate: - if self.getStorage("version") != self.__version__ \ - or int(self.getStorage("timestamp", 0)) + 86400000 < timestamp(): + if self.retrieve("version") != self.__version__ \ + or int(self.retrieve("timestamp", 0)) + 86400000 < timestamp(): #: that's right, we are even using jdownloader updates rtUpdate = getURL("http://update0.jdownloader.org/pluginstuff/tbupdate.js") rtUpdate = self.decrypt(rtUpdate.splitlines()[1]) @@ -108,17 +108,17 @@ class TurbobitNet(SimpleHoster): r'zza=\2;for(var zzi=0;zzi<zza.length;zzi++){\1=zza[zzi];', rtUpdate) rtUpdate = re.sub(r"for\((\w+)=", r"for(var \1=", rtUpdate) - self.setStorage("rtUpdate", rtUpdate) - self.setStorage("timestamp", timestamp()) - self.setStorage("version", self.__version__) + self.store("rtUpdate", rtUpdate) + self.store("timestamp", timestamp()) + self.store("version", self.__version__) else: - self.logError(_("Unable to download, wait for update...")) - self.tempOffline() + self.log_error(_("Unable to download, wait for update...")) + self.temp_offline() return rtUpdate - def getDownloadUrl(self, rtUpdate): + def get_download_url(self, rtUpdate): self.req.http.lastURL = self.url m = re.search("(/\w+/timeout\.js\?\w+=)([^\"\'<>]+)", self.html) @@ -129,7 +129,7 @@ class TurbobitNet(SimpleHoster): fun = self.load(url) - self.setWait(65, False) + self.set_wait(65, False) for b in [1, 3]: self.jscode = "var id = \'%s\';var b = %d;var inn = \'%s\';%sout" % ( @@ -137,16 +137,16 @@ class TurbobitNet(SimpleHoster): try: out = self.js.eval(self.jscode) - self.logDebug("URL", self.js.engine, out) + self.log_debug("URL", self.js.engine, out) if out.startswith('/download/'): return "http://turbobit.net%s" % out.strip() except Exception, e: - self.logError(e) + self.log_error(e) else: if self.retries >= 2: #: retry with updated js - self.delStorage("rtUpdate") + self.delete("rtUpdate") else: self.retry() @@ -158,7 +158,7 @@ class TurbobitNet(SimpleHoster): return binascii.unhexlify(cipher.encrypt(binascii.unhexlify(data))) - def getLocalTimeString(self): + def get_local_time_string(self): lt = time.localtime() tz = time.altzone if lt.tm_isdst else time.timezone return "%s GMT%+03d%02d" % (time.strftime("%a %b %d %Y %H:%M:%S", lt), -tz // 3600, tz % 3600) diff --git a/module/plugins/hoster/TurbouploadCom.py b/module/plugins/hoster/TurbouploadCom.py index e4b53b818..79b6ac2a5 100644 --- a/module/plugins/hoster/TurbouploadCom.py +++ b/module/plugins/hoster/TurbouploadCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class TurbouploadCom(DeadHoster): __name__ = "TurbouploadCom" __type__ = "hoster" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?turboupload\.com/(\w+)' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/TusfilesNet.py b/module/plugins/hoster/TusfilesNet.py index 3afd1da97..5a99aad72 100644 --- a/module/plugins/hoster/TusfilesNet.py +++ b/module/plugins/hoster/TusfilesNet.py @@ -8,7 +8,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class TusfilesNet(XFSHoster): __name__ = "TusfilesNet" __type__ = "hoster" - __version__ = "0.11" + __version__ = "0.12" __pattern__ = r'https?://(?:www\.)?tusfiles\.net/\w{12}' @@ -22,9 +22,9 @@ class TusfilesNet(XFSHoster): def setup(self): - self.chunkLimit = -1 - self.multiDL = True - self.resumeDownload = True + self.chunk_limit = -1 + self.multi_dl = True + self.resume_download = True def download(self, url, *args, **kwargs): @@ -33,7 +33,7 @@ class TusfilesNet(XFSHoster): except BadHeader, e: if e.code is 503: - self.multiDL = False + self.multi_dl = False raise Retry("503") diff --git a/module/plugins/hoster/TwoSharedCom.py b/module/plugins/hoster/TwoSharedCom.py index 086228637..72c78ec4f 100644 --- a/module/plugins/hoster/TwoSharedCom.py +++ b/module/plugins/hoster/TwoSharedCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class TwoSharedCom(SimpleHoster): __name__ = "TwoSharedCom" __type__ = "hoster" - __version__ = "0.13" + __version__ = "0.14" __pattern__ = r'http://(?:www\.)?2shared\.com/(account/)?(download|get|file|document|photo|video|audio)/.+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -26,8 +26,8 @@ class TwoSharedCom(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = True + self.resume_download = True + self.multi_dl = True getInfo = create_getInfo(TwoSharedCom) diff --git a/module/plugins/hoster/UlozTo.py b/module/plugins/hoster/UlozTo.py index 6a2836b50..f60549813 100644 --- a/module/plugins/hoster/UlozTo.py +++ b/module/plugins/hoster/UlozTo.py @@ -7,7 +7,7 @@ from module.common.json_layer import json_loads from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo -def convertDecimalPrefix(m): +def convert_decimal_prefix(m): #: decimal prefixes used in filesize and traffic return ("%%.%df" % {'k': 3, 'M': 6, 'G': 9}[m.group(2)] % float(m.group(1))).replace('.', '') @@ -15,7 +15,7 @@ def convertDecimalPrefix(m): class UlozTo(SimpleHoster): __name__ = "UlozTo" __type__ = "hoster" - __version__ = "1.10" + __version__ = "1.11" __pattern__ = r'http://(?:www\.)?(uloz\.to|ulozto\.(cz|sk|net)|bagruj\.cz|zachowajto\.pl)/(?:live/)?(?P<ID>\w+/[^/?]*)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -43,37 +43,37 @@ class UlozTo(SimpleHoster): def setup(self): - self.chunkLimit = 16 if self.premium else 1 - self.multiDL = True - self.resumeDownload = True + self.chunk_limit = 16 if self.premium else 1 + self.multi_dl = True + self.resume_download = True - def handleFree(self, pyfile): - action, inputs = self.parseHtmlForm('id="frm-downloadDialog-freeDownloadForm"') + def handle_free(self, pyfile): + action, inputs = self.parse_html_form('id="frm-downloadDialog-freeDownloadForm"') if not action or not inputs: self.error(_("Free download form not found")) - self.logDebug("inputs.keys = " + str(inputs.keys())) + self.log_debug("inputs.keys = " + str(inputs.keys())) #: get and decrypt captcha if all(key in inputs for key in ("captcha_value", "captcha_id", "captcha_key")): #: Old version - last seen 9.12.2013 - self.logDebug('Using "old" version') + self.log_debug('Using "old" version') - captcha_value = self.decryptCaptcha("http://img.uloz.to/captcha/%s.png" % inputs['captcha_id']) - self.logDebug("CAPTCHA ID: " + inputs['captcha_id'] + ", CAPTCHA VALUE: " + captcha_value) + captcha_value = self.decrypt_captcha("http://img.uloz.to/captcha/%s.png" % inputs['captcha_id']) + self.log_debug("CAPTCHA ID: " + inputs['captcha_id'] + ", CAPTCHA VALUE: " + captcha_value) inputs.update({'captcha_id': inputs['captcha_id'], 'captcha_key': inputs['captcha_key'], 'captcha_value': captcha_value}) elif all(key in inputs for key in ("captcha_value", "timestamp", "salt", "hash")): #: New version - better to get new parameters (like captcha reload) because of image url - since 6.12.2013 - self.logDebug('Using "new" version') + self.log_debug('Using "new" version') xapca = self.load("http://www.ulozto.net/reloadXapca.php", get={'rnd': str(int(time.time()))}) - self.logDebug("xapca = " + str(xapca)) + self.log_debug("xapca = " + str(xapca)) data = json_loads(xapca) - captcha_value = self.decryptCaptcha(str(data['image'])) - self.logDebug("CAPTCHA HASH: " + data['hash'], "CAPTCHA SALT: " + str(data['salt']), "CAPTCHA VALUE: " + captcha_value) + captcha_value = self.decrypt_captcha(str(data['image'])) + self.log_debug("CAPTCHA HASH: " + data['hash'], "CAPTCHA SALT: " + str(data['salt']), "CAPTCHA VALUE: " + captcha_value) inputs.update({'timestamp': data['timestamp'], 'salt': data['salt'], 'hash': data['hash'], 'captcha_value': captcha_value}) @@ -83,13 +83,13 @@ class UlozTo(SimpleHoster): self.download("http://www.ulozto.net" + action, post=inputs) - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): self.download(pyfile.url, get={'do': "directDownload"}) - def checkErrors(self): + def check_errors(self): if re.search(self.ADULT_PATTERN, self.html): - self.logInfo(_("Adult content confirmation needed")) + self.log_info(_("Adult content confirmation needed")) m = re.search(self.TOKEN_PATTERN, self.html) if m is None: @@ -100,10 +100,10 @@ class UlozTo(SimpleHoster): post={"agree": "Confirm", "_token_": m.group(1)}) if self.PASSWD_PATTERN in self.html: - password = self.getPassword() + password = self.get_password() if password: - self.logInfo(_("Password protected link, trying ") + password) + self.log_info(_("Password protected link, trying ") + password) self.html = self.load(pyfile.url, get={'do': "passwordProtectedForm-submit"}, post={"password": password, "password_send": 'Send'}) @@ -119,8 +119,8 @@ class UlozTo(SimpleHoster): return super(UlozTo, self).checkErrors() - def checkFile(self): - check = self.checkDownload({ + def check_file(self): + check = self.check_download({ "wrong_captcha": re.compile(r'<ul class="error">\s*<li>Error rewriting the text.</li>'), "offline" : re.compile(self.OFFLINE_PATTERN), "passwd" : self.PASSWD_PATTERN, @@ -129,7 +129,7 @@ class UlozTo(SimpleHoster): }) if check == "wrong_captcha": - self.invalidCaptcha() + self.invalid_captcha() self.retry(reason=_("Wrong captcha code")) elif check == "offline": @@ -139,8 +139,8 @@ class UlozTo(SimpleHoster): self.fail(_("Wrong password")) elif check == "server_error": - self.logError(_("Server error, try downloading later")) - self.multiDL = False + self.log_error(_("Server error, try downloading later")) + self.multi_dl = False self.wait(1 * 60 * 60, True) self.retry() diff --git a/module/plugins/hoster/UloziskoSk.py b/module/plugins/hoster/UloziskoSk.py index 81fdd21ed..c49db225b 100644 --- a/module/plugins/hoster/UloziskoSk.py +++ b/module/plugins/hoster/UloziskoSk.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class UloziskoSk(SimpleHoster): __name__ = "UloziskoSk" __type__ = "hoster" - __version__ = "0.25" + __version__ = "0.26" __pattern__ = r'http://(?:www\.)?ulozisko\.sk/.+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -37,10 +37,10 @@ class UloziskoSk(SimpleHoster): if m: self.link = "http://ulozisko.sk" + m.group(1) else: - self.handleFree(pyfile) + self.handle_free(pyfile) - def handleFree(self, pyfile): + def handle_free(self, pyfile): m = re.search(self.LINK_FREE_PATTERN, self.html) if m is None: self.error(_("LINK_FREE_PATTERN not found")) @@ -51,16 +51,16 @@ class UloziskoSk(SimpleHoster): self.error(_("ID_PATTERN not found")) id = m.group(1) - self.logDebug("URL:" + parsed_url + ' ID:' + id) + self.log_debug("URL:" + parsed_url + ' ID:' + id) m = re.search(self.CAPTCHA_PATTERN, self.html) if m is None: self.error(_("CAPTCHA_PATTERN not found")) captcha_url = urlparse.urljoin("http://www.ulozisko.sk", m.group(1)) - captcha = self.decryptCaptcha(captcha_url, cookies=True) + captcha = self.decrypt_captcha(captcha_url, cookies=True) - self.logDebug("CAPTCHA_URL:" + captcha_url + ' CAPTCHA:' + captcha) + self.log_debug("CAPTCHA_URL:" + captcha_url + ' CAPTCHA:' + captcha) self.download(parsed_url, post={"antispam": captcha, diff --git a/module/plugins/hoster/UnibytesCom.py b/module/plugins/hoster/UnibytesCom.py index d090c8e7d..6763f6cb2 100644 --- a/module/plugins/hoster/UnibytesCom.py +++ b/module/plugins/hoster/UnibytesCom.py @@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class UnibytesCom(SimpleHoster): __name__ = "UnibytesCom" __type__ = "hoster" - __version__ = "0.12" + __version__ = "0.13" __pattern__ = r'https?://(?:www\.)?unibytes\.com/[\w .-]{11}B' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -28,14 +28,14 @@ class UnibytesCom(SimpleHoster): LINK_FREE_PATTERN = r'<a href="(.+?)">Download</a>' - def handleFree(self, pyfile): + def handle_free(self, pyfile): domain = "http://www.%s/" % self.HOSTER_DOMAIN - action, post_data = self.parseHtmlForm('id="startForm"') + action, post_data = self.parse_html_form('id="startForm"') self.req.http.c.setopt(pycurl.FOLLOWLOCATION, 0) for _i in xrange(8): - self.logDebug(action, post_data) + self.log_debug(action, post_data) self.html = self.load(urlparse.urljoin(domain, action), post=post_data) m = re.search(r'location:\s*(\S+)', self.req.http.header, re.I) @@ -51,20 +51,20 @@ class UnibytesCom(SimpleHoster): m = re.search(self.LINK_FREE_PATTERN, self.html) if m: self.link = m.group(1) - self.correctCaptcha() + self.correct_captcha() break else: - self.invalidCaptcha() + self.invalid_captcha() last_step = post_data['step'] - action, post_data = self.parseHtmlForm('id="stepForm"') + action, post_data = self.parse_html_form('id="stepForm"') if last_step == 'timer': m = re.search(self.WAIT_PATTERN, self.html) self.wait(m.group(1) if m else 60, False) elif last_step in ("captcha", "last"): - post_data['captcha'] = self.decryptCaptcha(urlparse.urljoin(domain, "/captcha.jpg")) + post_data['captcha'] = self.decrypt_captcha(urlparse.urljoin(domain, "/captcha.jpg")) else: self.fail(_("No valid captcha code entered")) diff --git a/module/plugins/hoster/UnrestrictLi.py b/module/plugins/hoster/UnrestrictLi.py index b63796fe0..a2406f5c6 100644 --- a/module/plugins/hoster/UnrestrictLi.py +++ b/module/plugins/hoster/UnrestrictLi.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class UnrestrictLi(DeadHoster): __name__ = "UnrestrictLi" __type__ = "hoster" - __version__ = "0.23" + __version__ = "0.24" __pattern__ = r'https?://(?:www\.)?(unrestrict|unr)\.li/dl/[\w^_]+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/UpleaCom.py b/module/plugins/hoster/UpleaCom.py index a6ec0807e..a08585f03 100644 --- a/module/plugins/hoster/UpleaCom.py +++ b/module/plugins/hoster/UpleaCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class UpleaCom(XFSHoster): __name__ = "UpleaCom" __type__ = "hoster" - __version__ = "0.10" + __version__ = "0.11" __pattern__ = r'https?://(?:www\.)?uplea\.com/dl/\w{15}' @@ -37,12 +37,12 @@ class UpleaCom(XFSHoster): def setup(self): - self.multiDL = False - self.chunkLimit = 1 - self.resumeDownload = True + self.multi_dl = False + self.chunk_limit = 1 + self.resume_download = True - def handleFree(self, pyfile): + def handle_free(self, pyfile): m = re.search(self.STEP_PATTERN, self.html) if m is None: self.error(_("STEP_PATTERN not found")) @@ -51,7 +51,7 @@ class UpleaCom(XFSHoster): m = re.search(self.WAIT_PATTERN, self.html) if m: - self.logDebug("Waiting %s seconds" % m.group(1)) + self.log_debug("Waiting %s seconds" % m.group(1)) self.wait(m.group(1), True) self.retry() diff --git a/module/plugins/hoster/UploadStationCom.py b/module/plugins/hoster/UploadStationCom.py index 61226e3da..fc98b10bc 100644 --- a/module/plugins/hoster/UploadStationCom.py +++ b/module/plugins/hoster/UploadStationCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class UploadStationCom(DeadHoster): __name__ = "UploadStationCom" __type__ = "hoster" - __version__ = "0.52" + __version__ = "0.53" __pattern__ = r'http://(?:www\.)?uploadstation\.com/file/(?P<ID>\w+)' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/UploadableCh.py b/module/plugins/hoster/UploadableCh.py index b2323644f..21d9f298e 100644 --- a/module/plugins/hoster/UploadableCh.py +++ b/module/plugins/hoster/UploadableCh.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class UploadableCh(SimpleHoster): __name__ = "UploadableCh" __type__ = "hoster" - __version__ = "0.11" + __version__ = "0.12" __pattern__ = r'http://(?:www\.)?uploadable\.ch/file/(?P<ID>\w+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -32,16 +32,16 @@ class UploadableCh(SimpleHoster): RECAPTCHA_KEY = "6LdlJuwSAAAAAPJbPIoUhyqOJd7-yrah5Nhim5S3" - def handleFree(self, pyfile): + def handle_free(self, pyfile): #: Click the "free user" button and wait a = self.load(pyfile.url, post={'downloadLink': "wait"}) - self.logDebug(a) + self.log_debug(a) self.wait(30) #: Make the recaptcha appear and show it the pyload interface b = self.load(pyfile.url, post={'checkDownload': "check"}) - self.logDebug(b) #: Expected output: {"success":"showCaptcha"} + self.log_debug(b) #: Expected output: {"success":"showCaptcha"} recaptcha = ReCaptcha(self) @@ -64,9 +64,9 @@ class UploadableCh(SimpleHoster): self.download(pyfile.url, post={'download': "normal"}, disposition=True) - def checkFile(self): - if self.checkDownload({'wait': re.compile("Please wait for")}): - self.logInfo("Downloadlimit reached, please wait or reconnect") + def check_file(self): + if self.check_download({'wait': re.compile("Please wait for")}): + self.log_info("Downloadlimit reached, please wait or reconnect") self.wait(60 * 60, True) self.retry() diff --git a/module/plugins/hoster/UploadboxCom.py b/module/plugins/hoster/UploadboxCom.py index cb4f50184..82ecf6f87 100644 --- a/module/plugins/hoster/UploadboxCom.py +++ b/module/plugins/hoster/UploadboxCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class UploadboxCom(DeadHoster): __name__ = "Uploadbox" __type__ = "hoster" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'http://(?:www\.)?uploadbox\.com/files/.+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/UploadedTo.py b/module/plugins/hoster/UploadedTo.py index b88ac5f0b..32b54d1ae 100644 --- a/module/plugins/hoster/UploadedTo.py +++ b/module/plugins/hoster/UploadedTo.py @@ -12,7 +12,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class UploadedTo(SimpleHoster): __name__ = "UploadedTo" __type__ = "hoster" - __version__ = "0.94" + __version__ = "0.95" __pattern__ = r'https?://(?:www\.)?(uploaded\.(to|net)|ul\.to)(/file/|/?\?id=|.*?&id=|/)(?P<ID>\w+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -40,8 +40,8 @@ class UploadedTo(SimpleHoster): @classmethod - def apiInfo(cls, url): - info = super(UploadedTo, cls).apiInfo(url) + def api_info(cls, url): + info = super(UploadedTo, cls).api_info(url) for _i in xrange(5): html = getURL("http://uploaded.net/api/filemultiple", @@ -61,11 +61,11 @@ class UploadedTo(SimpleHoster): def setup(self): - self.multiDL = self.resumeDownload = self.premium - self.chunkLimit = 1 #: critical problems with more chunks + self.multi_dl = self.resume_download = self.premium + self.chunk_limit = 1 #: critical problems with more chunks - def handleFree(self, pyfile): + def handle_free(self, pyfile): self.load("http://uploaded.net/language/en", just_header=True) self.html = self.load("http://uploaded.net/js/download.js") @@ -77,8 +77,8 @@ class UploadedTo(SimpleHoster): post={'recaptcha_challenge_field': challenge, 'recaptcha_response_field' : response}) - super(UploadedTo, self).handleFree(pyfile) - self.checkErrors() + super(UploadedTo, self).handle_free(pyfile) + self.check_errors() getInfo = create_getInfo(UploadedTo) diff --git a/module/plugins/hoster/UploadhereCom.py b/module/plugins/hoster/UploadhereCom.py index bc94e644e..39027dca9 100644 --- a/module/plugins/hoster/UploadhereCom.py +++ b/module/plugins/hoster/UploadhereCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class UploadhereCom(DeadHoster): __name__ = "UploadhereCom" __type__ = "hoster" - __version__ = "0.12" + __version__ = "0.13" __pattern__ = r'http://(?:www\.)?uploadhere\.com/\w{10}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/UploadheroCom.py b/module/plugins/hoster/UploadheroCom.py index 5c74f10eb..2ae7356c5 100644 --- a/module/plugins/hoster/UploadheroCom.py +++ b/module/plugins/hoster/UploadheroCom.py @@ -12,7 +12,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class UploadheroCom(SimpleHoster): __name__ = "UploadheroCom" __type__ = "hoster" - __version__ = "0.18" + __version__ = "0.19" __pattern__ = r'http://(?:www\.)?uploadhero\.com?/dl/\w+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -38,12 +38,12 @@ class UploadheroCom(SimpleHoster): LINK_PREMIUM_PATTERN = r'<a href="(.+?)" id="downloadnow"' - def handleFree(self, pyfile): + def handle_free(self, pyfile): m = re.search(self.CAPTCHA_PATTERN, self.html) if m is None: self.error(_("Captcha not found")) - captcha = self.decryptCaptcha(urlparse.urljoin("http://uploadhero.co", m.group(1))) + captcha = self.decrypt_captcha(urlparse.urljoin("http://uploadhero.co", m.group(1))) self.html = self.load(pyfile.url, get={"code": captcha}) @@ -54,7 +54,7 @@ class UploadheroCom(SimpleHoster): self.wait(50) - def checkErrors(self): + def check_errors(self): m = re.search(self.IP_BLOCKED_PATTERN, self.html) if m: self.html = self.load(urlparse.urljoin("http://uploadhero.co", m.group(1))) diff --git a/module/plugins/hoster/UploadingCom.py b/module/plugins/hoster/UploadingCom.py index efdcd81fe..04abf15ee 100644 --- a/module/plugins/hoster/UploadingCom.py +++ b/module/plugins/hoster/UploadingCom.py @@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, t class UploadingCom(SimpleHoster): __name__ = "UploadingCom" __type__ = "hoster" - __version__ = "0.41" + __version__ = "0.42" __pattern__ = r'http://(?:www\.)?uploading\.com/files/(?:get/)?(?P<ID>\w+)' @@ -39,12 +39,12 @@ class UploadingCom(SimpleHoster): self.getFileInfo() if self.premium: - self.handlePremium(pyfile) + self.handle_premium(pyfile) else: - self.handleFree(pyfile) + self.handle_free(pyfile) - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): postData = {'action': 'get_link', 'code' : self.info['pattern']['ID'], 'pass' : 'undefined'} @@ -57,11 +57,11 @@ class UploadingCom(SimpleHoster): raise Exception("Plugin defect") - def handleFree(self, pyfile): + def handle_free(self, pyfile): m = re.search('<h2>((Daily )?Download Limit)</h2>', self.html) if m: pyfile.error = m.group(1) - self.logWarning(pyfile.error) + self.log_warning(pyfile.error) self.retry(6, (6 * 60 if m.group(2) else 15) * 60, pyfile.error) ajax_url = "http://uploading.com/files/get/?ajax" @@ -72,7 +72,7 @@ class UploadingCom(SimpleHoster): if 'answer' in res and 'wait_time' in res['answer']: wait_time = int(res['answer']['wait_time']) - self.logInfo(_("Waiting %d seconds") % wait_time) + self.log_info(_("Waiting %d seconds") % wait_time) self.wait(wait_time) else: self.error(_("No AJAX/WAIT")) diff --git a/module/plugins/hoster/UploadkingCom.py b/module/plugins/hoster/UploadkingCom.py index 0d60cef1f..44ebed105 100644 --- a/module/plugins/hoster/UploadkingCom.py +++ b/module/plugins/hoster/UploadkingCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class UploadkingCom(DeadHoster): __name__ = "UploadkingCom" __type__ = "hoster" - __version__ = "0.14" + __version__ = "0.15" __pattern__ = r'http://(?:www\.)?uploadking\.com/\w{10}' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/UpstoreNet.py b/module/plugins/hoster/UpstoreNet.py index 342009c98..f628e1db3 100644 --- a/module/plugins/hoster/UpstoreNet.py +++ b/module/plugins/hoster/UpstoreNet.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class UpstoreNet(SimpleHoster): __name__ = "UpstoreNet" __type__ = "hoster" - __version__ = "0.06" + __version__ = "0.07" __pattern__ = r'https?://(?:www\.)?upstore\.net/' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -27,13 +27,13 @@ class UpstoreNet(SimpleHoster): LINK_FREE_PATTERN = r'<a href="(https?://.*?)" target="_blank"><b>' - def handleFree(self, pyfile): + def handle_free(self, pyfile): # STAGE 1: get link to continue m = re.search(self.CHASH_PATTERN, self.html) if m is None: self.error(_("CHASH_PATTERN not found")) chash = m.group(1) - self.logDebug("Read hash " + chash) + self.log_debug("Read hash " + chash) #: continue to stage2 post_data = {'hash': chash, 'free': 'Slow download'} self.html = self.load(pyfile.url, post=post_data) diff --git a/module/plugins/hoster/UptoboxCom.py b/module/plugins/hoster/UptoboxCom.py index 2c06558e4..981c37162 100644 --- a/module/plugins/hoster/UptoboxCom.py +++ b/module/plugins/hoster/UptoboxCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class UptoboxCom(XFSHoster): __name__ = "UptoboxCom" __type__ = "hoster" - __version__ = "0.20" + __version__ = "0.21" __pattern__ = r'https?://(?:www\.)?(uptobox|uptostream)\.com/\w{12}' @@ -23,9 +23,9 @@ class UptoboxCom(XFSHoster): def setup(self): - self.multiDL = True - self.chunkLimit = 1 - self.resumeDownload = True + self.multi_dl = True + self.chunk_limit = 1 + self.resume_download = True getInfo = create_getInfo(UptoboxCom) diff --git a/module/plugins/hoster/VeehdCom.py b/module/plugins/hoster/VeehdCom.py index 9f8e77d94..abf4f1c7a 100644 --- a/module/plugins/hoster/VeehdCom.py +++ b/module/plugins/hoster/VeehdCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.Hoster import Hoster class VeehdCom(Hoster): __name__ = "VeehdCom" __type__ = "hoster" - __version__ = "0.24" + __version__ = "0.25" __pattern__ = r'http://veehd\.com/video/\d+_\S+' __config__ = [("filename_spaces", "bool", "Allow spaces in filename", False), @@ -20,7 +20,7 @@ class VeehdCom(Hoster): def setup(self): - self.multiDL = True + self.multi_dl = True self.req.canContinue = True @@ -35,7 +35,7 @@ class VeehdCom(Hoster): def download_html(self): url = self.pyfile.url - self.logDebug("Requesting page: %s" % url) + self.log_debug("Requesting page: %s" % url) self.html = self.load(url) @@ -59,12 +59,12 @@ class VeehdCom(Hoster): name = m.group(1) #: replace unwanted characters in filename - if self.getConfig('filename_spaces'): + if self.get_config('filename_spaces'): pattern = '[^\w ]+' else: pattern = '[^\w.]+' - return re.sub(pattern, self.getConfig('replacement_char'), name) + '.avi' + return re.sub(pattern, self.get_config('replacement_char'), name) + '.avi' def get_file_url(self): diff --git a/module/plugins/hoster/VeohCom.py b/module/plugins/hoster/VeohCom.py index 57b24623b..fc7e6c318 100644 --- a/module/plugins/hoster/VeohCom.py +++ b/module/plugins/hoster/VeohCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class VeohCom(SimpleHoster): __name__ = "VeohCom" __type__ = "hoster" - __version__ = "0.22" + __version__ = "0.23" __pattern__ = r'http://(?:www\.)?veoh\.com/(tv/)?(watch|videos)/(?P<ID>v\w+)' __config__ = [("use_premium", "bool" , "Use premium account if available", True ), @@ -28,13 +28,13 @@ class VeohCom(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = True - self.chunkLimit = -1 + self.resume_download = True + self.multi_dl = True + self.chunk_limit = -1 - def handleFree(self, pyfile): - quality = self.getConfig('quality') + def handle_free(self, pyfile): + quality = self.get_config('quality') if quality == "Auto": quality = ("High", "Low") @@ -46,7 +46,7 @@ class VeohCom(SimpleHoster): self.link = m.group(1).replace("\\", "") return else: - self.logInfo(_("No %s quality video found") % q.upper()) + self.log_info(_("No %s quality video found") % q.upper()) else: self.fail(_("No video found!")) diff --git a/module/plugins/hoster/VidPlayNet.py b/module/plugins/hoster/VidPlayNet.py index f1a32a897..44cfe1e6d 100644 --- a/module/plugins/hoster/VidPlayNet.py +++ b/module/plugins/hoster/VidPlayNet.py @@ -9,7 +9,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class VidPlayNet(XFSHoster): __name__ = "VidPlayNet" __type__ = "hoster" - __version__ = "0.04" + __version__ = "0.05" __pattern__ = r'https?://(?:www\.)?vidplay\.net/\w{12}' diff --git a/module/plugins/hoster/VimeoCom.py b/module/plugins/hoster/VimeoCom.py index dc774ecf6..c4002fac0 100644 --- a/module/plugins/hoster/VimeoCom.py +++ b/module/plugins/hoster/VimeoCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class VimeoCom(SimpleHoster): __name__ = "VimeoCom" __type__ = "hoster" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'https?://(?:www\.)?(player\.)?vimeo\.com/(video/)?(?P<ID>\d+)' __config__ = [("use_premium", "bool" , "Use premium account if available" , True ), @@ -30,13 +30,13 @@ class VimeoCom(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = True - self.chunkLimit = -1 + self.resume_download = True + self.multi_dl = True + self.chunk_limit = -1 - def handleFree(self, pyfile): - password = self.getPassword() + def handle_free(self, pyfile): + password = self.get_password() if self.js and 'class="btn iconify_down_b"' in self.html: html = self.js.eval(self.load(pyfile.url, get={'action': "download", 'password': password})) @@ -47,14 +47,14 @@ class VimeoCom(SimpleHoster): link = dict((l.group('QL').lower(), l.group('URL')) for l in re.finditer(pattern, html)) - if self.getConfig('original'): + if self.get_config('original'): if "original" in link: self.link = link[q] return else: - self.logInfo(_("Original file not downloadable")) + self.log_info(_("Original file not downloadable")) - quality = self.getConfig('quality') + quality = self.get_config('quality') if quality == "Highest": qlevel = ("hd", "sd", "mobile") elif quality == "Lowest": @@ -67,7 +67,7 @@ class VimeoCom(SimpleHoster): self.link = link[q] return else: - self.logInfo(_("No %s quality video found") % q.upper()) + self.log_info(_("No %s quality video found") % q.upper()) else: self.fail(_("No video found!")) diff --git a/module/plugins/hoster/Vipleech4UCom.py b/module/plugins/hoster/Vipleech4UCom.py index 5668e0fad..64174680d 100644 --- a/module/plugins/hoster/Vipleech4UCom.py +++ b/module/plugins/hoster/Vipleech4UCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class Vipleech4UCom(DeadHoster): __name__ = "Vipleech4UCom" __type__ = "hoster" - __version__ = "0.20" + __version__ = "0.21" __pattern__ = r'http://(?:www\.)?vipleech4u\.com/manager\.php' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/VkCom.py b/module/plugins/hoster/VkCom.py index 8237e7536..ed9dc8cd5 100644 --- a/module/plugins/hoster/VkCom.py +++ b/module/plugins/hoster/VkCom.py @@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class VkCom(SimpleHoster): __name__ = "VkCom" __type__ = "hoster" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r"https?://(?:www\.)?vk\.com/video_ext\.php/\?.+" __config__ = [("quality", "Low;High;Auto", "Quality", "Auto")] @@ -27,8 +27,8 @@ class VkCom(SimpleHoster): LINK_FREE_PATTERN = r'url\d+":"(.+?)"' - def handleFree(self, pyfile): - self.link = re.findall(self.LINK_FREE_PATTERN, self.html)[0 if self.getConfig('quality') is "Low" else -1] + def handle_free(self, pyfile): + self.link = re.findall(self.LINK_FREE_PATTERN, self.html)[0 if self.get_config('quality') is "Low" else -1] getInfo = create_getInfo(VkCom) diff --git a/module/plugins/hoster/WarserverCz.py b/module/plugins/hoster/WarserverCz.py index 6cb94e57e..8c2c87ad5 100644 --- a/module/plugins/hoster/WarserverCz.py +++ b/module/plugins/hoster/WarserverCz.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class WarserverCz(DeadHoster): __name__ = "WarserverCz" __type__ = "hoster" - __version__ = "0.13" + __version__ = "0.14" __pattern__ = r'http://(?:www\.)?warserver\.cz/stahnout/\d+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/WebshareCz.py b/module/plugins/hoster/WebshareCz.py index 6aac44df6..2afe7421a 100644 --- a/module/plugins/hoster/WebshareCz.py +++ b/module/plugins/hoster/WebshareCz.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class WebshareCz(SimpleHoster): __name__ = "WebshareCz" __type__ = "hoster" - __version__ = "0.18" + __version__ = "0.19" __pattern__ = r'https?://(?:www\.)?(en\.)?webshare\.cz/(?:#/)?file/(?P<ID>\w+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -21,8 +21,8 @@ class WebshareCz(SimpleHoster): @classmethod - def apiInfo(cls, url): - info = super(WebshareCz, cls).apiInfo(url) + def api_info(cls, url): + info = super(WebshareCz, cls).api_info(url) info['pattern'] = re.match(cls.__pattern__, url).groupdict() @@ -39,21 +39,21 @@ class WebshareCz(SimpleHoster): return info - def handleFree(self, pyfile): + def handle_free(self, pyfile): wst = self.account.getAccountData(self.user).get('wst', None) if self.account else None api_data = getURL("https://webshare.cz/api/file_link/", post={'ident': self.info['pattern']['ID'], 'wst': wst}) - self.logDebug("API data: " + api_data) + self.log_debug("API data: " + api_data) m = re.search('<link>(.+)</link>', api_data) if m: self.link = m.group(1) - def handlePremium(self, pyfile): - return self.handleFree(pyfile) + def handle_premium(self, pyfile): + return self.handle_free(pyfile) getInfo = create_getInfo(WebshareCz) diff --git a/module/plugins/hoster/WrzucTo.py b/module/plugins/hoster/WrzucTo.py index f11d03ea8..8a32832a0 100644 --- a/module/plugins/hoster/WrzucTo.py +++ b/module/plugins/hoster/WrzucTo.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class WrzucTo(SimpleHoster): __name__ = "WrzucTo" __type__ = "hoster" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?wrzuc\.to/(\w+(\.wt|\.html)|(\w+/?linki/\w+))' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -26,10 +26,10 @@ class WrzucTo(SimpleHoster): def setup(self): - self.multiDL = True + self.multi_dl = True - def handleFree(self, pyfile): + def handle_free(self, pyfile): data = dict(re.findall(r'(md5|file): "(.*?)"', self.html)) if len(data) != 2: self.error(_("No file ID")) diff --git a/module/plugins/hoster/WuploadCom.py b/module/plugins/hoster/WuploadCom.py index 73c008ae8..3263b4974 100644 --- a/module/plugins/hoster/WuploadCom.py +++ b/module/plugins/hoster/WuploadCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class WuploadCom(DeadHoster): __name__ = "WuploadCom" __type__ = "hoster" - __version__ = "0.23" + __version__ = "0.24" __pattern__ = r'http://(?:www\.)?wupload\..+?/file/((\w+/)?\d+)(/.*)?' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/X7To.py b/module/plugins/hoster/X7To.py index 8e2dd3a53..d329b5270 100644 --- a/module/plugins/hoster/X7To.py +++ b/module/plugins/hoster/X7To.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class X7To(DeadHoster): __name__ = "X7To" __type__ = "hoster" - __version__ = "0.41" + __version__ = "0.42" __pattern__ = r'http://(?:www\.)?x7\.to/' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/XFileSharingPro.py b/module/plugins/hoster/XFileSharingPro.py index f58b7f0de..860fd5309 100644 --- a/module/plugins/hoster/XFileSharingPro.py +++ b/module/plugins/hoster/XFileSharingPro.py @@ -8,7 +8,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo class XFileSharingPro(XFSHoster): __name__ = "XFileSharingPro" __type__ = "hoster" - __version__ = "0.48" + __version__ = "0.49" __pattern__ = r'https?://(?:www\.)?(?:\w+\.)*?(?P<DOMAIN>(?:[\d.]+|[\w\-^_]{3,}(?:\.[a-zA-Z]{2,}){1,2})(?:\:\d+)?)/(?:embed-)?\w{12}(?:\W|$)' @@ -49,9 +49,9 @@ class XFileSharingPro(XFSHoster): def setup(self): - self.chunkLimit = 1 - self.resumeDownload = self.premium - self.multiDL = True + self.chunk_limit = 1 + self.resume_download = self.premium + self.multi_dl = True getInfo = create_getInfo(XFileSharingPro) diff --git a/module/plugins/hoster/XHamsterCom.py b/module/plugins/hoster/XHamsterCom.py index d9441d792..db5dcdee3 100644 --- a/module/plugins/hoster/XHamsterCom.py +++ b/module/plugins/hoster/XHamsterCom.py @@ -18,7 +18,7 @@ def clean_json(json_expr): class XHamsterCom(Hoster): __name__ = "XHamsterCom" __type__ = "hoster" - __version__ = "0.13" + __version__ = "0.14" __pattern__ = r'http://(?:www\.)?xhamster\.com/movies/.+' __config__ = [("type", ".mp4;.flv", "Preferred type", ".mp4")] @@ -34,8 +34,8 @@ class XHamsterCom(Hoster): if not self.file_exists(): self.offline() - if self.getConfig('type'): - self.desired_fmt = self.getConfig('type') + if self.get_config('type'): + self.desired_fmt = self.get_config('type') pyfile.name = self.get_file_name() + self.desired_fmt self.download(self.get_file_url()) @@ -80,7 +80,7 @@ class XHamsterCom(Hoster): self.error(_("file_url not found")) file_url = file_url.group(1) long_url = srv_url + file_url - self.logDebug("long_url = " + long_url) + self.log_debug("long_url = " + long_url) else: if flashvars['file']: file_url = urllib.unquote(flashvars['file']) @@ -89,10 +89,10 @@ class XHamsterCom(Hoster): if url_mode == '3': long_url = file_url - self.logDebug("long_url = " + long_url) + self.log_debug("long_url = " + long_url) else: long_url = srv_url + "key=" + file_url - self.logDebug("long_url = " + long_url) + self.log_debug("long_url = " + long_url) return long_url diff --git a/module/plugins/hoster/XVideosCom.py b/module/plugins/hoster/XVideosCom.py index e4deccfe8..fc528bdc9 100644 --- a/module/plugins/hoster/XVideosCom.py +++ b/module/plugins/hoster/XVideosCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.Hoster import Hoster class XVideosCom(Hoster): __name__ = "XVideos.com" __type__ = "hoster" - __version__ = "0.11" + __version__ = "0.12" __pattern__ = r'http://(?:www\.)?xvideos\.com/video(\d+)' diff --git a/module/plugins/hoster/XdadevelopersCom.py b/module/plugins/hoster/XdadevelopersCom.py index 45d1e92cb..5ddd2b5bc 100644 --- a/module/plugins/hoster/XdadevelopersCom.py +++ b/module/plugins/hoster/XdadevelopersCom.py @@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class XdadevelopersCom(SimpleHoster): __name__ = "XdadevelopersCom" __type__ = "hoster" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'https?://(?:www\.)?forum\.xda-developers\.com/devdb/project/dl/\?id=\d+' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -27,12 +27,12 @@ class XdadevelopersCom(SimpleHoster): def setup(self): - self.multiDL = True - self.resumeDownload = True - self.chunkLimit = 1 + self.multi_dl = True + self.resume_download = True + self.chunk_limit = 1 - def handleFree(self, pyfile): + def handle_free(self, pyfile): self.link = pyfile.url + "&task=get" #@TODO: Revert to `get={'task': "get"}` in 0.4.10 diff --git a/module/plugins/hoster/Xdcc.py b/module/plugins/hoster/Xdcc.py index f1508f0e4..d78794f99 100644 --- a/module/plugins/hoster/Xdcc.py +++ b/module/plugins/hoster/Xdcc.py @@ -15,7 +15,7 @@ from module.utils import save_join as fs_join class Xdcc(Hoster): __name__ = "Xdcc" __type__ = "hoster" - __version__ = "0.33" + __version__ = "0.34" __config__ = [("nick", "str", "Nickname", "pyload"), ("ident", "str", "Ident", "pyloadident"), @@ -29,7 +29,7 @@ class Xdcc(Hoster): def setup(self): self.debug = 0 #: 0,1,2 self.timeout = 30 - self.multiDL = False + self.multi_dl = False def process(self, pyfile): @@ -39,8 +39,8 @@ class Xdcc(Hoster): self.pyfile = pyfile for _i in xrange(0, 3): try: - nmn = self.doDownload(pyfile.url) - self.logDebug("Download of %s finished." % nmn) + nmn = self.do_download(pyfile.url) + self.log_debug("Download of %s finished." % nmn) return except socket.error, e: if hasattr(e, "errno"): @@ -49,8 +49,8 @@ class Xdcc(Hoster): errno = e.args[0] if errno == 10054: - self.logDebug("Server blocked our ip, retry in 5 min") - self.setWait(300) + self.log_debug("Server blocked our ip, retry in 5 min") + self.set_wait(300) self.wait() continue @@ -59,7 +59,7 @@ class Xdcc(Hoster): self.fail(_("Server blocked our ip, retry again later manually")) - def doDownload(self, url): + def do_download(self, url): self.pyfile.setStatus("waiting") #: real link m = re.match(r'xdcc://(.*?)/#?(.*?)/(.*?)/#?(\d+)/?', url) @@ -67,9 +67,9 @@ class Xdcc(Hoster): chan = m.group(2) bot = m.group(3) pack = m.group(4) - nick = self.getConfig('nick') - ident = self.getConfig('ident') - real = self.getConfig('realname') + nick = self.get_config('nick') + ident = self.get_config('ident') + real = self.get_config('realname') temp = server.split(':') ln = len(temp) @@ -91,7 +91,7 @@ class Xdcc(Hoster): sock.send("NICK %s\r\n" % nick) sock.send("USER %s %s bla :%s\r\n" % (ident, host, real)) - self.setWait(3) + self.set_wait(3) self.wait() sock.send("JOIN #%s\r\n" % chan) @@ -153,10 +153,10 @@ class Xdcc(Hoster): if nick == msg['target'][0:len(nick)] and "PRIVMSG" == msg['action']: if msg['text'] == "\x01VERSION\x01": - self.logDebug("Sending CTCP VERSION") + self.log_debug("Sending CTCP VERSION") sock.send("NOTICE %s :%s\r\n" % (msg['origin'], "pyLoad! IRC Interface")) elif msg['text'] == "\x01TIME\x01": - self.logDebug("Sending CTCP TIME") + self.log_debug("Sending CTCP TIME") sock.send("NOTICE %s :%d\r\n" % (msg['origin'], time.time())) elif msg['text'] == "\x01LAG\x01": pass #: don't know how to answer @@ -192,17 +192,17 @@ class Xdcc(Hoster): download_folder = self.core.config.get("general", "download_folder") filename = fs_join(download_folder, packname) - self.logInfo(_("Downloading %s from %s:%d") % (packname, ip, port)) + self.log_info(_("Downloading %s from %s:%d") % (packname, ip, port)) self.pyfile.setStatus("downloading") newname = self.req.download(ip, port, filename, sock, self.pyfile.setProgress) if newname and newname != filename: - self.logInfo(_("%(name)s saved as %(newname)s") % {"name": self.pyfile.name, "newname": newname}) + self.log_info(_("%(name)s saved as %(newname)s") % {"name": self.pyfile.name, "newname": newname}) filename = newname #: kill IRC socket #: sock.send("QUIT :byebye\r\n") sock.close() - self.lastDownload = filename - return self.lastDownload + self.last_download = filename + return self.last_download diff --git a/module/plugins/hoster/YadiSk.py b/module/plugins/hoster/YadiSk.py index 3b4c9d985..5c0c1a800 100644 --- a/module/plugins/hoster/YadiSk.py +++ b/module/plugins/hoster/YadiSk.py @@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class YadiSk(SimpleHoster): __name__ = "YadiSk" __type__ = "hoster" - __version__ = "0.05" + __version__ = "0.06" __pattern__ = r'https?://yadi\.sk/d/[\w-]+' @@ -23,8 +23,8 @@ class YadiSk(SimpleHoster): @classmethod - def getInfo(cls, url="", html=""): - info = super(YadiSk, cls).getInfo(url, html) + def get_info(cls, url="", html=""): + info = super(YadiSk, cls).get_info(url, html) if html: if 'idclient' not in info: @@ -59,12 +59,12 @@ class YadiSk(SimpleHoster): def setup(self): - self.resumeDownload = False - self.multiDL = False - self.chunkLimit = 1 + self.resume_download = False + self.multi_dl = False + self.chunk_limit = 1 - def handleFree(self, pyfile): + def handle_free(self, pyfile): if any(True for _k in ['id', 'sk', 'version', 'idclient'] if _k not in self.info): self.error(_("Missing JSON data")) diff --git a/module/plugins/hoster/YibaishiwuCom.py b/module/plugins/hoster/YibaishiwuCom.py index 00185c05a..e63cd89d0 100644 --- a/module/plugins/hoster/YibaishiwuCom.py +++ b/module/plugins/hoster/YibaishiwuCom.py @@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class YibaishiwuCom(SimpleHoster): __name__ = "YibaishiwuCom" __type__ = "hoster" - __version__ = "0.14" + __version__ = "0.15" __pattern__ = r'http://(?:www\.)?(?:u\.)?115\.com/file/(?P<ID>\w+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -27,14 +27,14 @@ class YibaishiwuCom(SimpleHoster): LINK_FREE_PATTERN = r'(/\?ct=(pickcode|download)[^"\']+)' - def handleFree(self, pyfile): + def handle_free(self, pyfile): m = re.search(self.LINK_FREE_PATTERN, self.html) if m is None: self.error(_("LINK_FREE_PATTERN not found")) url = m.group(1) - self.logDebug(('FREEUSER' if m.group(2) == 'download' else 'GUEST') + ' URL', url) + self.log_debug(('FREEUSER' if m.group(2) == 'download' else 'GUEST') + ' URL', url) res = json_loads(self.load(urlparse.urljoin("http://115.com", url), decode=False)) if "urls" in res: @@ -49,7 +49,7 @@ class YibaishiwuCom(SimpleHoster): for mr in mirrors: try: self.link = mr['url'].replace("\\", "") - self.logDebug("Trying URL: " + self.link) + self.log_debug("Trying URL: " + self.link) break except Exception: continue diff --git a/module/plugins/hoster/YoupornCom.py b/module/plugins/hoster/YoupornCom.py index fa40714c6..959ee83a5 100644 --- a/module/plugins/hoster/YoupornCom.py +++ b/module/plugins/hoster/YoupornCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.Hoster import Hoster class YoupornCom(Hoster): __name__ = "YoupornCom" __type__ = "hoster" - __version__ = "0.21" + __version__ = "0.22" __pattern__ = r'http://(?:www\.)?youporn\.com/watch/.+' diff --git a/module/plugins/hoster/YourfilesTo.py b/module/plugins/hoster/YourfilesTo.py index 7db6129e2..c6e106027 100644 --- a/module/plugins/hoster/YourfilesTo.py +++ b/module/plugins/hoster/YourfilesTo.py @@ -9,7 +9,7 @@ from module.plugins.internal.Hoster import Hoster class YourfilesTo(Hoster): __name__ = "YourfilesTo" __type__ = "hoster" - __version__ = "0.23" + __version__ = "0.24" __pattern__ = r'http://(?:www\.)?yourfiles\.(to|biz)/\?d=\w+' @@ -32,7 +32,7 @@ class YourfilesTo(Hoster): self.pyfile.name = self.get_file_name() wait_time = self.get_waiting_time() - self.setWait(wait_time) + self.set_wait(wait_time) self.wait() diff --git a/module/plugins/hoster/YoutubeCom.py b/module/plugins/hoster/YoutubeCom.py index c4e1ebf28..248fc3715 100644 --- a/module/plugins/hoster/YoutubeCom.py +++ b/module/plugins/hoster/YoutubeCom.py @@ -33,7 +33,7 @@ def which(program): class YoutubeCom(Hoster): __name__ = "YoutubeCom" __type__ = "hoster" - __version__ = "0.43" + __version__ = "0.44" __pattern__ = r'https?://(?:[^/]*\.)?(youtube\.com|youtu\.be)/watch\?(?:.*&)?v=.+' __config__ = [("quality", "sd;hd;fullhd;240p;360p;480p;720p;1080p;3072p", "Quality Setting" , "hd" ), @@ -80,8 +80,8 @@ class YoutubeCom(Hoster): def setup(self): - self.resumeDownload = True - self.multiDL = True + self.resume_download = True + self.multi_dl = True def process(self, pyfile): @@ -92,10 +92,10 @@ class YoutubeCom(Hoster): self.offline() if "We have been receiving a large volume of requests from your network." in html: - self.tempOffline() + self.temp_offline() - #get config - use3d = self.getConfig('3d') + # get config + use3d = self.get_config('3d') if use3d: quality = {"sd": 82, "hd": 84, "fullhd": 85, "240p": 83, "360p": 82, @@ -104,27 +104,27 @@ class YoutubeCom(Hoster): quality = {"sd": 18, "hd": 22, "fullhd": 37, "240p": 5, "360p": 18, "480p": 35, "720p": 22, "1080p": 37, "3072p": 38} - desired_fmt = self.getConfig('fmt') + desired_fmt = self.get_config('fmt') if not desired_fmt: - desired_fmt = quality.get(self.getConfig('quality'), 18) + desired_fmt = quality.get(self.get_config('quality'), 18) elif desired_fmt not in self.formats: - self.logWarning(_("FMT %d unknown, using default") % desired_fmt) + self.log_warning(_("FMT %d unknown, using default") % desired_fmt) desired_fmt = 0 - #parse available streams + # parse available streams streams = re.search(r'"url_encoded_fmt_stream_map":"(.+?)",', html).group(1) streams = [x.split('\u0026') for x in streams.split(',')] streams = [dict((y.split('=', 1)) for y in x) for x in streams] streams = [(int(x['itag']), urllib.unquote(x['url'])) for x in streams] - #: self.logDebug("Found links: %s" % streams) + #: self.log_debug("Found links: %s" % streams) - self.logDebug("AVAILABLE STREAMS: %s" % [x[0] for x in streams]) + self.log_debug("AVAILABLE STREAMS: %s" % [x[0] for x in streams]) - #build dictionary of supported itags (3D/2D) - allowed = lambda x: self.getConfig(self.formats[x][0]) + # build dictionary of supported itags (3D/2D) + allowed = lambda x: self.get_config(self.formats[x][0]) streams = [x for x in streams if x[0] in self.formats and allowed(x[0])] if not streams: @@ -132,36 +132,36 @@ class YoutubeCom(Hoster): fmt_dict = dict([x for x in streams if self.formats[x[0]][4] == use3d] or streams) - self.logDebug("DESIRED STREAM: ITAG:%d (%s) %sfound, %sallowed" % + self.log_debug("DESIRED STREAM: ITAG:%d (%s) %sfound, %sallowed" % (desired_fmt, "%s %dx%d Q:%d 3D:%s" % self.formats[desired_fmt], "" if desired_fmt in fmt_dict else "NOT ", "" if allowed(desired_fmt) else "NOT ")) - #return fmt nearest to quality index + # return fmt nearest to quality index if desired_fmt in fmt_dict and allowed(desired_fmt): fmt = desired_fmt else: sel = lambda x: self.formats[x][3] #: select quality index comp = lambda x, y: abs(sel(x) - sel(y)) - self.logDebug("Choosing nearest fmt: %s" % [(x, allowed(x), comp(x, desired_fmt)) for x in fmt_dict.keys()]) + self.log_debug("Choosing nearest fmt: %s" % [(x, allowed(x), comp(x, desired_fmt)) for x in fmt_dict.keys()]) fmt = reduce(lambda x, y: x if comp(x, desired_fmt) <= comp(y, desired_fmt) and sel(x) > sel(y) else y, fmt_dict.keys()) - self.logDebug("Chosen fmt: %s" % fmt) + self.log_debug("Chosen fmt: %s" % fmt) url = fmt_dict[fmt] - self.logDebug("URL: %s" % url) + self.log_debug("URL: %s" % url) - #set file name + # set file name file_suffix = self.formats[fmt][0] if fmt in self.formats else ".flv" file_name_pattern = '<meta name="title" content="(.+?)">' name = re.search(file_name_pattern, html).group(1).replace("/", "") #: Cleaning invalid characters from the file name name = name.encode('ascii', 'replace') - for c in self.invalidChars: + for c in self.invalid_chars: name = name.replace(c, '_') pyfile.name = html_unescape(name) diff --git a/module/plugins/hoster/ZDF.py b/module/plugins/hoster/ZDF.py index 2a4708a0d..4829f1bf8 100644 --- a/module/plugins/hoster/ZDF.py +++ b/module/plugins/hoster/ZDF.py @@ -10,7 +10,7 @@ from module.plugins.internal.Hoster import Hoster class ZDF(Hoster): __name__ = "ZDF Mediathek" __type__ = "hoster" - __version__ = "0.81" + __version__ = "0.82" __pattern__ = r'http://(?:www\.)?zdf\.de/ZDFmediathek/\D*(\d+)\D*' diff --git a/module/plugins/hoster/ZShareNet.py b/module/plugins/hoster/ZShareNet.py index 6e4508a18..10925b1b8 100644 --- a/module/plugins/hoster/ZShareNet.py +++ b/module/plugins/hoster/ZShareNet.py @@ -6,7 +6,7 @@ from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo class ZShareNet(DeadHoster): __name__ = "ZShareNet" __type__ = "hoster" - __version__ = "0.21" + __version__ = "0.22" __pattern__ = r'https?://(?:ww[2w]\.)?zshares?\.net/.+' __config__ = [] #@TODO: Remove in 0.4.10 diff --git a/module/plugins/hoster/ZahikiNet.py b/module/plugins/hoster/ZahikiNet.py index b2705662b..ad0abc098 100644 --- a/module/plugins/hoster/ZahikiNet.py +++ b/module/plugins/hoster/ZahikiNet.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class ZahikiNet(SimpleHoster): __name__ = "ZahikiNet" __type__ = "hoster" - __version__ = "0.01" + __version__ = "0.02" __pattern__ = r'https?://(?:www\.)?zahiki\.net/\w+/.+' @@ -24,9 +24,9 @@ class ZahikiNet(SimpleHoster): def setup(self): - self.resumeDownload = True - self.multiDL = True - self.limitDL = 6 + self.resume_download = True + self.multi_dl = True + self.limit_dl = 6 getInfo = create_getInfo(ZahikiNet) diff --git a/module/plugins/hoster/ZeveraCom.py b/module/plugins/hoster/ZeveraCom.py index 85a813acf..2dfd9896c 100644 --- a/module/plugins/hoster/ZeveraCom.py +++ b/module/plugins/hoster/ZeveraCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo class ZeveraCom(MultiHoster): __name__ = "ZeveraCom" __type__ = "hoster" - __version__ = "0.31" + __version__ = "0.32" __pattern__ = r'https?://(?:www\.)zevera\.com/(getFiles\.ashx|Members/download\.ashx)\?.*ourl=.+' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -24,7 +24,7 @@ class ZeveraCom(MultiHoster): FILE_ERRORS = [("Error", r'action="ErrorDownload.aspx')] - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): self.link = "https://%s/getFiles.ashx?ourl=%s" % (self.account.HOSTER_DOMAIN, pyfile.url) diff --git a/module/plugins/hoster/ZippyshareCom.py b/module/plugins/hoster/ZippyshareCom.py index 302554624..80d495f78 100644 --- a/module/plugins/hoster/ZippyshareCom.py +++ b/module/plugins/hoster/ZippyshareCom.py @@ -12,7 +12,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class ZippyshareCom(SimpleHoster): __name__ = "ZippyshareCom" __type__ = "hoster" - __version__ = "0.79" + __version__ = "0.80" __pattern__ = r'http://www\d{0,2}\.zippyshare\.com/v(/|iew\.jsp.*key=)(?P<KEY>[\w^_]+)' __config__ = [("use_premium", "bool", "Use premium account if available", True)] @@ -33,12 +33,12 @@ class ZippyshareCom(SimpleHoster): def setup(self): - self.chunkLimit = -1 - self.multiDL = True - self.resumeDownload = True + self.chunk_limit = -1 + self.multi_dl = True + self.resume_download = True - def handleFree(self, pyfile): + def handle_free(self, pyfile): recaptcha = ReCaptcha(self) captcha_key = recaptcha.detect_key() @@ -65,7 +65,7 @@ class ZippyshareCom(SimpleHoster): #: meant to be populated with the initialization of all the DOM elements found in the scripts initScripts = set() - def replElementById(element): + def repl_element_by_id(element): id = element.group(1) #: id might be either 'x' (a real id) or x (a variable) attr = element.group(4) #: attr might be None @@ -81,7 +81,7 @@ class ZippyshareCom(SimpleHoster): #: handle all getElementById reVar = r'document.getElementById\(([\'"\w-]+)\)(\.)?(getAttribute\([\'"])?(\w+)?([\'"]\))?' - scripts = [re.sub(reVar, replElementById, script) for script in scripts if script] + scripts = [re.sub(reVar, repl_element_by_id, script) for script in scripts if script] #: add try/catch in JS to handle deliberate errors scripts = ['\n'.join(('try{', script, '} catch(err){}')) for script in scripts] diff --git a/module/plugins/internal/Account.py b/module/plugins/internal/Account.py index d2efe7996..9e0efaee6 100644 --- a/module/plugins/internal/Account.py +++ b/module/plugins/internal/Account.py @@ -16,7 +16,7 @@ class WrongPassword(Exception): class Account(Plugin): __name__ = "Account" __type__ = "account" - __version__ = "0.03" + __version__ = "0.04" __description__ = """Base account plugin""" __license__ = "GPLv3" @@ -37,7 +37,7 @@ class Account(Plugin): self.init() - self.setAccounts(accounts) + self.set_accounts(accounts) def init(self): @@ -60,18 +60,18 @@ class Account(Plugin): #: set timestamp for login self.timestamps[user] = time.time() - req = self.getAccountRequest(user) + req = self.get_account_request(user) try: self.login(user, data, req) except WrongPassword: - self.logWarning( + self.log_warning( _("Could not login with account %(user)s | %(msg)s") % {"user": user, "msg": _("Wrong Password")}) success = data['valid'] = False except Exception, e: - self.logWarning( + self.log_warning( _("Could not login with account %(user)s | %(msg)s") % {"user": user, "msg": e}) success = data['valid'] = False @@ -88,7 +88,7 @@ class Account(Plugin): def relogin(self, user): - req = self.getAccountRequest(user) + req = self.get_account_request(user) if req: req.cj.clear() req.close() @@ -98,14 +98,14 @@ class Account(Plugin): return self._login(user, self.accounts[user]) - def setAccounts(self, accounts): + def set_accounts(self, accounts): self.accounts = accounts for user, data in self.accounts.iteritems(): self._login(user, data) self.infos[user] = {} - def updateAccounts(self, user, password=None, options={}): + def update_accounts(self, user, password=None, options={}): """ Updates account and return true if anything changed """ @@ -125,7 +125,12 @@ class Account(Plugin): return True - def removeAccount(self, user): + #: Deprecated method, use `update_accounts` instead + def updateAccounts(self, *args, **kwargs): + return self.update_accounts(*args, **kwargs) + + + def remove_account(self, user): if user in self.accounts: del self.accounts[user] if user in self.infos: @@ -134,28 +139,33 @@ class Account(Plugin): del self.timestamps[user] + #: Deprecated method, use `remove_account` instead + def removeAccount(self, *args, **kwargs): + return self.remove_account(*args, **kwargs) + + @lock - def getAccountInfo(self, name, force=False): + def get_account_info(self, name, force=False): """ Retrieve account infos for an user, do **not** overwrite this method!\\ - just use it to retrieve infos in hoster plugins. see `loadAccountInfo` + just use it to retrieve infos in hoster plugins. see `load_account_info` :param name: username :param force: reloads cached account information :return: dictionary with information """ - data = Account.loadAccountInfo(self, name) + data = Account.load_account_info(self, name) if force or name not in self.infos: - self.logDebug("Get Account Info for %s" % name) - req = self.getAccountRequest(name) + self.log_debug("Get Account Info for %s" % name) + req = self.get_account_request(name) try: - infos = self.loadAccountInfo(name, req) + infos = self.load_account_info(name, req) if not type(infos) == dict: raise Exception("Wrong return format") except Exception, e: - infos = super(self.__class__, self).loadAccountInfo(name, req) + infos = super(self.__class__, self).load_account_info(name, req) infos['error'] = str(e) if self.core.debug: @@ -164,24 +174,24 @@ class Account(Plugin): if req: req.close() - self.logDebug("Account Info: %s" % infos) + self.log_debug("Account Info: %s" % infos) infos['timestamp'] = time.time() self.infos[name] = infos elif "timestamp" in self.infos[name] and self.infos[name]['timestamp'] + self.info_threshold * 60 < time.time(): - self.logDebug("Reached timeout for account data") - self.scheduleRefresh(name) + self.log_debug("Reached timeout for account data") + self.schedule_refresh(name) data.update(self.infos[name]) return data - def isPremium(self, user): - info = self.getAccountInfo(user) + def is_premium(self, user): + info = self.get_account_info(user) return info['premium'] - def loadAccountInfo(self, name, req=None): + def load_account_info(self, name, req=None): """ This should be overwritten in account plugin,\ and retrieving account information for user @@ -202,20 +212,25 @@ class Account(Plugin): "type" : self.__name__} - def getAllAccounts(self, force=False): - return [self.getAccountInfo(user, force) for user, data in self.accounts.iteritems()] + def get_all_accounts(self, force=False): + return [self.get_account_info(user, force) for user, data in self.accounts.iteritems()] - def getAccountRequest(self, user=None): + #: Deprecated method, use `get_all_accounts` instead + def getAllAccounts(self, *args, **kwargs): + return self.get_all_accounts(*args, **kwargs) + + + def get_account_request(self, user=None): if not user: - user, data = self.selectAccount() + user, data = self.select_account() return self.core.requestFactory.getRequest(self.__name__, user) - def getAccountCookies(self, user=None): + def get_account_cookies(self, user=None): if not user: - user, data = self.selectAccount() + user, data = self.select_account() if not user: return None @@ -223,11 +238,11 @@ class Account(Plugin): return cj - def getAccountData(self, user): + def get_account_data(self, user): return self.accounts[user] - def selectAccount(self): + def select_account(self): """ Returns an valid account name and data """ @@ -244,7 +259,7 @@ class Account(Plugin): if not compare_time(start.split(":"), end.split(":")): continue except Exception: - self.logWarning(_("Your Time %s has wrong format, use: 1:22-3:44") % time_data) + self.log_warning(_("Your Time %s has wrong format, use: 1:22-3:44") % time_data) if user in self.infos: if "validuntil" in self.infos[user]: @@ -262,52 +277,57 @@ class Account(Plugin): return random.choice(usable) - def canUse(self): - return self.selectAccount() != (None, None) + def can_use(self): + return self.select_account() != (None, None) - def parseTraffic(self, value, unit=None): #: return kilobytes + def parse_traffic(self, value, unit=None): #: return kilobytes if not unit and not isinstance(value, basestring): unit = "KB" return parseFileSize(value, unit) - def wrongPassword(self): + def wrong_password(self): raise WrongPassword def empty(self, user): if user in self.infos: - self.logWarning(_("Account %s has not enough traffic, checking again in 30min") % user) + self.log_warning(_("Account %s has not enough traffic, checking again in 30min") % user) self.infos[user].update({"trafficleft": 0}) - self.scheduleRefresh(user, 30 * 60) + self.schedule_refresh(user, 30 * 60) def expired(self, user): if user in self.infos: - self.logWarning(_("Account %s is expired, checking again in 1h") % user) + self.log_warning(_("Account %s is expired, checking again in 1h") % user) self.infos[user].update({"validuntil": time.time() - 1}) - self.scheduleRefresh(user, 60 * 60) + self.schedule_refresh(user, 60 * 60) - def scheduleRefresh(self, user, time=0, force=True): + def schedule_refresh(self, user, time=0, force=True): """ Add task to refresh account info to sheduler """ - self.logDebug("Scheduled Account refresh for %s in %s seconds." % (user, time)) - self.core.scheduler.addJob(time, self.getAccountInfo, [user, force]) + self.log_debug("Scheduled Account refresh for %s in %s seconds." % (user, time)) + self.core.scheduler.addJob(time, self.get_account_info, [user, force]) + + + #: Deprecated method, use `schedule_refresh` instead + def scheduleRefresh(self, *args, **kwargs): + return self.schedule_refresh(*args, **kwargs) @lock - def checkLogin(self, user): + def check_login(self, user): """ Checks if user is still logged in """ if user in self.timestamps: if self.login_timeout > 0 and self.timestamps[user] + self.login_timeout * 60 < time.time(): - self.logDebug("Reached login timeout for %s" % user) + self.log_debug("Reached login timeout for %s" % user) return self.relogin(user) else: return True diff --git a/module/plugins/internal/AdYouLike.py b/module/plugins/internal/AdYouLike.py index f623ed268..07e7e4d17 100644 --- a/module/plugins/internal/AdYouLike.py +++ b/module/plugins/internal/AdYouLike.py @@ -9,7 +9,7 @@ from module.plugins.internal.Captcha import Captcha class AdYouLike(Captcha): __name__ = "AdYouLike" __type__ = "captcha" - __version__ = "0.06" + __version__ = "0.07" __description__ = """AdYouLike captcha service plugin""" __license__ = "GPLv3" @@ -27,10 +27,10 @@ class AdYouLike(Captcha): n = re.search(self.CALLBACK_PATTERN, html) if m and n: self.key = (m.group(1).strip(), n.group(1).strip()) - self.logDebug("Ayl: %s | Callback: %s" % self.key) + self.log_debug("Ayl: %s | Callback: %s" % self.key) return self.key #: key is the tuple(ayl, callback) else: - self.logWarning("Ayl or callback pattern not found") + self.log_warning("Ayl or callback pattern not found") return None @@ -51,7 +51,7 @@ class AdYouLike(Captcha): except AttributeError: self.fail(_("AdYouLike challenge pattern not found")) - self.logDebug("Challenge: %s" % challenge) + self.log_debug("Challenge: %s" % challenge) return self.result(ayl, challenge), challenge @@ -86,6 +86,6 @@ class AdYouLike(Captcha): '_ayl_token_challenge': challenge['token'], '_ayl_response' : response} - self.logDebug("Result: %s" % result) + self.log_debug("Result: %s" % result) return result diff --git a/module/plugins/internal/AdsCaptcha.py b/module/plugins/internal/AdsCaptcha.py index e058352dd..b45a6dfda 100644 --- a/module/plugins/internal/AdsCaptcha.py +++ b/module/plugins/internal/AdsCaptcha.py @@ -9,7 +9,7 @@ from module.plugins.internal.Captcha import Captcha class AdsCaptcha(Captcha): __name__ = "AdsCaptcha" __type__ = "captcha" - __version__ = "0.09" + __version__ = "0.10" __description__ = """AdsCaptcha captcha service plugin""" __license__ = "GPLv3" @@ -27,10 +27,10 @@ class AdsCaptcha(Captcha): n = re.search(self.CAPTCHAID_PATTERN, html) if m and n: self.key = (m.group(1).strip(), n.group(1).strip()) #: key is the tuple(PublicKey, CaptchaId) - self.logDebug("Key: %s | ID: %s" % self.key) + self.log_debug("Key: %s | ID: %s" % self.key) return self.key else: - self.logWarning("Key or id pattern not found") + self.log_warning("Key or id pattern not found") return None @@ -47,7 +47,7 @@ class AdsCaptcha(Captcha): except AttributeError: self.fail(_("AdsCaptcha challenge pattern not found")) - self.logDebug("Challenge: %s" % challenge) + self.log_debug("Challenge: %s" % challenge) return self.result(server, challenge), challenge @@ -58,6 +58,6 @@ class AdsCaptcha(Captcha): cookies=True, imgtype="jpg") - self.logDebug("Result: %s" % result) + self.log_debug("Result: %s" % result) return result diff --git a/module/plugins/internal/Captcha.py b/module/plugins/internal/Captcha.py index 4629c9522..50ebea89c 100644 --- a/module/plugins/internal/Captcha.py +++ b/module/plugins/internal/Captcha.py @@ -6,7 +6,7 @@ from module.plugins.internal.Plugin import Plugin class Captcha(Plugin): __name__ = "Captcha" __type__ = "captcha" - __version__ = "0.30" + __version__ = "0.31" __description__ = """Base captcha service plugin""" __license__ = "GPLv3" diff --git a/module/plugins/internal/Container.py b/module/plugins/internal/Container.py index fc1a93606..91b5a6f76 100644 --- a/module/plugins/internal/Container.py +++ b/module/plugins/internal/Container.py @@ -12,7 +12,7 @@ from module.utils import save_join as fs_join class Container(Crypter): __name__ = "Container" __type__ = "container" - __version__ = "0.04" + __version__ = "0.05" __pattern__ = r'^unmatchable$' __config__ = [] #: [("name", "type", "desc", "default")] diff --git a/module/plugins/internal/Crypter.py b/module/plugins/internal/Crypter.py index d8cda17d4..f6d3528fd 100644 --- a/module/plugins/internal/Crypter.py +++ b/module/plugins/internal/Crypter.py @@ -9,7 +9,7 @@ from module.utils import save_path as safe_filename class Crypter(Hoster): __name__ = "Crypter" __type__ = "crypter" - __version__ = "0.04" + __version__ = "0.05" __pattern__ = r'^unmatchable$' __config__ = [("use_subfolder", "bool", "Save package to subfolder", True), #: Overrides core.config.get("general", "folder_per_package") @@ -69,11 +69,11 @@ class Crypter(Hoster): package_queue = self.pyfile.package().queue folder_per_package = self.core.config.get("general", "folder_per_package") - use_subfolder = self.getConfig('use_subfolder', folder_per_package) - subfolder_per_package = self.getConfig('subfolder_per_package', True) + use_subfolder = self.get_config('use_subfolder', folder_per_package) + subfolder_per_package = self.get_config('subfolder_per_package', True) for name, links, folder in self.packages: - self.logDebug("Parsed package: %s" % name, + self.log_debug("Parsed package: %s" % name, "%d links" % len(links), "Saved to folder: %s" % folder if folder else "Saved to download folder") @@ -88,14 +88,14 @@ class Crypter(Hoster): if use_subfolder: if not subfolder_per_package: setFolder(package_folder) - self.logDebug("Set package %(name)s folder to: %(folder)s" % {"name": name, "folder": folder}) + self.log_debug("Set package %(name)s folder to: %(folder)s" % {"name": name, "folder": folder}) elif not folder_per_package or name != folder: if not folder: folder = urlparse.urlparse(name).path.split("/")[-1] setFolder(safe_filename(folder)) - self.logDebug("Set package %(name)s folder to: %(folder)s" % {"name": name, "folder": folder}) + self.log_debug("Set package %(name)s folder to: %(folder)s" % {"name": name, "folder": folder}) elif folder_per_package: setFolder(None) diff --git a/module/plugins/internal/DeadCrypter.py b/module/plugins/internal/DeadCrypter.py index ef0d12b91..d79551b52 100644 --- a/module/plugins/internal/DeadCrypter.py +++ b/module/plugins/internal/DeadCrypter.py @@ -7,7 +7,7 @@ from module.plugins.internal.SimpleCrypter import create_getInfo class DeadCrypter(Crypter): __name__ = "DeadCrypter" __type__ = "crypter" - __version__ = "0.06" + __version__ = "0.07" __pattern__ = r'^unmatchable$' @@ -17,8 +17,8 @@ class DeadCrypter(Crypter): @classmethod - def apiInfo(cls, *args, **kwargs): - api = super(DeadCrypter, cls).apiInfo(*args, **kwargs) + def api_info(cls, *args, **kwargs): + api = super(DeadCrypter, cls).api_info(*args, **kwargs) api['status'] = 1 return api diff --git a/module/plugins/internal/DeadHoster.py b/module/plugins/internal/DeadHoster.py index accb15a78..86f4381a3 100644 --- a/module/plugins/internal/DeadHoster.py +++ b/module/plugins/internal/DeadHoster.py @@ -7,7 +7,7 @@ from module.plugins.internal.SimpleHoster import create_getInfo class DeadHoster(Hoster): __name__ = "DeadHoster" __type__ = "hoster" - __version__ = "0.16" + __version__ = "0.17" __pattern__ = r'^unmatchable$' @@ -17,8 +17,8 @@ class DeadHoster(Hoster): @classmethod - def apiInfo(cls, *args, **kwargs): - api = super(DeadHoster, cls).apiInfo(*args, **kwargs) + def api_info(cls, *args, **kwargs): + api = super(DeadHoster, cls).api_info(*args, **kwargs) api['status'] = 1 return api diff --git a/module/plugins/internal/Extractor.py b/module/plugins/internal/Extractor.py index f73388d8c..60d8b3b3b 100644 --- a/module/plugins/internal/Extractor.py +++ b/module/plugins/internal/Extractor.py @@ -22,7 +22,7 @@ class PasswordError(Exception): class Extractor(Plugin): __name__ = "Extractor" __type__ = "extractor" - __version__ = "0.24" + __version__ = "0.25" __description__ = """Base extractor plugin""" __license__ = "GPLv3" @@ -36,18 +36,18 @@ class Extractor(Plugin): @classmethod - def isArchive(cls, filename): + def is_archive(cls, filename): name = os.path.basename(filename).lower() return any(name.endswith(ext) for ext in cls.EXTENSIONS) @classmethod - def isMultipart(cls, filename): + def is_multipart(cls, filename): return False @classmethod - def isUsable(cls): + def is_usable(cls): """ Check if system statisfy dependencies :return: boolean @@ -56,7 +56,7 @@ class Extractor(Plugin): @classmethod - def getTargets(cls, files_ids): + def get_targets(cls, files_ids): """ Filter suited targets from list of filename id tuple list :param files_ids: List of filepathes @@ -97,7 +97,7 @@ class Extractor(Plugin): self.files = [] #: Store extracted files here pyfile = self.manager.core.files.getFile(fid) if fid else None - self.notifyProgress = lambda x: pyfile.setProgress(x) if pyfile else lambda x: None + self.notify_progress = lambda x: pyfile.setProgress(x) if pyfile else lambda x: None def init(self): @@ -149,7 +149,7 @@ class Extractor(Plugin): raise NotImplementedError - def getDeleteFiles(self): + def get_delete_files(self): """ Return list of files to delete, do *not* delete them here. diff --git a/module/plugins/internal/Hook.py b/module/plugins/internal/Hook.py index 5959089b5..7ef8f0189 100644 --- a/module/plugins/internal/Hook.py +++ b/module/plugins/internal/Hook.py @@ -25,7 +25,7 @@ def threaded(fn): class Hook(Plugin): __name__ = "Hook" __type__ = "hook" - __version__ = "0.08" + __version__ = "0.09" __config__ = [] #: [("name", "type", "desc", "default")] __threaded__ = [] #@TODO: Remove in 0.4.10 @@ -72,7 +72,7 @@ class Hook(Plugin): self.event_map = None if self.event_list: - self.logDebug("Deprecated method `event_list`, use `event_map` instead") + self.log_debug("Deprecated method `event_list`, use `event_map` instead") for f in self.event_list: self.manager.addEvent(f, getattr(self, f)) @@ -85,8 +85,8 @@ class Hook(Plugin): #: Deprecated method, use `init_periodical` instead - def initPeriodical(self): - return self.init_periodical() + def initPeriodical(self, *args, **kwargs): + return self.init_periodical(*args, **kwargs) def _periodical(self, threaded): @@ -98,7 +98,7 @@ class Hook(Plugin): self.periodical() except Exception, e: - self.logError(_("Error executing hook: %s") % e) + self.log_error(_("Error executing hook: %s") % e) if self.core.debug: traceback.print_exc() @@ -124,12 +124,12 @@ class Hook(Plugin): """ Checks if hook is activated """ - return self.getConfig("activated") + return self.get_config("activated") #: Deprecated method, use `is_activated` instead - def isActivated(self): - return self.is_activated() + def isActivated(self, *args, **kwargs): + return self.is_activated(*args, **kwargs) def deactivate(self): @@ -140,8 +140,8 @@ class Hook(Plugin): #: Deprecated method, use `deactivate` instead - def unload(self): - return self.deactivate() + def unload(self, *args, **kwargs): + return self.deactivate(*args, **kwargs) def activate(self): @@ -152,8 +152,8 @@ class Hook(Plugin): #: Deprecated method, use `activate` instead - def coreReady(self): - return self.activate() + def coreReady(self, *args, **kwargs): + return self.activate(*args, **kwargs) def exit(self): @@ -164,8 +164,8 @@ class Hook(Plugin): #: Deprecated method, use `exit` instead - def coreExiting(self): - return self.exit() + def coreExiting(self, *args, **kwargs): + return self.exit(*args, **kwargs) def download_preparing(self, pyfile): @@ -173,8 +173,8 @@ class Hook(Plugin): #: Deprecated method, use `download_preparing` instead - def downloadPreparing(self, pyfile): - return self.download_preparing(pyfile) + def downloadPreparing(self, *args, **kwargs): + return self.download_preparing(*args, **kwargs) def download_finished(self, pyfile): @@ -182,8 +182,8 @@ class Hook(Plugin): #: Deprecated method, use `download_finished` instead - def downloadFinished(self, pyfile): - return self.download_finished(pyfile) + def downloadFinished(self, *args, **kwargs): + return self.download_finished(*args, **kwargs) def download_failed(self, pyfile): @@ -191,8 +191,8 @@ class Hook(Plugin): #: Deprecated method, use `download_failed` instead - def downloadFailed(self, pyfile): - return self.download_failed(pyfile) + def downloadFailed(self, *args, **kwargs): + return self.download_failed(*args, **kwargs) def package_finished(self, pypack): @@ -200,8 +200,8 @@ class Hook(Plugin): #: Deprecated method, use `package_finished` instead - def packageFinished(self, pypack): - return self.package_finished(pypack) + def packageFinished(self, *args, **kwargs): + return self.package_finished(*args, **kwargs) def before_reconnect(self, ip): @@ -209,8 +209,8 @@ class Hook(Plugin): #: Deprecated method, use `before_reconnect` instead - def beforeReconnecting(self, ip): - return self.before_reconnect(ip) + def beforeReconnecting(self, *args, **kwargs): + return self.before_reconnect(*args, **kwargs) def after_reconnect(self, ip, oldip): @@ -230,8 +230,8 @@ class Hook(Plugin): #: Deprecated method, use `captcha_task` instead - def newCaptchaTask(self, task): - return self.captcha_task(task) + def newCaptchaTask(self, *args, **kwargs): + return self.captcha_task(*args, **kwargs) def captcha_correct(self, task): @@ -239,8 +239,8 @@ class Hook(Plugin): #: Deprecated method, use `captcha_correct` instead - def captchaCorrect(self, task): - return self.captcha_correct(task) + def captchaCorrect(self, *args, **kwargs): + return self.captcha_correct(*args, **kwargs) def captcha_invalid(self, task): @@ -248,5 +248,5 @@ class Hook(Plugin): #: Deprecated method, use `captcha_invalid` instead - def captchaInvalid(self, task): - return self.captcha_invalid(task) + def captchaInvalid(self, *args, **kwargs): + return self.captcha_invalid(*args, **kwargs) diff --git a/module/plugins/internal/Hoster.py b/module/plugins/internal/Hoster.py index 92cb476ea..09672f6f0 100644 --- a/module/plugins/internal/Hoster.py +++ b/module/plugins/internal/Hoster.py @@ -16,15 +16,15 @@ from module.plugins.internal.Plugin import Plugin, Abort, Fail, Reconnect, Retry from module.utils import fs_decode, fs_encode, save_join as fs_join -def getInfo(urls): - #result = [ .. (name, size, status, url) .. ] +def get_info(urls): + # result = [ .. (name, size, status, url) .. ] pass class Hoster(Plugin): __name__ = "Hoster" __type__ = "hoster" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'^unmatchable$' __config__ = [] #: [("name", "type", "desc", "default")] @@ -41,18 +41,18 @@ class Hoster(Plugin): super(Hoster, self).__init__(pyfile.m.core) #: engage wan reconnection - self.wantReconnect = False + self.want_reconnect = False #: enable simultaneous processing of multiple downloads - self.multiDL = True - self.limitDL = 0 + self.multi_dl = True + self.limit_dl = 0 #: chunk limit - self.chunkLimit = 1 - self.resumeDownload = False + self.chunk_limit = 1 + self.resume_download = False #: time.time() + wait in seconds - self.waitUntil = 0 + self.wait_until = 0 self.waiting = False #: captcha reader instance @@ -75,10 +75,10 @@ class Hoster(Plugin): #: Browser instance, see `network.Browser` self.req = self.account.getAccountRequest(self.user) - self.chunkLimit = -1 #: chunk limit, -1 for unlimited + self.chunk_limit = -1 #: chunk limit, -1 for unlimited #: enables resume (will be ignored if server dont accept chunks) - self.resumeDownload = True + self.resume_download = True #: premium status self.premium = self.account.isPremium(self.user) @@ -91,16 +91,16 @@ class Hoster(Plugin): self.thread = None #: holds thread in future #: location where the last call to download was saved - self.lastDownload = "" + self.last_download = "" #: re match of the last call to `checkDownload` - self.lastCheck = None + self.last_check = None #: js engine, see `JsEngine` self.js = self.core.js #: captcha task - self.cTask = None + self.c_task = None #: some plugins store html code here self.html = None @@ -150,13 +150,13 @@ class Hoster(Plugin): raise NotImplementedError - def getChunkCount(self): - if self.chunkLimit <= 0: + def get_chunk_count(self): + if self.chunk_limit <= 0: return self.core.config.get("download", "chunks") - return min(self.core.config.get("download", "chunks"), self.chunkLimit) + return min(self.core.config.get("download", "chunks"), self.chunk_limit) - def resetAccount(self): + def reset_account(self): """ Don't use account and retry download """ @@ -165,13 +165,13 @@ class Hoster(Plugin): self.retry() - def setReconnect(self, reconnect): + def set_reconnect(self, reconnect): reconnect = bool(reconnect) - self.logDebug("Set wantReconnect to: %s (previous: %s)" % (reconnect, self.wantReconnect)) - self.wantReconnect = reconnect + self.log_debug("Set wantReconnect to: %s (previous: %s)" % (reconnect, self.want_reconnect)) + self.want_reconnect = reconnect - def setWait(self, seconds, reconnect=None): + def set_wait(self, seconds, reconnect=None): """ Set a specific wait time later used with `wait` @@ -181,13 +181,13 @@ class Hoster(Plugin): wait_time = max(int(seconds), 1) wait_until = time.time() + wait_time + 1 - self.logDebug("Set waitUntil to: %f (previous: %f)" % (wait_until, self.pyfile.waitUntil), + self.log_debug("Set waitUntil to: %f (previous: %f)" % (wait_until, self.pyfile.waitUntil), "Wait: %d+1 seconds" % wait_time) self.pyfile.waitUntil = wait_until if reconnect is not None: - self.setReconnect(reconnect) + self.set_reconnect(reconnect) def wait(self, seconds=0, reconnect=None): @@ -197,21 +197,21 @@ class Hoster(Plugin): pyfile = self.pyfile if seconds > 0: - self.setWait(seconds) + self.set_wait(seconds) if reconnect is not None: - self.setReconnect(reconnect) + self.set_reconnect(reconnect) self.waiting = True status = pyfile.status pyfile.setStatus("waiting") - self.logInfo(_("Wait: %d seconds") % (pyfile.waitUntil - time.time()), - _("Reconnect: %s") % self.wantReconnect) + self.log_info(_("Wait: %d seconds") % (pyfile.waitUntil - time.time()), + _("Reconnect: %s") % self.want_reconnect) if self.account: - self.logDebug("Ignore reconnection due account logged") + self.log_debug("Ignore reconnection due account logged") while pyfile.waitUntil > time.time(): if pyfile.abort: @@ -227,7 +227,7 @@ class Hoster(Plugin): if self.thread.m.reconnecting.isSet(): self.waiting = False - self.wantReconnect = False + self.want_reconnect = False raise Reconnect time.sleep(1) @@ -262,7 +262,7 @@ class Hoster(Plugin): raise Fail("offline") - def tempOffline(self, reason=""): + def temp_offline(self, reason=""): """ Fail and indicates file ist temporary offline, the core may take consequences """ @@ -292,19 +292,19 @@ class Hoster(Plugin): raise Retry(reason) - def invalidCaptcha(self): - self.logError(_("Invalid captcha")) - if self.cTask: - self.cTask.invalid() + def invalid_captcha(self): + self.log_error(_("Invalid captcha")) + if self.c_task: + self.c_task.invalid() - def correctCaptcha(self): - self.logInfo(_("Correct captcha")) - if self.cTask: - self.cTask.correct() + def correct_captcha(self): + self.log_info(_("Correct captcha")) + if self.c_task: + self.c_task.correct() - def decryptCaptcha(self, url, get={}, post={}, cookies=False, forceUser=False, + def decrypt_captcha(self, url, get={}, post={}, cookies=False, forceUser=False, imgtype='jpg', result_type='textual'): """ Loads a captcha and decrypts it with ocr, plugin, user input @@ -345,7 +345,7 @@ class Hoster(Plugin): else: captchaManager = self.core.captchaManager task = captchaManager.newTask(img, imgtype, tmpCaptcha.name, result_type) - self.cTask = task + self.c_task = task captchaManager.handleCaptcha(task) while task.isWaiting(): @@ -364,7 +364,7 @@ class Hoster(Plugin): self.fail(_("No captcha result obtained in appropiate time by any of the plugins")) result = task.result - self.logDebug("Received captcha result: %s" % result) + self.log_debug("Received captcha result: %s" % result) if not self.core.debug: try: @@ -409,10 +409,10 @@ class Hoster(Plugin): self.fail(_("No url given")) if self.core.debug: - self.logDebug("Download url: " + url, *["%s=%s" % (key, val) for key, val in locals().iteritems() if key not in ("self", "url")]) + self.log_debug("Download url: " + url, *["%s=%s" % (key, val) for key, val in locals().iteritems() if key not in ("self", "url")]) - self.correctCaptcha() - self.checkForSameFiles() + self.correct_captcha() + self.check_for_same_files() self.pyfile.setStatus("downloading") @@ -445,7 +445,7 @@ class Hoster(Plugin): try: newname = self.req.httpDownload(url, filename, get=get, post=post, ref=ref, cookies=cookies, - chunks=self.getChunkCount(), resume=self.resumeDownload, + chunks=self.get_chunk_count(), resume=self.resume_download, progressNotify=self.pyfile.setProgress, disposition=disposition) finally: self.pyfile.size = self.req.size @@ -454,7 +454,7 @@ class Hoster(Plugin): newname = urlparse.urlparse(newname).path.split('/')[-1] if disposition and newname != name: - self.logInfo(_("%(name)s saved as %(newname)s") % {"name": name, "newname": newname}) + self.log_info(_("%(name)s saved as %(newname)s") % {"name": name, "newname": newname}) self.pyfile.name = newname filename = os.path.join(location, newname) @@ -464,7 +464,7 @@ class Hoster(Plugin): try: os.chmod(fs_filename, int(self.core.config.get("permission", "file"), 8)) except Exception, e: - self.logWarning(_("Setting file mode failed"), e) + self.log_warning(_("Setting file mode failed"), e) if self.core.config.get("permission", "change_dl") and os.name != "nt": try: @@ -473,13 +473,13 @@ class Hoster(Plugin): os.chown(fs_filename, uid, gid) except Exception, e: - self.logWarning(_("Setting User and Group failed"), e) + self.log_warning(_("Setting User and Group failed"), e) - self.lastDownload = filename - return self.lastDownload + self.last_download = filename + return self.last_download - def checkDownload(self, rules, delete=True, file_size=0, size_tolerance=1000, read_size=100000): + def check_download(self, rules, delete=True, file_size=0, size_tolerance=1000, read_size=100000): """ Checks the content of the last downloaded file, re match is saved to `lastCheck` @@ -491,10 +491,10 @@ class Hoster(Plugin): :return: dictionary key of the first rule that matched """ do_delete = False - lastDownload = fs_encode(self.lastDownload) + lastDownload = fs_encode(self.last_download) - if not self.lastDownload or not os.path.exists(lastDownload): - self.lastDownload = "" + if not self.last_download or not os.path.exists(lastDownload): + self.last_download = "" self.fail(self.pyfile.error or _("No file downloaded")) try: @@ -512,15 +512,15 @@ class Hoster(Plugin): self.fail(_("File size mismatch")) elif diff != 0: - self.logWarning(_("File size is not equal to expected size")) + self.log_warning(_("File size is not equal to expected size")) - self.logDebug("Download Check triggered") + self.log_debug("Download Check triggered") with open(lastDownload, "rb") as f: content = f.read(read_size) #: produces encoding errors, better log to other file in the future? - #: self.logDebug("Content: %s" % content) + #: self.log_debug("Content: %s" % content) for name, rule in rules.iteritems(): if isinstance(rule, basestring): if rule in content: @@ -531,14 +531,14 @@ class Hoster(Plugin): m = rule.search(content) if m: do_delete = True - self.lastCheck = m + self.last_check = m return name finally: if delete and do_delete: os.remove(lastDownload) - def directLink(self, url, follow_location=None): + def direct_link(self, url, follow_location=None): link = "" if follow_location is None: @@ -548,11 +548,11 @@ class Hoster(Plugin): redirect = max(follow_location, 1) else: - redirect = self.getConfig("maxredirs", plugin="UserAgentSwitcher") + redirect = self.get_config("maxredirs", plugin="UserAgentSwitcher") for i in xrange(redirect): try: - self.logDebug("Redirect #%d to: %s" % (i, url)) + self.log_debug("Redirect #%d to: %s" % (i, url)) header = self.load(url, just_header=True) except Exception: #: Bad bad bad... rewrite this part in 0.4.10 @@ -618,18 +618,18 @@ class Hoster(Plugin): else: try: - self.logError(_("Too many redirects")) + self.log_error(_("Too many redirects")) except Exception: pass return link - def parseHtmlForm(self, attr_str="", input_names={}): + def parse_html_form(self, attr_str="", input_names={}): return parseHtmlForm(attr_str, self.html, input_names) - def checkTrafficLeft(self): + def check_traffic_left(self): if not self.account: return True @@ -641,18 +641,18 @@ class Hoster(Plugin): return True else: size = self.pyfile.size / 1024 - self.logInfo(_("Filesize: %s KiB, Traffic left for user %s: %s KiB") % (size, self.user, traffic)) + self.log_info(_("Filesize: %s KiB, Traffic left for user %s: %s KiB") % (size, self.user, traffic)) return size <= traffic - def getPassword(self): + def get_password(self): """ Get the password the user provided in the package """ return self.pyfile.package().password or "" - def checkForSameFiles(self, starting=False): + def check_for_same_files(self, starting=False): """ Checks if same file was/is downloaded within same package @@ -681,7 +681,7 @@ class Hoster(Plugin): if os.path.exists(location): self.skip(pyfile[0]) - self.logDebug("File %s not skipped, because it does not exists." % self.pyfile.name) + self.log_debug("File %s not skipped, because it does not exists." % self.pyfile.name) def clean(self): diff --git a/module/plugins/internal/MultiHook.py b/module/plugins/internal/MultiHook.py index 22b0fd7c6..623836cdc 100644 --- a/module/plugins/internal/MultiHook.py +++ b/module/plugins/internal/MultiHook.py @@ -11,7 +11,7 @@ from module.utils import decode, remove_chars class MultiHook(Hook): __name__ = "MultiHook" __type__ = "hook" - __version__ = "0.49" + __version__ = "0.50" __config__ = [("pluginmode" , "all;listed;unlisted", "Use for plugins" , "all"), ("pluginlist" , "str" , "Plugin list (comma separated)", "" ), @@ -65,10 +65,10 @@ class MultiHook(Hook): self.pluginname = None self.plugintype = None - self.initPlugin() + self.init_plugin() - def initPlugin(self): + def init_plugin(self): self.pluginname = self.__name__.rsplit("Hook", 1)[0] plugin, self.plugintype = self.core.pluginManager.findPlugin(self.pluginname) @@ -76,47 +76,47 @@ class MultiHook(Hook): self.pluginmodule = self.core.pluginManager.loadModule(self.plugintype, self.pluginname) self.pluginclass = getattr(self.pluginmodule, self.pluginname) else: - self.logWarning("Hook plugin will be deactivated due missing plugin reference") - self.setConfig('activated', False) + self.log_warning("Hook plugin will be deactivated due missing plugin reference") + self.set_config('activated', False) - def loadAccount(self): + def load_account(self): self.account = self.core.accountManager.getAccountPlugin(self.pluginname) if self.account and not self.account.canUse(): self.account = None if not self.account and hasattr(self.pluginclass, "LOGIN_ACCOUNT") and self.pluginclass.LOGIN_ACCOUNT: - self.logWarning("Hook plugin will be deactivated due missing account reference") - self.setConfig('activated', False) + self.log_warning("Hook plugin will be deactivated due missing account reference") + self.set_config('activated', False) def activate(self): self.init_periodical(threaded=True) - def pluginsCached(self): + def plugins_cached(self): if self.plugins: return self.plugins for _i in xrange(2): try: - pluginset = self._pluginSet(self.getHosters()) + pluginset = self._plugin_set(self.get_hosters()) break except Exception, e: - self.logDebug(e, "Waiting 1 minute and retry") + self.log_debug(e, "Waiting 1 minute and retry") time.sleep(60) else: - self.logWarning(_("Fallback to default reload interval due plugin parse error")) + self.log_warning(_("Fallback to default reload interval due plugin parse error")) self.interval = self.MIN_RELOAD_INTERVAL return list() try: - configmode = self.getConfig('pluginmode', 'all') + configmode = self.get_config('pluginmode', 'all') if configmode in ("listed", "unlisted"): - pluginlist = self.getConfig('pluginlist', '').replace('|', ',').replace(';', ',').split(',') - configset = self._pluginSet(pluginlist) + pluginlist = self.get_config('pluginlist', '').replace('|', ',').replace(';', ',').split(',') + configset = self._plugin_set(pluginlist) if configmode == "listed": pluginset &= configset @@ -124,14 +124,14 @@ class MultiHook(Hook): pluginset -= configset except Exception, e: - self.logError(e) + self.log_error(e) self.plugins = list(pluginset) return self.plugins - def _pluginSet(self, plugins): + def _plugin_set(self, plugins): regexp = re.compile(r'^[\w\-.^_]{3,63}\.[a-zA-Z]{2,}$', re.U) plugins = [decode(p.strip()).lower() for p in plugins if regexp.match(p.strip())] @@ -143,7 +143,7 @@ class MultiHook(Hook): return set(plugins) - def getHosters(self): + def get_hosters(self): """ Load list of supported hoster @@ -156,15 +156,15 @@ class MultiHook(Hook): """ Reload plugin list periodically """ - self.loadAccount() + self.load_account() - if self.getConfig('reload', True): - self.interval = max(self.getConfig('reloadinterval', 12) * 60 * 60, self.MIN_RELOAD_INTERVAL) + if self.get_config('reload', True): + self.interval = max(self.get_config('reloadinterval', 12) * 60 * 60, self.MIN_RELOAD_INTERVAL) else: self.core.scheduler.removeJob(self.cb) self.cb = None - self.logInfo(_("Reloading supported %s list") % self.plugintype) + self.log_info(_("Reloading supported %s list") % self.plugintype) old_supported = self.supported @@ -172,17 +172,17 @@ class MultiHook(Hook): self.new_supported = [] self.plugins = [] - self.overridePlugins() + self.override_plugins() old_supported = [plugin for plugin in old_supported if plugin not in self.supported] if old_supported: - self.logDebug("Unload: %s" % ", ".join(old_supported)) + self.log_debug("Unload: %s" % ", ".join(old_supported)) for plugin in old_supported: - self.unloadPlugin(plugin) + self.unload_plugin(plugin) - def overridePlugins(self): + def override_plugins(self): excludedList = [] if self.plugintype == "hoster": @@ -192,7 +192,7 @@ class MultiHook(Hook): pluginMap = {} accountList = [name[::-1].replace("Folder"[::-1], "", 1).lower()[::-1] for name in self.core.pluginManager.crypterPlugins.iterkeys()] - for plugin in self.pluginsCached(): + for plugin in self.plugins_cached(): name = remove_chars(plugin, "-.") if name in accountList: @@ -204,11 +204,11 @@ class MultiHook(Hook): self.new_supported.append(plugin) if not self.supported and not self.new_supported: - self.logError(_("No %s loaded") % self.plugintype) + self.log_error(_("No %s loaded") % self.plugintype) return #: inject plugin plugin - self.logDebug("Overwritten %ss: %s" % (self.plugintype, ", ".join(sorted(self.supported)))) + self.log_debug("Overwritten %ss: %s" % (self.plugintype, ", ".join(sorted(self.supported)))) for plugin in self.supported: hdict = self.core.pluginManager.plugins[self.plugintype][plugin] @@ -216,26 +216,26 @@ class MultiHook(Hook): hdict['new_name'] = self.pluginname if excludedList: - self.logInfo(_("%ss not overwritten: %s") % (self.plugintype.capitalize(), ", ".join(sorted(excludedList)))) + self.log_info(_("%ss not overwritten: %s") % (self.plugintype.capitalize(), ", ".join(sorted(excludedList)))) if self.new_supported: plugins = sorted(self.new_supported) - self.logDebug("New %ss: %s" % (self.plugintype, ", ".join(plugins))) + self.log_debug("New %ss: %s" % (self.plugintype, ", ".join(plugins))) #: create new regexp regexp = r'.*(?P<DOMAIN>%s).*' % "|".join(x.replace('.', '\.') for x in plugins) if hasattr(self.pluginclass, "__pattern__") and isinstance(self.pluginclass.__pattern__, basestring) and "://" in self.pluginclass.__pattern__: regexp = r'%s|%s' % (self.pluginclass.__pattern__, regexp) - self.logDebug("Regexp: %s" % regexp) + self.log_debug("Regexp: %s" % regexp) hdict = self.core.pluginManager.plugins[self.plugintype][self.pluginname] hdict['pattern'] = regexp hdict['re'] = re.compile(regexp) - def unloadPlugin(self, plugin): + def unload_plugin(self, plugin): hdict = self.core.pluginManager.plugins[self.plugintype][plugin] if "module" in hdict: hdict.pop('module', None) @@ -250,7 +250,7 @@ class MultiHook(Hook): Remove override for all plugins. Scheduler job is removed by hookmanager """ for plugin in self.supported: - self.unloadPlugin(plugin) + self.unload_plugin(plugin) #: reset pattern hdict = self.core.pluginManager.plugins[self.plugintype][self.pluginname] diff --git a/module/plugins/internal/MultiHoster.py b/module/plugins/internal/MultiHoster.py index 2b3eb8941..8360d871e 100644 --- a/module/plugins/internal/MultiHoster.py +++ b/module/plugins/internal/MultiHoster.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, r class MultiHoster(SimpleHoster): __name__ = "MultiHoster" __type__ = "hoster" - __version__ = "0.42" + __version__ = "0.43" __pattern__ = r'^unmatchable$' __config__ = [("use_premium" , "bool", "Use premium account if available" , True), @@ -24,19 +24,19 @@ class MultiHoster(SimpleHoster): def setup(self): - self.chunkLimit = 1 - self.multiDL = bool(self.account) - self.resumeDownload = self.premium + self.chunk_limit = 1 + self.multi_dl = bool(self.account) + self.resume_download = self.premium def prepare(self): self.info = {} self.html = "" self.link = "" #@TODO: Move to Hoster in 0.4.10 - self.directDL = False #@TODO: Move to Hoster in 0.4.10 + self.direct_d_l = False #@TODO: Move to Hoster in 0.4.10 - if not self.getConfig('use_premium', True): - self.retryFree() + if not self.get_config('use_premium', True): + self.retry_free() if self.LOGIN_ACCOUNT and not self.account: self.fail(_("Required account not found")) @@ -47,9 +47,9 @@ class MultiHoster(SimpleHoster): set_cookies(self.req.cj, self.COOKIES) if self.DIRECT_LINK is None: - self.directDL = self.__pattern__ != r'^unmatchable$' and re.match(self.__pattern__, self.pyfile.url) + self.direct_d_l = self.__pattern__ != r'^unmatchable$' and re.match(self.__pattern__, self.pyfile.url) else: - self.directDL = self.DIRECT_LINK + self.direct_d_l = self.DIRECT_LINK self.pyfile.url = replace_patterns(self.pyfile.url, self.URL_REPLACEMENTS) @@ -58,36 +58,36 @@ class MultiHoster(SimpleHoster): try: self.prepare() - if self.directDL: - self.checkInfo() - self.logDebug("Looking for direct download link...") - self.handleDirect(pyfile) + if self.direct_d_l: + self.check_info() + self.log_debug("Looking for direct download link...") + self.handle_direct(pyfile) - if not self.link and not self.lastDownload: + if not self.link and not self.last_download: self.preload() - self.checkErrors() - self.checkStatus(getinfo=False) + self.check_errors() + self.check_status(getinfo=False) - if self.premium and (not self.CHECK_TRAFFIC or self.checkTrafficLeft()): - self.logDebug("Handled as premium download") - self.handlePremium(pyfile) + if self.premium and (not self.CHECK_TRAFFIC or self.check_traffic_left()): + self.log_debug("Handled as premium download") + self.handle_premium(pyfile) - elif not self.LOGIN_ACCOUNT or (not self.CHECK_TRAFFIC or self.checkTrafficLeft()): - self.logDebug("Handled as free download") - self.handleFree(pyfile) + elif not self.LOGIN_ACCOUNT or (not self.CHECK_TRAFFIC or self.check_traffic_left()): + self.log_debug("Handled as free download") + self.handle_free(pyfile) self.download(self.link, ref=False, disposition=True) - self.checkFile() + self.check_file() except Fail, e: #@TODO: Move to PluginThread in 0.4.10 err = str(e) #@TODO: Recheck in 0.4.10 if self.premium: - self.logWarning(_("Premium download failed")) - self.retryFree() + self.log_warning(_("Premium download failed")) + self.retry_free() - elif self.getConfig("revertfailed", True) \ + elif self.get_config("revertfailed", True) \ and "new_module" in self.core.pluginManager.hosterPlugins[self.__name__]: hdict = self.core.pluginManager.hosterPlugins[self.__name__] @@ -107,11 +107,11 @@ class MultiHoster(SimpleHoster): raise Fail(err) - def handlePremium(self, pyfile): - return self.handleFree(pyfile) + def handle_premium(self, pyfile): + return self.handle_free(pyfile) - def handleFree(self, pyfile): + def handle_free(self, pyfile): if self.premium: raise NotImplementedError else: diff --git a/module/plugins/internal/OCR.py b/module/plugins/internal/OCR.py index 0191a4938..880f8b570 100644 --- a/module/plugins/internal/OCR.py +++ b/module/plugins/internal/OCR.py @@ -20,7 +20,7 @@ from module.utils import save_join as fs_join class OCR(Plugin): __name__ = "OCR" __type__ = "ocr" - __version__ = "0.11" + __version__ = "0.12" __description__ = """OCR base plugin""" __license__ = "GPLv3" @@ -71,7 +71,7 @@ class OCR(Plugin): tmpTxt.close() except IOError, e: - self.logError(e) + self.log_error(e) return self.logger.debug("save tiff") diff --git a/module/plugins/internal/Plugin.py b/module/plugins/internal/Plugin.py index 9b110280e..0b08858f3 100644 --- a/module/plugins/internal/Plugin.py +++ b/module/plugins/internal/Plugin.py @@ -25,12 +25,12 @@ def set_cookies(cj, cookies): cj.setCookie(domain, name, value) -def parseHtmlTagAttrValue(attr_name, tag): +def parse_html_tag_attr_value(attr_name, tag): m = re.search(r"%s\s*=\s*([\"']?)((?<=\")[^\"]+|(?<=')[^']+|[^>\s\"'][^>\s]*)\1" % attr_name, tag, re.I) return m.group(2) if m else None -def parseHtmlForm(attr_str, html, input_names={}): +def parse_html_form(attr_str, html, input_names={}): for form in re.finditer(r"(?P<TAG><form[^>]*%s[^>]*>)(?P<CONTENT>.*?)</?(form|body|html)[^>]*>" % attr_str, html, re.S | re.I): inputs = {} @@ -78,7 +78,7 @@ def chunks(iterable, size): class Plugin(object): __name__ = "Plugin" __type__ = "hoster" - __version__ = "0.11" + __version__ = "0.12" __pattern__ = r'^unmatchable$' __config__ = [] #: [("name", "type", "desc", "default")] @@ -106,28 +106,28 @@ class Plugin(object): 'msg' : msg or _(level.upper() + " MARK")}) - def logDebug(self, *args): + def log_debug(self, *args): if self.core.debug: return self._log("debug", args) - def logInfo(self, *args): + def log_info(self, *args): return self._log("info", args) - def logWarning(self, *args): + def log_warning(self, *args): return self._log("warning", args) - def logError(self, *args): + def log_error(self, *args): return self._log("error", args) - def logCritical(self, *args): + def log_critical(self, *args): return self._log("critical", args) - def setConfig(self, option, value): + def set_config(self, option, value): """ Set config value for current plugin @@ -138,15 +138,15 @@ class Plugin(object): self.core.config.setPlugin(self.__name__, option, value) - #: Deprecated method + #: Deprecated method, use `set_config` instead def setConf(self, *args, **kwargs): """ - See `setConfig` + See `set_config` """ - return self.setConfig(*args, **kwargs) + return self.set_config(*args, **kwargs) - def getConfig(self, option, default="", plugin=None): + def get_config(self, option, default="", plugin=None): """ Returns config value for current plugin @@ -157,16 +157,16 @@ class Plugin(object): return self.core.config.getPlugin(plugin or self.__name__, option) except KeyError: - self.logWarning(_("Config option or plugin not found")) + self.log_warning(_("Config option or plugin not found")) return default - #: Deprecated method + #: Deprecated method, use `get_config` instead def getConf(self, *args, **kwargs): """ - See `getConfig` + See `get_config` """ - return self.getConfig(*args, **kwargs) + return self.get_config(*args, **kwargs) def store(self, key, value): @@ -176,10 +176,10 @@ class Plugin(object): self.core.db.setStorage(self.__name__, key, value) - #: Deprecated method + #: Deprecated method, use `store` instead def setStorage(self, *args, **kwargs): """ - Same as `setStorage` + Same as `store` """ return self.store(*args, **kwargs) @@ -191,21 +191,29 @@ class Plugin(object): return self.core.db.getStorage(self.__name__, key) or default - #: Deprecated method + #: Deprecated method, use `retrieve` instead def getStorage(self, *args, **kwargs): """ - Same as `getStorage` + Same as `retrieve` """ return self.retrieve(*args, **kwargs) - def delStorage(self, key): + def delete(self, key): """ Delete entry in db """ self.core.db.delStorage(self.__name__, key) + #: Deprecated method, use `delete` instead + def delStorage(self, *args, **kwargs): + """ + Same as `delete` + """ + return self.delete(*args, **kwargs) + + def fail(self, reason): """ Fail and give reason @@ -250,7 +258,7 @@ class Plugin(object): self.fail(_("No url given")) if self.core.debug: - self.logDebug("Load url: " + url, *["%s=%s" % (key, val) for key, val in locals().iteritems() if key not in ("self", "url")]) + self.log_debug("Load url: " + url, *["%s=%s" % (key, val) for key, val in locals().iteritems() if key not in ("self", "url")]) if req is None: if hasattr(self, "req"): @@ -274,7 +282,7 @@ class Plugin(object): del frame #: delete the frame or it wont be cleaned f.write(res.encode('utf8')) except IOError, e: - self.logError(e) + self.log_error(e) if just_header: #: parse header @@ -297,4 +305,4 @@ class Plugin(object): header[key] = value res = header - return res
\ No newline at end of file + return res diff --git a/module/plugins/internal/ReCaptcha.py b/module/plugins/internal/ReCaptcha.py index 40faff5f0..79bda9051 100644 --- a/module/plugins/internal/ReCaptcha.py +++ b/module/plugins/internal/ReCaptcha.py @@ -13,7 +13,7 @@ from module.plugins.internal.Captcha import Captcha class ReCaptcha(Captcha): __name__ = "ReCaptcha" __type__ = "captcha" - __version__ = "0.17" + __version__ = "0.18" __description__ = """ReCaptcha captcha service plugin""" __license__ = "GPLv3" @@ -32,10 +32,10 @@ class ReCaptcha(Captcha): m = re.search(self.KEY_V2_PATTERN, html) or re.search(self.KEY_V1_PATTERN, html) if m: self.key = m.group(1).strip() - self.logDebug("Key: %s" % self.key) + self.log_debug("Key: %s" % self.key) return self.key else: - self.logWarning("Key pattern not found") + self.log_warning("Key pattern not found") return None @@ -60,7 +60,7 @@ class ReCaptcha(Captcha): except AttributeError: self.fail(_("ReCaptcha challenge pattern not found")) - self.logDebug("Challenge: %s" % challenge) + self.log_debug("Challenge: %s" % challenge) return self.result(server, challenge, key) @@ -79,50 +79,50 @@ class ReCaptcha(Captcha): except AttributeError: self.fail(_("ReCaptcha second challenge pattern not found")) - self.logDebug("Second challenge: %s" % challenge) + self.log_debug("Second challenge: %s" % challenge) result = self.plugin.decryptCaptcha("%simage" % server, get={'c': challenge}, cookies=True, forceUser=True, imgtype="jpg") - self.logDebug("Result: %s" % result) + self.log_debug("Result: %s" % result) return result, challenge - def _collectApiInfo(self): + def _collect_api_info(self): html = self.plugin.load("http://www.google.com/recaptcha/api.js") a = re.search(r'po.src = \'(.*?)\';', html).group(1) vers = a.split("/")[5] - self.logDebug("API version: %s" % vers) + self.log_debug("API version: %s" % vers) language = a.split("__")[1].split(".")[0] - self.logDebug("API language: %s" % language) + self.log_debug("API language: %s" % language) html = self.plugin.load("https://apis.google.com/js/api.js") b = re.search(r'"h":"(.*?)","', html).group(1) jsh = b.decode('unicode-escape') - self.logDebug("API jsh-string: %s" % jsh) + self.log_debug("API jsh-string: %s" % jsh) return vers, language, jsh - def _prepareTimeAndRpc(self): + def _prepare_time_and_rpc(self): self.plugin.load("http://www.google.com/recaptcha/api2/demo") millis = int(round(time.time() * 1000)) - self.logDebug("Time: %s" % millis) + self.log_debug("Time: %s" % millis) rand = random.randint(1, 99999999) a = "0.%s" % str(rand * 2147483647) rpc = int(100000000 * float(a)) - self.logDebug("Rpc-token: %s" % rpc) + self.log_debug("Rpc-token: %s" % rpc) return millis, rpc @@ -136,8 +136,8 @@ class ReCaptcha(Captcha): parent = "" botguardstring = "!A" - vers, language, jsh = self._collectApiInfo() - millis, rpc = self._prepareTimeAndRpc() + vers, language, jsh = self._collect_api_info() + millis, rpc = self._prepare_time_and_rpc() html = self.plugin.load("https://www.google.com/recaptcha/api2/anchor", get={'k' : key, @@ -150,7 +150,7 @@ class ReCaptcha(Captcha): 'rpctoken': rpc}) token1 = re.search(r'id="recaptcha-token" value="(.*?)">', html) - self.logDebug("Token #1: %s" % token1.group(1)) + self.log_debug("Token #1: %s" % token1.group(1)) html = self.plugin.load("https://www.google.com/recaptcha/api2/frame", get={'c' : token1.group(1), @@ -163,10 +163,10 @@ class ReCaptcha(Captcha): decode="unicode-escape") token2 = re.search(r'"finput","(.*?)",', html) - self.logDebug("Token #2: %s" % token2.group(1)) + self.log_debug("Token #2: %s" % token2.group(1)) token3 = re.search(r'"rresp","(.*?)",', html) - self.logDebug("Token #3: %s" % token3.group(1)) + self.log_debug("Token #3: %s" % token3.group(1)) millis_captcha_loading = int(round(time.time() * 1000)) captcha_response = self.plugin.decryptCaptcha("https://www.google.com/recaptcha/api2/payload", @@ -175,7 +175,7 @@ class ReCaptcha(Captcha): forceUser=True) response = b64encode('{"response":"%s"}' % captcha_response) - self.logDebug("Result: %s" % response) + self.log_debug("Result: %s" % response) timeToSolve = int(round(time.time() * 1000)) - millis_captcha_loading timeToSolveMore = timeToSolve + int(float("0." + str(random.randint(1, 99999999))) * 500) @@ -189,7 +189,7 @@ class ReCaptcha(Captcha): 'bg' : botguardstring}) token4 = re.search(r'"uvresp","(.*?)",', html) - self.logDebug("Token #4: %s" % token4.group(1)) + self.log_debug("Token #4: %s" % token4.group(1)) result = token4.group(1) diff --git a/module/plugins/internal/SevenZip.py b/module/plugins/internal/SevenZip.py index 147ac6bd4..86ff5156e 100644 --- a/module/plugins/internal/SevenZip.py +++ b/module/plugins/internal/SevenZip.py @@ -10,7 +10,7 @@ from module.utils import fs_encode, save_join as fs_join class SevenZip(UnRar): __name__ = "SevenZip" - __version__ = "0.11" + __version__ = "0.12" __description__ = """7-Zip extractor plugin""" __license__ = "GPLv3" @@ -37,7 +37,7 @@ class SevenZip(UnRar): @classmethod - def isUsable(cls): + def is_usable(cls): if os.name == "nt": cls.CMD = os.path.join(pypath, "7z.exe") p = subprocess.Popen([cls.CMD], stdout=subprocess.PIPE, stderr=subprocess.PIPE) @@ -134,11 +134,11 @@ class SevenZip(UnRar): def call_cmd(self, command, *xargs, **kwargs): args = [] - #overwrite flag + # overwrite flag if self.overwrite: args.append("-y") - #set a password + # set a password if "password" in kwargs and kwargs['password']: args.append("-p%s" % kwargs['password']) else: diff --git a/module/plugins/internal/SimpleCrypter.py b/module/plugins/internal/SimpleCrypter.py index 7685be55a..fe47178e3 100644 --- a/module/plugins/internal/SimpleCrypter.py +++ b/module/plugins/internal/SimpleCrypter.py @@ -10,7 +10,7 @@ from module.utils import fixup, html_unescape class SimpleCrypter(Crypter, SimpleHoster): __name__ = "SimpleCrypter" __type__ = "crypter" - __version__ = "0.55" + __version__ = "0.56" __pattern__ = r'^unmatchable$' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), #: Overrides core.config['general']['folder_per_package'] @@ -47,7 +47,7 @@ class SimpleCrypter(Crypter, SimpleHoster): and its loadPage method: - def loadPage(self, page_n): + def load_page(self, page_n): return the html of the page number page_n """ #@TODO: Remove in 0.4.10 @@ -85,10 +85,10 @@ class SimpleCrypter(Crypter, SimpleHoster): self.pyfile.url = replace_patterns(self.pyfile.url, self.URL_REPLACEMENTS) - def handleDirect(self, pyfile): - for i in xrange(self.getConfig("maxredirs", plugin="UserAgentSwitcher")): + def handle_direct(self, pyfile): + for i in xrange(self.get_config("maxredirs", plugin="UserAgentSwitcher")): redirect = self.link or pyfile.url - self.logDebug("Redirect #%d to: %s" % (i, redirect)) + self.log_debug("Redirect #%d to: %s" % (i, redirect)) header = self.load(redirect, just_header=True) if 'location' in header and header['location']: @@ -96,38 +96,38 @@ class SimpleCrypter(Crypter, SimpleHoster): else: break else: - self.logError(_("Too many redirects")) + self.log_error(_("Too many redirects")) def decrypt(self, pyfile): self.prepare() - self.logDebug("Looking for link redirect...") - self.handleDirect(pyfile) + self.log_debug("Looking for link redirect...") + self.handle_direct(pyfile) if self.link: self.urls = [self.link] else: self.preload() - self.checkInfo() + self.check_info() - self.links = self.getLinks() or list() + self.links = self.get_links() or list() if hasattr(self, 'PAGES_PATTERN') and hasattr(self, 'loadPage'): - self.handlePages(pyfile) + self.handle_pages(pyfile) - self.logDebug("Package has %d links" % len(self.links)) + self.log_debug("Package has %d links" % len(self.links)) if self.links: self.packages = [(self.info['name'], self.links, self.info['folder'])] - def checkNameSize(self, getinfo=True): + def check_name_size(self, getinfo=True): if not self.info or getinfo: - self.logDebug("File info (BEFORE): %s" % self.info) - self.info.update(self.getInfo(self.pyfile.url, self.html)) - self.logDebug("File info (AFTER): %s" % self.info) + self.log_debug("File info (BEFORE): %s" % self.info) + self.info.update(self.get_info(self.pyfile.url, self.html)) + self.log_debug("File info (AFTER): %s" % self.info) try: url = self.info['url'].strip() @@ -144,11 +144,11 @@ class SimpleCrypter(Crypter, SimpleHoster): except Exception: pass - self.logDebug("File name: %s" % self.pyfile.name, + self.log_debug("File name: %s" % self.pyfile.name, "File folder: %s" % self.pyfile.name) - def getLinks(self): + def get_links(self): """ Returns the links extracted from self.html You should override this only if it's impossible to extract links using only the LINK_PATTERN. @@ -156,12 +156,12 @@ class SimpleCrypter(Crypter, SimpleHoster): return re.findall(self.LINK_PATTERN, self.html) - def handlePages(self, pyfile): + def handle_pages(self, pyfile): try: pages = int(re.search(self.PAGES_PATTERN, self.html).group(1)) except Exception: pages = 1 for p in xrange(2, pages + 1): - self.html = self.loadPage(p) - self.links += self.getLinks() + self.html = self.load_page(p) + self.links += self.get_links() diff --git a/module/plugins/internal/SimpleHoster.py b/module/plugins/internal/SimpleHoster.py index 067b97747..2e31c1176 100644 --- a/module/plugins/internal/SimpleHoster.py +++ b/module/plugins/internal/SimpleHoster.py @@ -25,7 +25,7 @@ statusMap = dict((v, k) for k, v in _statusMap.iteritems()) #@TODO: Remove in 0.4.10 def parseFileInfo(plugin, url="", html=""): if hasattr(plugin, "getInfo"): - info = plugin.getInfo(url, html) + info = plugin.get_info(url, html) res = info['name'], info['size'], info['status'], info['url'] else: url = urllib.unquote(url) @@ -42,7 +42,7 @@ def parseFileInfo(plugin, url="", html=""): #@TODO: Remove in 0.4.10 def create_getInfo(plugin): - def getInfo(urls): + def get_info(urls): for url in urls: if hasattr(plugin, "URL_REPLACEMENTS"): url = replace_patterns(url, plugin.URL_REPLACEMENTS) @@ -55,7 +55,7 @@ def timestamp(): return int(time.time() * 1000) -def secondsToMidnight(gmt=0): +def seconds_to_midnight(gmt=0): now = datetime.datetime.utcnow() + datetime.timedelta(hours=gmt) if now.hour is 0 and now.minute < 10: @@ -76,7 +76,7 @@ def secondsToMidnight(gmt=0): class SimpleHoster(Hoster): __name__ = "SimpleHoster" __type__ = "hoster" - __version__ = "1.69" + __version__ = "1.70" __pattern__ = r'^unmatchable$' __config__ = [("use_premium", "bool", "Use premium account if available" , True), @@ -132,7 +132,7 @@ class SimpleHoster(Hoster): example: ERROR_PATTERN = r'' - Instead overriding handleFree and handlePremium methods you may define the following patterns for basic link handling: + Instead overriding handle_free and handle_premium methods you may define the following patterns for basic link handling: LINK_PATTERN: (optional) group(1) should be the direct link for free and premium download example: LINK_PATTERN = r'<div class="link"><a href="(.+?)"' @@ -154,18 +154,18 @@ class SimpleHoster(Hoster): CHECK_FILE = True #: Set to False to not check the last downloaded file with declared error patterns CHECK_TRAFFIC = False #: Set to True to force checking traffic left for premium account COOKIES = True #: or False or list of tuples [(domain, name, value)] - DIRECT_LINK = None #: Set to True to looking for direct link (as defined in handleDirect method), set to None to do it if self.account is True else False + DIRECT_LINK = None #: Set to True to looking for direct link (as defined in handle_direct method), set to None to do it if self.account is True else False DISPOSITION = True #: Set to True to use any content-disposition value in http header as file name LOGIN_ACCOUNT = False #: Set to True to require account login LOGIN_PREMIUM = False #: Set to True to require premium account login - MULTI_HOSTER = False #: Set to True to leech other hoster link (as defined in handleMulti method) + MULTI_HOSTER = False #: Set to True to leech other hoster link (as defined in handle_multi method) TEXT_ENCODING = True #: Set to encoding name if encoding value in http header is not correct LINK_PATTERN = None @classmethod - def apiInfo(cls, url): + def api_info(cls, url): url = urllib.unquote(url) url_p = urlparse.urlparse(url) return {'name' : (url_p.path.split('/')[-1] @@ -177,8 +177,8 @@ class SimpleHoster(Hoster): @classmethod - def getInfo(cls, url="", html=""): - info = cls.apiInfo(url) + def get_info(cls, url="", html=""): + info = cls.api_info(url) online = True if info['status'] is 2 else False try: @@ -257,7 +257,7 @@ class SimpleHoster(Hoster): def setup(self): - self.resumeDownload = self.multiDL = self.premium + self.resume_download = self.multi_dl = self.premium def prepare(self): @@ -266,11 +266,11 @@ class SimpleHoster(Hoster): self.info = {} self.html = "" #@TODO: Recheck in 0.4.10 self.link = "" #@TODO: Recheck in 0.4.10 - self.directDL = False + self.direct_d_l = False self.multihost = False - if not self.getConfig('use_premium', True): - self.retryFree() + if not self.get_config('use_premium', True): + self.retry_free() if self.LOGIN_PREMIUM and not self.premium: self.fail(_("Required premium account not found")) @@ -297,9 +297,9 @@ class SimpleHoster(Hoster): return if self.DIRECT_LINK is None: - self.directDL = bool(self.account) + self.direct_d_l = bool(self.account) else: - self.directDL = self.DIRECT_LINK + self.direct_d_l = self.DIRECT_LINK self.pyfile.url = replace_patterns(self.pyfile.url, self.URL_REPLACEMENTS) @@ -314,87 +314,87 @@ class SimpleHoster(Hoster): def process(self, pyfile): try: self.prepare() - self.checkInfo() + self.check_info() - if self.directDL: - self.logDebug("Looking for direct download link...") - self.handleDirect(pyfile) + if self.direct_d_l: + self.log_debug("Looking for direct download link...") + self.handle_direct(pyfile) - if self.multihost and not self.link and not self.lastDownload: - self.logDebug("Looking for leeched download link...") - self.handleMulti(pyfile) + if self.multihost and not self.link and not self.last_download: + self.log_debug("Looking for leeched download link...") + self.handle_multi(pyfile) - if not self.link and not self.lastDownload: + if not self.link and not self.last_download: self.MULTI_HOSTER = False self.retry(1, reason=_("Multi hoster fails")) - if not self.link and not self.lastDownload: + if not self.link and not self.last_download: self.preload() - self.checkInfo() + self.check_info() - if self.premium and (not self.CHECK_TRAFFIC or self.checkTrafficLeft()): - self.logDebug("Handled as premium download") - self.handlePremium(pyfile) + if self.premium and (not self.CHECK_TRAFFIC or self.check_traffic_left()): + self.log_debug("Handled as premium download") + self.handle_premium(pyfile) - elif not self.LOGIN_ACCOUNT or (not self.CHECK_TRAFFIC or self.checkTrafficLeft()): - self.logDebug("Handled as free download") - self.handleFree(pyfile) + elif not self.LOGIN_ACCOUNT or (not self.CHECK_TRAFFIC or self.check_traffic_left()): + self.log_debug("Handled as free download") + self.handle_free(pyfile) self.download(self.link, ref=False, disposition=self.DISPOSITION) - self.checkFile() + self.check_file() except Fail, e: #@TODO: Move to PluginThread in 0.4.10 err = str(e) #@TODO: Recheck in 0.4.10 if err == _("No captcha result obtained in appropiate time by any of the plugins."): #@TODO: Fix in 0.4.10 - self.checkFile() + self.check_file() - elif self.getConfig('fallback', True) and self.premium: - self.logWarning(_("Premium download failed"), e) - self.retryFree() + elif self.get_config('fallback', True) and self.premium: + self.log_warning(_("Premium download failed"), e) + self.retry_free() else: raise Fail(err) - def checkFile(self): - lastDownload = fs_encode(self.lastDownload) + def check_file(self): + lastDownload = fs_encode(self.last_download) - if self.cTask and not self.lastDownload: - self.invalidCaptcha() + if self.c_task and not self.last_download: + self.invalid_captcha() self.retry(10, reason=_("Wrong captcha")) - elif self.checkDownload({'Empty file': re.compile(r'\A((.|)(\2|\s)*)\Z')}, file_size=self.info['size']): + elif self.check_download({'Empty file': re.compile(r'\A((.|)(\2|\s)*)\Z')}, file_size=self.info['size']): self.error(_("Empty file")) else: - self.logDebug("Checking last downloaded file with built-in rules") + self.log_debug("Checking last downloaded file with built-in rules") for r, p in self.FILE_ERRORS: - errmsg = self.checkDownload({r: re.compile(p)}) + errmsg = self.check_download({r: re.compile(p)}) if errmsg is not None: errmsg = errmsg.strip().capitalize() try: - errmsg += " | " + self.lastCheck.group(1).strip() + errmsg += " | " + self.last_check.group(1).strip() except Exception: pass - self.logWarning("Check result: " + errmsg, "Waiting 1 minute and retry") - self.wantReconnect = True + self.log_warning("Check result: " + errmsg, "Waiting 1 minute and retry") + self.want_reconnect = True self.retry(wait_time=60, reason=errmsg) else: if self.CHECK_FILE: - self.logDebug("Checking last downloaded file with custom rules") + self.log_debug("Checking last downloaded file with custom rules") with open(lastDownload, "rb") as f: self.html = f.read(50000) #@TODO: Recheck in 0.4.10 - self.checkErrors() + self.check_errors() - self.logDebug("No file errors found") + self.log_debug("No file errors found") - def checkErrors(self): + def check_errors(self): if not self.html: - self.logWarning(_("No html code to check")) + self.log_warning(_("No html code to check")) return if hasattr(self, 'IP_BLOCKED_PATTERN') and re.search(self.IP_BLOCKED_PATTERN, self.html): @@ -415,19 +415,19 @@ class SimpleHoster(Hoster): errmsg = m.group(0).strip() self.info['error'] = re.sub(r'<.*?>', " ", errmsg) - self.logWarning(self.info['error']) + self.log_warning(self.info['error']) if re.search('da(il)?y|today', errmsg, re.I): - wait_time = secondsToMidnight(gmt=2) + wait_time = seconds_to_midnight(gmt=2) else: wait_time = sum(int(v) * {"hr": 3600, "hour": 3600, "min": 60, "sec": 1, "": 1}[u.lower()] for v, u in re.findall(r'(\d+)\s*(hr|hour|min|sec|)', errmsg, re.I)) - self.wantReconnect = wait_time > 300 + self.want_reconnect = wait_time > 300 self.retry(1, wait_time, _("Download limit exceeded")) if hasattr(self, 'HAPPY_HOUR_PATTERN') and re.search(self.HAPPY_HOUR_PATTERN, self.html): - self.multiDL = True + self.multi_dl = True if hasattr(self, 'ERROR_PATTERN'): m = re.search(self.ERROR_PATTERN, self.html) @@ -438,30 +438,30 @@ class SimpleHoster(Hoster): errmsg = m.group(0).strip() self.info['error'] = re.sub(r'<.*?>', " ", errmsg) - self.logWarning(self.info['error']) + self.log_warning(self.info['error']) if re.search('limit|wait|slot', errmsg, re.I): if re.search("da(il)?y|today", errmsg): - wait_time = secondsToMidnight(gmt=2) + wait_time = seconds_to_midnight(gmt=2) else: wait_time = sum(int(v) * {"hr": 3600, "hour": 3600, "min": 60, "sec": 1, "": 1}[u.lower()] for v, u in re.findall(r'(\d+)\s*(hr|hour|min|sec|)', errmsg, re.I)) - self.wantReconnect = wait_time > 300 + self.want_reconnect = wait_time > 300 self.retry(1, wait_time, _("Download limit exceeded")) elif re.search('country|ip|region|nation', errmsg, re.I): self.fail(_("Connection from your current IP address is not allowed")) elif re.search('captcha|code', errmsg, re.I): - self.invalidCaptcha() + self.invalid_captcha() self.retry(10, reason=_("Wrong captcha")) elif re.search('countdown|expired', errmsg, re.I): self.retry(10, 60, _("Link expired")) elif re.search('maintenance|maintainance|temp', errmsg, re.I): - self.tempOffline() + self.temp_offline() elif re.search('up to|size', errmsg, re.I): self.fail(_("File too large for free download")) @@ -478,7 +478,7 @@ class SimpleHoster(Hoster): self.fail(_("File can be downloaded by premium users only")) else: - self.wantReconnect = True + self.want_reconnect = True self.retry(wait_time=60, reason=errmsg) elif hasattr(self, 'WAIT_PATTERN'): @@ -496,12 +496,12 @@ class SimpleHoster(Hoster): self.info.pop('error', None) - def checkStatus(self, getinfo=True): + def check_status(self, getinfo=True): if not self.info or getinfo: - self.logDebug("Update file info...") - self.logDebug("Previous file info: %s" % self.info) - self.info.update(self.getInfo(self.pyfile.url, self.html)) - self.logDebug("Current file info: %s" % self.info) + self.log_debug("Update file info...") + self.log_debug("Previous file info: %s" % self.info) + self.info.update(self.get_info(self.pyfile.url, self.html)) + self.log_debug("Current file info: %s" % self.info) try: status = self.info['status'] @@ -510,21 +510,21 @@ class SimpleHoster(Hoster): self.offline() elif status is 6: - self.tempOffline() + self.temp_offline() elif status is 8: self.fail(self.info['error'] if 'error' in self.info else _("Failed")) finally: - self.logDebug("File status: %s" % statusMap[status]) + self.log_debug("File status: %s" % statusMap[status]) - def checkNameSize(self, getinfo=True): + def check_name_size(self, getinfo=True): if not self.info or getinfo: - self.logDebug("Update file info...") - self.logDebug("Previous file info: %s" % self.info) - self.info.update(self.getInfo(self.pyfile.url, self.html)) - self.logDebug("Current file info: %s" % self.info) + self.log_debug("Update file info...") + self.log_debug("Previous file info: %s" % self.info) + self.info.update(self.get_info(self.pyfile.url, self.html)) + self.log_debug("Current file info: %s" % self.info) try: url = self.info['url'].strip() @@ -543,44 +543,44 @@ class SimpleHoster(Hoster): except Exception: pass - self.logDebug("File name: %s" % self.pyfile.name, + self.log_debug("File name: %s" % self.pyfile.name, "File size: %s byte" % self.pyfile.size if self.pyfile.size > 0 else "File size: Unknown") - def checkInfo(self): - self.checkNameSize() + def check_info(self): + self.check_name_size() if self.html: - self.checkErrors() - self.checkNameSize() + self.check_errors() + self.check_name_size() - self.checkStatus(getinfo=False) + self.check_status(getinfo=False) - #: Deprecated + #: Deprecated method def getFileInfo(self): self.info = {} - self.checkInfo() + self.check_info() return self.info - def handleDirect(self, pyfile): - link = self.directLink(pyfile.url, self.resumeDownload) + def handle_direct(self, pyfile): + link = self.direct_link(pyfile.url, self.resume_download) if link: - self.logInfo(_("Direct download link detected")) + self.log_info(_("Direct download link detected")) self.link = link else: - self.logDebug("Direct download link not found") + self.log_debug("Direct download link not found") - def handleMulti(self, pyfile): #: Multi-hoster handler + def handle_multi(self, pyfile): #: Multi-hoster handler pass - def handleFree(self, pyfile): + def handle_free(self, pyfile): if not hasattr(self, 'LINK_FREE_PATTERN'): - self.logError(_("Free download not implemented")) + self.log_error(_("Free download not implemented")) m = re.search(self.LINK_FREE_PATTERN, self.html) if m is None: @@ -589,11 +589,11 @@ class SimpleHoster(Hoster): self.link = m.group(1) - def handlePremium(self, pyfile): + def handle_premium(self, pyfile): if not hasattr(self, 'LINK_PREMIUM_PATTERN'): - self.logError(_("Premium download not implemented")) - self.logDebug("Handled as free download") - self.handleFree(pyfile) + self.log_error(_("Premium download not implemented")) + self.log_debug("Handled as free download") + self.handle_free(pyfile) m = re.search(self.LINK_PREMIUM_PATTERN, self.html) if m is None: @@ -602,7 +602,7 @@ class SimpleHoster(Hoster): self.link = m.group(1) - def retryFree(self): + def retry_free(self): if not self.premium: return self.premium = False diff --git a/module/plugins/internal/SolveMedia.py b/module/plugins/internal/SolveMedia.py index dde6223ed..927d4e536 100644 --- a/module/plugins/internal/SolveMedia.py +++ b/module/plugins/internal/SolveMedia.py @@ -9,7 +9,7 @@ from module.plugins.internal.Captcha import Captcha class SolveMedia(Captcha): __name__ = "SolveMedia" __type__ = "captcha" - __version__ = "0.14" + __version__ = "0.15" __description__ = """SolveMedia captcha service plugin""" __license__ = "GPLv3" @@ -25,10 +25,10 @@ class SolveMedia(Captcha): m = re.search(self.KEY_PATTERN, html) if m: self.key = m.group(1).strip() - self.logDebug("Key: %s" % self.key) + self.log_debug("Key: %s" % self.key) return self.key else: - self.logWarning("Key pattern not found") + self.log_warning("Key pattern not found") return None @@ -43,7 +43,7 @@ class SolveMedia(Captcha): magic = re.search(r'name="magic" value="(.+?)"', html).group(1) except AttributeError: - self.logWarning("Magic pattern not found") + self.log_warning("Magic pattern not found") magic = None try: @@ -54,13 +54,13 @@ class SolveMedia(Captcha): self.fail(_("SolveMedia challenge pattern not found")) else: - self.logDebug("Challenge: %s" % challenge) + self.log_debug("Challenge: %s" % challenge) try: result = self.result("http://api.solvemedia.com/papi/media", challenge) except Fail, e: - self.logWarning(e) + self.log_warning(e) self.plugin.invalidCaptcha() result = None @@ -81,8 +81,8 @@ class SolveMedia(Captcha): else: if "error" in html: - self.logWarning("Captcha code was invalid") - self.logDebug("Retry #%d" % i) + self.log_warning("Captcha code was invalid") + self.log_debug("Retry #%d" % i) html = self.plugin.load(redirect) else: break @@ -99,6 +99,6 @@ class SolveMedia(Captcha): cookies=True, imgtype="gif") - self.logDebug("Result: %s" % result) + self.log_debug("Result: %s" % result) return result diff --git a/module/plugins/internal/UnRar.py b/module/plugins/internal/UnRar.py index 25a8a52de..4494b98c6 100644 --- a/module/plugins/internal/UnRar.py +++ b/module/plugins/internal/UnRar.py @@ -22,7 +22,7 @@ def renice(pid, value): class UnRar(Extractor): __name__ = "UnRar" - __version__ = "1.20" + __version__ = "1.21" __description__ = """Rar extractor plugin""" __license__ = "GPLv3" @@ -48,7 +48,7 @@ class UnRar(Extractor): @classmethod - def isUsable(cls): + def is_usable(cls): if os.name == "nt": try: cls.CMD = os.path.join(pypath, "RAR.exe") @@ -79,7 +79,7 @@ class UnRar(Extractor): @classmethod - def isMultipart(cls, filename): + def is_multipart(cls, filename): return True if cls.re_multipart.search(filename) else False @@ -131,7 +131,7 @@ class UnRar(Extractor): break #: reading a percentage sign -> set progress and restart if c == '%': - self.notifyProgress(int(s)) + self.notify_progress(int(s)) s = "" #: not reading a digit -> therefore restart elif c not in digits: @@ -168,14 +168,14 @@ class UnRar(Extractor): self.files = self.list(password) - def getDeleteFiles(self): + def get_delete_files(self): dir, name = os.path.split(self.filename) #: actually extracted file files = [self.filename] #: eventually Multipart Files - files.extend(fs_join(dir, os.path.basename(file)) for file in filter(self.isMultipart, os.listdir(dir)) + files.extend(fs_join(dir, os.path.basename(file)) for file in filter(self.is_multipart, os.listdir(dir)) if re.sub(self.re_multipart,".rar",name) == re.sub(self.re_multipart,".rar",file)) return files diff --git a/module/plugins/internal/UnZip.py b/module/plugins/internal/UnZip.py index 4c18a0e35..c2eb522a8 100644 --- a/module/plugins/internal/UnZip.py +++ b/module/plugins/internal/UnZip.py @@ -12,7 +12,7 @@ from module.utils import fs_encode class UnZip(Extractor): __name__ = "UnZip" - __version__ = "1.12" + __version__ = "1.13" __description__ = """Zip extractor plugin""" __license__ = "GPLv3" @@ -24,7 +24,7 @@ class UnZip(Extractor): @classmethod - def isUsable(cls): + def is_usable(cls): return sys.version_info[:2] >= (2, 6) diff --git a/module/plugins/internal/XFSAccount.py b/module/plugins/internal/XFSAccount.py index c26a91775..fb2302f4c 100644 --- a/module/plugins/internal/XFSAccount.py +++ b/module/plugins/internal/XFSAccount.py @@ -11,7 +11,7 @@ from module.plugins.internal.Plugin import parseHtmlForm, set_cookies class XFSAccount(Account): __name__ = "XFSAccount" __type__ = "account" - __version__ = "0.38" + __version__ = "0.39" __description__ = """XFileSharing account plugin""" __license__ = "GPLv3" @@ -40,7 +40,7 @@ class XFSAccount(Account): def init(self): if not self.HOSTER_DOMAIN: - self.logError(_("Missing HOSTER_DOMAIN")) + self.log_error(_("Missing HOSTER_DOMAIN")) self.COOKIES = False else: @@ -52,7 +52,7 @@ class XFSAccount(Account): set_cookies(req.cj, self.COOKIES) - def loadAccountInfo(self, user, req): + def load_account_info(self, user, req): validuntil = None trafficleft = None leechtraffic = None @@ -71,16 +71,16 @@ class XFSAccount(Account): m = re.search(self.VALID_UNTIL_PATTERN, html) if m: expiredate = m.group(1).strip() - self.logDebug("Expire date: " + expiredate) + self.log_debug("Expire date: " + expiredate) try: validuntil = time.mktime(time.strptime(expiredate, "%d %B %Y")) except Exception, e: - self.logError(e) + self.log_error(e) else: - self.logDebug("Valid until: %s" % validuntil) + self.log_debug("Valid until: %s" % validuntil) if validuntil > time.mktime(time.gmtime()): premium = True @@ -89,7 +89,7 @@ class XFSAccount(Account): premium = False validuntil = None #: registered account type (not premium) else: - self.logDebug("VALID_UNTIL_PATTERN not found") + self.log_debug("VALID_UNTIL_PATTERN not found") m = re.search(self.TRAFFIC_LEFT_PATTERN, html) if m: @@ -109,12 +109,12 @@ class XFSAccount(Account): else: unit = "" - trafficleft = self.parseTraffic(size + unit) + trafficleft = self.parse_traffic(size + unit) except Exception, e: - self.logError(e) + self.log_error(e) else: - self.logDebug("TRAFFIC_LEFT_PATTERN not found") + self.log_debug("TRAFFIC_LEFT_PATTERN not found") leech = [m.groupdict() for m in re.finditer(self.LEECH_TRAFFIC_PATTERN, html)] if leech: @@ -136,12 +136,12 @@ class XFSAccount(Account): else: unit = "" - leechtraffic += self.parseTraffic(size + unit) + leechtraffic += self.parse_traffic(size + unit) except Exception, e: - self.logError(e) + self.log_error(e) else: - self.logDebug("LEECH_TRAFFIC_PATTERN not found") + self.log_debug("LEECH_TRAFFIC_PATTERN not found") return {'validuntil' : validuntil, 'trafficleft' : trafficleft, @@ -173,4 +173,4 @@ class XFSAccount(Account): html = self.load(url, post=inputs, req=req) if re.search(self.LOGIN_FAIL_PATTERN, html): - self.wrongPassword() + self.wrong_password() diff --git a/module/plugins/internal/XFSCrypter.py b/module/plugins/internal/XFSCrypter.py index 0f5bfd5d7..c371e97f5 100644 --- a/module/plugins/internal/XFSCrypter.py +++ b/module/plugins/internal/XFSCrypter.py @@ -6,7 +6,7 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo class XFSCrypter(SimpleCrypter): __name__ = "XFSCrypter" __type__ = "crypter" - __version__ = "0.10" + __version__ = "0.11" __pattern__ = r'^unmatchable$' diff --git a/module/plugins/internal/XFSHoster.py b/module/plugins/internal/XFSHoster.py index 0f4f90128..68cf25f14 100644 --- a/module/plugins/internal/XFSHoster.py +++ b/module/plugins/internal/XFSHoster.py @@ -6,14 +6,14 @@ import re from module.plugins.internal.ReCaptcha import ReCaptcha from module.plugins.internal.SolveMedia import SolveMedia -from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, secondsToMidnight +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, seconds_to_midnight from module.utils import html_unescape class XFSHoster(SimpleHoster): __name__ = "XFSHoster" __type__ = "hoster" - __version__ = "0.53" + __version__ = "0.54" __pattern__ = r'^unmatchable$' @@ -51,8 +51,8 @@ class XFSHoster(SimpleHoster): def setup(self): - self.chunkLimit = -1 if self.premium else 1 - self.resumeDownload = self.multiDL = self.premium + self.chunk_limit = -1 if self.premium else 1 + self.resume_download = self.multi_dl = self.premium def prepare(self): @@ -80,20 +80,20 @@ class XFSHoster(SimpleHoster): super(XFSHoster, self).prepare() if self.DIRECT_LINK is None: - self.directDL = self.premium + self.direct_d_l = self.premium - def handleFree(self, pyfile): + def handle_free(self, pyfile): for i in xrange(1, 6): - self.logDebug("Getting download link #%d" % i) + self.log_debug("Getting download link #%d" % i) - self.checkErrors() + self.check_errors() m = re.search(self.LINK_PATTERN, self.html, re.S) if m: break - data = self.getPostParameters() + data = self.get_post_parameters() self.req.http.c.setopt(pycurl.FOLLOWLOCATION, 0) @@ -109,24 +109,24 @@ class XFSHoster(SimpleHoster): if m: break else: - self.logError(data['op'] if 'op' in data else _("UNKNOWN")) + self.log_error(data['op'] if 'op' in data else _("UNKNOWN")) return "" self.link = m.group(1) - def handlePremium(self, pyfile): - return self.handleFree(pyfile) + def handle_premium(self, pyfile): + return self.handle_free(pyfile) - def handleMulti(self, pyfile): + def handle_multi(self, pyfile): if not self.account: self.fail(_("Only registered or premium users can use url leech feature")) - #only tested with easybytez.com + # only tested with easybytez.com self.html = self.load("http://www.%s/" % self.HOSTER_DOMAIN) - action, inputs = self.parseHtmlForm() + action, inputs = self.parse_html_form() upload_id = "%012d" % int(random.random() * 10 ** 12) action += upload_id + "&js_on=1&utype=prem&upload_type=url" @@ -135,19 +135,19 @@ class XFSHoster(SimpleHoster): inputs['url_mass'] = pyfile.url inputs['up1oad_type'] = 'url' - self.logDebug(action, inputs) + self.log_debug(action, inputs) self.req.setOption("timeout", 600) #: wait for file to upload to easybytez.com self.html = self.load(action, post=inputs) - self.checkErrors() + self.check_errors() - action, inputs = self.parseHtmlForm('F1') + action, inputs = self.parse_html_form('F1') if not inputs: self.retry(reason=self.info['error'] if 'error' in self.info else _("TEXTAREA F1 not found")) - self.logDebug(inputs) + self.log_debug(inputs) stmsg = inputs['st'] @@ -158,12 +158,12 @@ class XFSHoster(SimpleHoster): self.retry(20, 3 * 60, _("Can not leech file")) elif 'today' in stmsg: - self.retry(wait_time=secondsToMidnight(gmt=2), reason=_("You've used all Leech traffic today")) + self.retry(wait_time=seconds_to_midnight(gmt=2), reason=_("You've used all Leech traffic today")) else: self.fail(stmsg) - #get easybytez.com link for uploaded file + # get easybytez.com link for uploaded file m = re.search(self.LINK_LEECH_PATTERN, self.html) if m is None: self.error(_("LINK_LEECH_PATTERN not found")) @@ -174,22 +174,22 @@ class XFSHoster(SimpleHoster): self.link = header['location'] - def getPostParameters(self): + def get_post_parameters(self): if self.FORM_PATTERN or self.FORM_INPUTS_MAP: - action, inputs = self.parseHtmlForm(self.FORM_PATTERN or "", self.FORM_INPUTS_MAP or {}) + action, inputs = self.parse_html_form(self.FORM_PATTERN or "", self.FORM_INPUTS_MAP or {}) else: - action, inputs = self.parseHtmlForm(input_names={'op': re.compile(r'^download')}) + action, inputs = self.parse_html_form(input_names={'op': re.compile(r'^download')}) if not inputs: - action, inputs = self.parseHtmlForm('F1') + action, inputs = self.parse_html_form('F1') if not inputs: self.retry(reason=self.info['error'] if 'error' in self.info else _("TEXTAREA F1 not found")) - self.logDebug(inputs) + self.log_debug(inputs) if 'op' in inputs: if "password" in inputs: - password = self.getPassword() + password = self.get_password() if password: inputs['password'] = password else: @@ -199,9 +199,9 @@ class XFSHoster(SimpleHoster): m = re.search(self.WAIT_PATTERN, self.html) if m: wait_time = int(m.group(1)) - self.setWait(wait_time, False) + self.set_wait(wait_time, False) - self.handleCaptcha(inputs) + self.handle_captcha(inputs) self.wait() else: inputs['referer'] = self.pyfile.url @@ -216,11 +216,11 @@ class XFSHoster(SimpleHoster): return inputs - def handleCaptcha(self, inputs): + def handle_captcha(self, inputs): m = re.search(self.CAPTCHA_PATTERN, self.html) if m: captcha_url = m.group(1) - inputs['code'] = self.decryptCaptcha(captcha_url) + inputs['code'] = self.decrypt_captcha(captcha_url) return m = re.search(self.CAPTCHA_BLOCK_PATTERN, self.html, re.S) @@ -228,11 +228,11 @@ class XFSHoster(SimpleHoster): captcha_div = m.group(1) numerals = re.findall(r'<span.*?padding-left\s*:\s*(\d+).*?>(\d)</span>', html_unescape(captcha_div)) - self.logDebug(captcha_div) + self.log_debug(captcha_div) inputs['code'] = "".join(a[1] for a in sorted(numerals, key=lambda num: int(num[0]))) - self.logDebug("Captcha code: %s" % inputs['code'], numerals) + self.log_debug("Captcha code: %s" % inputs['code'], numerals) return recaptcha = ReCaptcha(self) @@ -243,7 +243,7 @@ class XFSHoster(SimpleHoster): captcha_key = recaptcha.detect_key() else: - self.logDebug("ReCaptcha key: %s" % captcha_key) + self.log_debug("ReCaptcha key: %s" % captcha_key) if captcha_key: inputs['recaptcha_response_field'], inputs['recaptcha_challenge_field'] = recaptcha.challenge(captcha_key) @@ -257,7 +257,7 @@ class XFSHoster(SimpleHoster): captcha_key = solvemedia.detect_key() else: - self.logDebug("SolveMedia key: %s" % captcha_key) + self.log_debug("SolveMedia key: %s" % captcha_key) if captcha_key: inputs['adcopy_response'], inputs['adcopy_challenge'] = solvemedia.challenge(captcha_key) |