diff options
Diffstat (limited to 'module/plugins/accounts')
94 files changed, 527 insertions, 338 deletions
diff --git a/module/plugins/accounts/AlldebridCom.py b/module/plugins/accounts/AlldebridCom.py index 845c1b835..357dd5380 100644 --- a/module/plugins/accounts/AlldebridCom.py +++ b/module/plugins/accounts/AlldebridCom.py @@ -12,7 +12,7 @@ from module.plugins.internal.Account import Account class AlldebridCom(Account): __name__ = "AlldebridCom" __type__ = "account" - __version__ = "0.27" + __version__ = "0.28" __status__ = "testing" __description__ = """AllDebrid.com account plugin""" @@ -20,8 +20,13 @@ class AlldebridCom(Account): __authors__ = [("Andy Voigt", "spamsales@online.de")] - def grab_info(self, user, password, data, req): - data = self.get_data(user) + def grab_hosters(self, user, password, data): + 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()] + + + def grab_info(self, user, password, data): html = self.load("http://www.alldebrid.com/account/") soup = BeautifulSoup.BeautifulSoup(html) @@ -38,7 +43,6 @@ class AlldebridCom(Account): #: Get expiration date from API except Exception: - data = self.get_data(user) html = self.load("https://www.alldebrid.com/api.php", get={'action': "info_user", 'login' : user, @@ -54,7 +58,7 @@ class AlldebridCom(Account): 'premium' : True } - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load("https://www.alldebrid.com/register/", get={'action' : "login", 'login_login' : user, diff --git a/module/plugins/accounts/AniStreamCom.py b/module/plugins/accounts/AniStreamCom.py index 53ca1d5b8..5c7ac9fff 100644 --- a/module/plugins/accounts/AniStreamCom.py +++ b/module/plugins/accounts/AniStreamCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class AniStreamCom(XFSAccount): __name__ = "AniStreamCom" __type__ = "account" - __version__ = "0.01" + __version__ = "0.02" __status__ = "testing" __description__ = """Ani-Stream.com account plugin""" @@ -14,4 +14,4 @@ class AniStreamCom(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "ani-stream.com" + PLUGIN_DOMAIN = "ani-stream.com" diff --git a/module/plugins/accounts/BackinNet.py b/module/plugins/accounts/BackinNet.py index 58939c13a..d903f020c 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.02" + __version__ = "0.03" __status__ = "testing" __description__ = """Backin.net account plugin""" @@ -14,4 +14,4 @@ class BackinNet(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "backin.net" + PLUGIN_DOMAIN = "backin.net" diff --git a/module/plugins/accounts/BitshareCom.py b/module/plugins/accounts/BitshareCom.py index 16eeb02b2..e8028b9d0 100644 --- a/module/plugins/accounts/BitshareCom.py +++ b/module/plugins/accounts/BitshareCom.py @@ -6,7 +6,7 @@ from module.plugins.internal.Account import Account class BitshareCom(Account): __name__ = "BitshareCom" __type__ = "account" - __version__ = "0.16" + __version__ = "0.17" __status__ = "testing" __description__ = """Bitshare account plugin""" @@ -14,7 +14,7 @@ class BitshareCom(Account): __authors__ = [("Paul King", None)] - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): html = self.load("http://bitshare.com/mysettings.html") if "\"http://bitshare.com/myupgrade.html\">Free" in html: @@ -26,11 +26,11 @@ class BitshareCom(Account): return {'validuntil': -1, 'trafficleft': -1, 'premium': True} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load("https://bitshare.com/login.html", post={'user' : user, 'password': password, 'submit' : "Login"}) - if "login" in req.lastEffectiveURL: + if "login" in self.req.lastEffectiveURL: self.fail_login() diff --git a/module/plugins/accounts/CatShareNet.py b/module/plugins/accounts/CatShareNet.py index a8a164352..6e11064a6 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.09" + __version__ = "0.10" __status__ = "testing" __description__ = """Catshare.net account plugin""" @@ -22,7 +22,7 @@ class CatShareNet(Account): TRAFFIC_LEFT_PATTERN = r'<a href="/premium">([0-9.]+ [kMG]B)' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): premium = False validuntil = -1 trafficleft = -1 @@ -50,7 +50,7 @@ class CatShareNet(Account): return {'premium': premium, 'trafficleft': trafficleft, 'validuntil': validuntil} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load("http://catshare.net/login", #@TODO: Revert to `https` in 0.4.10 post={'user_email' : user, 'user_password' : password, diff --git a/module/plugins/accounts/CloudsixMe.py b/module/plugins/accounts/CloudsixMe.py index 973e37044..3410af002 100644 --- a/module/plugins/accounts/CloudsixMe.py +++ b/module/plugins/accounts/CloudsixMe.py @@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount class CloudsixMe(XFSAccount): __name__ = "CloudsixMe" __type__ = "account" - __version__ = "0.01" + __version__ = "0.02" __status__ = "testing" __description__ = """Cloudsix.me account plugin""" @@ -14,4 +14,4 @@ class CloudsixMe(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "cloudsix.me" + PLUGIN_DOMAIN = "cloudsix.me" diff --git a/module/plugins/accounts/CloudzillaTo.py b/module/plugins/accounts/CloudzillaTo.py index 127e226a2..821975ef0 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.05" + __version__ = "0.06" __status__ = "testing" __description__ = """Cloudzilla.to account plugin""" @@ -19,7 +19,7 @@ class CloudzillaTo(Account): PREMIUM_PATTERN = r'<h2>account type</h2>\s*Premium Account' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): html = self.load("http://www.cloudzilla.to/") premium = True if re.search(self.PREMIUM_PATTERN, html) else False @@ -27,7 +27,7 @@ class CloudzillaTo(Account): return {'validuntil': -1, 'trafficleft': -1, 'premium': premium} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load("https://www.cloudzilla.to/", post={'lusername': user, 'lpassword': password, diff --git a/module/plugins/accounts/CramitIn.py b/module/plugins/accounts/CramitIn.py index d3f2e0d77..084aa79a6 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.04" + __version__ = "0.05" __status__ = "testing" __description__ = """Cramit.in account plugin""" @@ -14,4 +14,4 @@ class CramitIn(XFSAccount): __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - HOSTER_DOMAIN = "cramit.in" + PLUGIN_DOMAIN = "cramit.in" diff --git a/module/plugins/accounts/CzshareCom.py b/module/plugins/accounts/CzshareCom.py index 77d1073ca..448722dd9 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.21" + __version__ = "0.22" __status__ = "testing" __description__ = """Czshare.com account plugin, now Sdilej.cz""" @@ -21,7 +21,7 @@ class CzshareCom(Account): CREDIT_LEFT_PATTERN = r'<tr class="active">\s*<td>([\d ,]+) (KiB|MiB|GiB)</td>\s*<td>([^<]*)</td>\s*</tr>' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): premium = False validuntil = None trafficleft = None @@ -44,7 +44,7 @@ class CzshareCom(Account): 'trafficleft': trafficleft} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load('https://sdilej.cz/index.php', post={'Prihlasit' : "Prihlasit", "login-password": password, diff --git a/module/plugins/accounts/DebridItaliaCom.py b/module/plugins/accounts/DebridItaliaCom.py index 35fd6262e..fee7925e7 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.16" + __version__ = "0.17" __status__ = "testing" __description__ = """Debriditalia.com account plugin""" @@ -21,7 +21,11 @@ class DebridItaliaCom(Account): WALID_UNTIL_PATTERN = r'Premium valid till: (.+?) \|' - def grab_info(self, user, password, data, req): + def grab_hosters(self, user, password, data): + return self.load("http://debriditalia.com/api.php", get={'hosts': ""}).replace('"', '').split(',') + + + def grab_info(self, user, password, data): info = {'premium': False, 'validuntil': None, 'trafficleft': None} html = self.load("http://debriditalia.com/") @@ -36,7 +40,7 @@ class DebridItaliaCom(Account): return info - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load("https://debriditalia.com/login.php", get={'u': user, 'p': password}) diff --git a/module/plugins/accounts/DepositfilesCom.py b/module/plugins/accounts/DepositfilesCom.py index 6e4bf9a1b..35df3f939 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.35" + __version__ = "0.36" __status__ = "testing" __description__ = """Depositfiles.com account plugin""" @@ -19,7 +19,7 @@ class DepositfilesCom(Account): ("Walter Purcaro", "vuolter@gmail.com")] - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): html = self.load("https://dfiles.eu/de/gold/") validuntil = re.search(r"Sie haben Gold Zugang bis: <b>(.*?)</b></div>", html).group(1) @@ -28,7 +28,7 @@ class DepositfilesCom(Account): return {'validuntil': validuntil, 'trafficleft': -1} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load("https://dfiles.eu/de/login.php", get={'return': "/de/gold/payment.php"}, post={'login' : user, diff --git a/module/plugins/accounts/EasybytezCom.py b/module/plugins/accounts/EasybytezCom.py index 5e1a4f962..3f8254117 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.13" + __version__ = "0.14" __status__ = "testing" __description__ = """EasyBytez.com account plugin""" @@ -17,4 +17,9 @@ class EasybytezCom(XFSAccount): ("guidobelix", "guidobelix@hotmail.it")] - HOSTER_DOMAIN = "easybytez.com" + PLUGIN_DOMAIN = "easybytez.com" + + + def grab_hosters(self, user, password, data): + return re.search(r'</textarea>\s*Supported sites:(.*)', + self.load("http://www.easybytez.com")).group(1).split(',') diff --git a/module/plugins/accounts/EuroshareEu.py b/module/plugins/accounts/EuroshareEu.py index 2b90bfc13..09f08dc01 100644 --- a/module/plugins/accounts/EuroshareEu.py +++ b/module/plugins/accounts/EuroshareEu.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class EuroshareEu(Account): __name__ = "EuroshareEu" __type__ = "account" - __version__ = "0.05" + __version__ = "0.06" __status__ = "testing" __description__ = """Euroshare.eu account plugin""" @@ -17,7 +17,7 @@ class EuroshareEu(Account): __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): self.relogin(user) html = self.load("http://euroshare.eu/customer-zone/settings/") @@ -32,7 +32,7 @@ class EuroshareEu(Account): return {'validuntil': validuntil, 'trafficleft': -1, 'premium': premium} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load('http://euroshare.eu/customer-zone/login/', post={'trvale' : "1", 'login' : user, diff --git a/module/plugins/accounts/ExashareCom.py b/module/plugins/accounts/ExashareCom.py index 26594c702..6b352e40e 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.02" + __version__ = "0.03" __status__ = "testing" __description__ = """Exashare.com account plugin""" @@ -14,4 +14,4 @@ class ExashareCom(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "exashare.com" + PLUGIN_DOMAIN = "exashare.com" diff --git a/module/plugins/accounts/FastixRu.py b/module/plugins/accounts/FastixRu.py index 31e7d8bca..f48dfee5f 100644 --- a/module/plugins/accounts/FastixRu.py +++ b/module/plugins/accounts/FastixRu.py @@ -7,7 +7,7 @@ from module.common.json_layer import json_loads class FastixRu(Account): __name__ = "FastixRu" __type__ = "account" - __version__ = "0.07" + __version__ = "0.08" __status__ = "testing" __description__ = """Fastix account plugin""" @@ -15,7 +15,7 @@ class FastixRu(Account): __authors__ = [("Massimo Rosamilia", "max@spiritix.eu")] - def grab_hosters(self, user, password, data, req): + def grab_hosters(self, user, password, data): html = self.load("http://fastix.ru/api_v2", get={'apikey': "5182964c3f8f9a7f0b00000a_kelmFB4n1IrnCDYuIFn2y", 'sub' : "allowed_sources"}) @@ -24,8 +24,7 @@ class FastixRu(Account): return host_list - def grab_info(self, user, password, data, req): - data = self.get_data(user) + def grab_info(self, user, password, data): html = json_loads(self.load("http://fastix.ru/api_v2/", get={'apikey': data['apikey'], 'sub' : "getaccountdetails"})) @@ -40,7 +39,7 @@ class FastixRu(Account): return account_info - def login(self, user, password, data, req): + def signin(self, user, password, data): api = json_loads(self.load("https://fastix.ru/api_v2/", get={'sub' : "get_apikey", 'email' : user, diff --git a/module/plugins/accounts/FastshareCz.py b/module/plugins/accounts/FastshareCz.py index 6cf2551d0..a6a2e2ac6 100644 --- a/module/plugins/accounts/FastshareCz.py +++ b/module/plugins/accounts/FastshareCz.py @@ -9,7 +9,7 @@ from module.plugins.internal.Plugin import set_cookie class FastshareCz(Account): __name__ = "FastshareCz" __type__ = "account" - __version__ = "0.10" + __version__ = "0.11" __status__ = "testing" __description__ = """Fastshare.cz account plugin""" @@ -21,7 +21,7 @@ class FastshareCz(Account): CREDIT_PATTERN = r'Credit\s*:\s*</td>\s*<td>(.+?)\s*<' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): validuntil = -1 trafficleft = None premium = False @@ -39,8 +39,8 @@ class FastshareCz(Account): 'premium' : premium} - def login(self, user, password, data, req): - set_cookie(req.cj, "fastshare.cz", "lang", "en") + def signin(self, user, password, data): + set_cookie(self.req.cj, "fastshare.cz", "lang", "en") self.load('http://www.fastshare.cz/login') #@NOTE: Do not remove or it will not login diff --git a/module/plugins/accounts/File4SafeCom.py b/module/plugins/accounts/File4SafeCom.py index 54c3a2359..8e5f437b3 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.06" + __version__ = "0.07" __status__ = "testing" __description__ = """File4Safe.com account plugin""" @@ -14,6 +14,6 @@ class File4SafeCom(XFSAccount): __authors__ = [("stickell", "l.stickell@yahoo.it")] - HOSTER_DOMAIN = "file4safe.com" + PLUGIN_DOMAIN = "file4safe.com" LOGIN_FAIL_PATTERN = r'input_login' diff --git a/module/plugins/accounts/FileParadoxIn.py b/module/plugins/accounts/FileParadoxIn.py index 21f43be6e..86183f4d3 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.03" + __version__ = "0.04" __status__ = "testing" __description__ = """FileParadox.in account plugin""" @@ -14,4 +14,4 @@ class FileParadoxIn(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "fileparadox.in" + PLUGIN_DOMAIN = "fileparadox.in" diff --git a/module/plugins/accounts/FilecloudIo.py b/module/plugins/accounts/FilecloudIo.py index 075778af4..d80a8b9d6 100644 --- a/module/plugins/accounts/FilecloudIo.py +++ b/module/plugins/accounts/FilecloudIo.py @@ -8,7 +8,7 @@ from module.plugins.internal.Plugin import set_cookie class FilecloudIo(Account): __name__ = "FilecloudIo" __type__ = "account" - __version__ = "0.08" + __version__ = "0.09" __status__ = "testing" __description__ = """FilecloudIo account plugin""" @@ -17,7 +17,7 @@ class FilecloudIo(Account): ("stickell", "l.stickell@yahoo.it")] - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): #: 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", @@ -43,8 +43,8 @@ class FilecloudIo(Account): return {'premium': False} - def login(self, user, password, data, req): - set_cookie(req.cj, "secure.filecloud.io", "lang", "en") + def signin(self, user, password, data): + set_cookie(self.req.cj, "secure.filecloud.io", "lang", "en") html = self.load('https://secure.filecloud.io/user-login.html') if not hasattr(self, "form_data"): diff --git a/module/plugins/accounts/FilefactoryCom.py b/module/plugins/accounts/FilefactoryCom.py index 69b1a7d7e..0bb814039 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.18" + __version__ = "0.19" __status__ = "testing" __description__ = """Filefactory.com account plugin""" @@ -22,7 +22,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 grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): html = self.load("http://www.filefactory.com/account/") m = re.search(self.VALID_UNTIL_PATTERN, html) @@ -37,13 +37,13 @@ class FilefactoryCom(Account): return {'premium': premium, 'trafficleft': -1, 'validuntil': validuntil} - def login(self, user, password, data, req): - req.http.c.setopt(pycurl.REFERER, "http://www.filefactory.com/member/login.php") + def signin(self, user, password, data): + self.req.http.c.setopt(pycurl.REFERER, "http://www.filefactory.com/member/login.php") html = self.load("https://www.filefactory.com/member/signin.php", post={'loginEmail' : user, 'loginPassword': password, 'Submit' : "Sign In"}) - if req.lastEffectiveURL != "http://www.filefactory.com/account/": + if self.req.lastEffectiveURL != "http://www.filefactory.com/account/": self.fail_login() diff --git a/module/plugins/accounts/FilejungleCom.py b/module/plugins/accounts/FilejungleCom.py index a2ab676ee..a7a1c3f56 100644 --- a/module/plugins/accounts/FilejungleCom.py +++ b/module/plugins/accounts/FilejungleCom.py @@ -10,7 +10,7 @@ from module.plugins.internal.Account import Account class FilejungleCom(Account): __name__ = "FilejungleCom" __type__ = "account" - __version__ = "0.15" + __version__ = "0.16" __status__ = "testing" __description__ = """Filejungle.com account plugin""" @@ -25,7 +25,7 @@ class FilejungleCom(Account): LOGIN_FAILED_PATTERN = r'<span htmlfor="loginUser(Name|Password)" generated="true" class="fail_info">' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): html = self.load(self.URL + "dashboard.php") m = re.search(self.TRAFFIC_LEFT_PATTERN, html) if m: @@ -38,7 +38,7 @@ class FilejungleCom(Account): return {'premium': premium, 'trafficleft': -1, 'validuntil': validuntil} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load(urlparse.urljoin(self.URL, "login.php"), post={'loginUserName' : user, 'loginUserPassword' : password, diff --git a/module/plugins/accounts/FileomCom.py b/module/plugins/accounts/FileomCom.py index 957f4ef05..0bd0b60cf 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.03" + __version__ = "0.04" __status__ = "testing" __description__ = """Fileom.com account plugin""" @@ -14,4 +14,4 @@ class FileomCom(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "fileom.com" + PLUGIN_DOMAIN = "fileom.com" diff --git a/module/plugins/accounts/FilerNet.py b/module/plugins/accounts/FilerNet.py index 8cfc39ef5..96bdebd81 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.08" + __version__ = "0.09" __status__ = "testing" __description__ = """Filer.net account plugin""" @@ -23,7 +23,7 @@ class FilerNet(Account): FREE_PATTERN = r'Account Status</th>\s*<td>\s*Free' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): html = self.load("https://filer.net/profile") #: Free user @@ -43,7 +43,7 @@ class FilerNet(Account): return {'premium': False, 'validuntil': None, 'trafficleft': None} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load("https://filer.net/login") token = re.search(self.TOKEN_PATTERN, html).group(1) diff --git a/module/plugins/accounts/FilerioCom.py b/module/plugins/accounts/FilerioCom.py index 8a4750036..d843dd605 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.04" + __version__ = "0.05" __status__ = "testing" __description__ = """FileRio.in account plugin""" @@ -14,4 +14,4 @@ class FilerioCom(XFSAccount): __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - HOSTER_DOMAIN = "filerio.in" + PLUGIN_DOMAIN = "filerio.in" diff --git a/module/plugins/accounts/FilesMailRu.py b/module/plugins/accounts/FilesMailRu.py index cbbdd7528..551a7b8e5 100644 --- a/module/plugins/accounts/FilesMailRu.py +++ b/module/plugins/accounts/FilesMailRu.py @@ -6,7 +6,7 @@ from module.plugins.internal.Account import Account class FilesMailRu(Account): __name__ = "FilesMailRu" __type__ = "account" - __version__ = "0.14" + __version__ = "0.15" __status__ = "testing" __description__ = """Filesmail.ru account plugin""" @@ -14,11 +14,11 @@ class FilesMailRu(Account): __authors__ = [("RaNaN", "RaNaN@pyload.org")] - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): return {'validuntil': None, 'trafficleft': None} - def login(self, user, password, data, req): + def signin(self, user, password, data): user, domain = user.split("@") html = self.load("https://swa.mail.ru/cgi-bin/auth", diff --git a/module/plugins/accounts/FileserveCom.py b/module/plugins/accounts/FileserveCom.py index 86401a486..bc56d4b96 100644 --- a/module/plugins/accounts/FileserveCom.py +++ b/module/plugins/accounts/FileserveCom.py @@ -9,7 +9,7 @@ from module.common.json_layer import json_loads class FileserveCom(Account): __name__ = "FileserveCom" __type__ = "account" - __version__ = "0.23" + __version__ = "0.24" __status__ = "testing" __description__ = """Fileserve.com account plugin""" @@ -17,9 +17,7 @@ class FileserveCom(Account): __authors__ = [("mkaay", "mkaay@mkaay.de")] - def grab_info(self, user, password, data, req): - data = self.get_data(user) - + def grab_info(self, user, password, data): html = self.load("http://app.fileserve.com/api/login/", post={'username': user, 'password': password, @@ -33,7 +31,7 @@ class FileserveCom(Account): return {'premium': False, 'trafficleft': None, 'validuntil': None} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load("http://app.fileserve.com/api/login/", post={'username': user, 'password': password, diff --git a/module/plugins/accounts/FourSharedCom.py b/module/plugins/accounts/FourSharedCom.py index 913de1a55..05e75f326 100644 --- a/module/plugins/accounts/FourSharedCom.py +++ b/module/plugins/accounts/FourSharedCom.py @@ -7,7 +7,7 @@ from module.plugins.internal.Plugin import set_cookie class FourSharedCom(Account): __name__ = "FourSharedCom" __type__ = "account" - __version__ = "0.08" + __version__ = "0.09" __status__ = "testing" __description__ = """FourShared.com account plugin""" @@ -16,13 +16,13 @@ class FourSharedCom(Account): ("stickell", "l.stickell@yahoo.it")] - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): #: Free mode only for now return {'premium': False} - def login(self, user, password, data, req): - set_cookie(req.cj, "4shared.com", "4langcookie", "en") + def signin(self, user, password, data): + set_cookie(self.req.cj, "4shared.com", "4langcookie", "en") res = self.load("https://www.4shared.com/web/login", post={'login' : user, diff --git a/module/plugins/accounts/FreakshareCom.py b/module/plugins/accounts/FreakshareCom.py index f02741ed2..42551b732 100644 --- a/module/plugins/accounts/FreakshareCom.py +++ b/module/plugins/accounts/FreakshareCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class FreakshareCom(Account): __name__ = "FreakshareCom" __type__ = "account" - __version__ = "0.16" + __version__ = "0.17" __status__ = "testing" __description__ = """Freakshare.com account plugin""" @@ -17,7 +17,7 @@ class FreakshareCom(Account): __authors__ = [("RaNaN", "RaNaN@pyload.org")] - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): premium = False validuntil = None trafficleft = None @@ -41,7 +41,7 @@ class FreakshareCom(Account): return {'premium': premium, 'validuntil': validuntil, 'trafficleft': trafficleft} - def login(self, user, password, data, req): + def signin(self, user, password, data): self.load("http://freakshare.com/index.php?language=EN") html = self.load("https://freakshare.com/login.html", diff --git a/module/plugins/accounts/FreeWayMe.py b/module/plugins/accounts/FreeWayMe.py index 0cf80348a..dc8027b3c 100644 --- a/module/plugins/accounts/FreeWayMe.py +++ b/module/plugins/accounts/FreeWayMe.py @@ -7,7 +7,7 @@ from module.common.json_layer import json_loads class FreeWayMe(Account): __name__ = "FreeWayMe" __type__ = "account" - __version__ = "0.17" + __version__ = "0.18" __status__ = "testing" __description__ = """FreeWayMe account plugin""" @@ -15,8 +15,16 @@ class FreeWayMe(Account): __authors__ = [("Nicolas Giese", "james@free-way.me")] - def grab_info(self, user, password, data, req): - status = self.get_account_status(user, password, req) + def grab_hosters(self, user, password, data): + hostis = self.load("http://www.free-way.bz/ajax/jd.php", + get={'id' : 3, + 'user': user, + 'pass': password}).replace("\"", "") #@TODO: Revert to `https` in 0.4.10 + return [x.strip() for x in hostis.split(",") if x.strip()] + + + def grab_info(self, user, password, data): + status = self.get_account_status(user, password) self.log_debug(status) @@ -33,15 +41,15 @@ class FreeWayMe(Account): return account_info - def login(self, user, password, data, req): - status = self.get_account_status(user, password, req) + def signin(self, user, password, data): + status = self.get_account_status(user, password) #: Check if user and password are valid if not status: self.fail_login() - def get_account_status(self, user, password, req): + def get_account_status(self, user, password): 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': password}) diff --git a/module/plugins/accounts/FshareVn.py b/module/plugins/accounts/FshareVn.py index 3bd6d9d7f..4e078ccc9 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.12" + __version__ = "0.13" __status__ = "testing" __description__ = """Fshare.vn account plugin""" @@ -24,7 +24,7 @@ class FshareVn(Account): DIRECT_DOWNLOAD_PATTERN = ur'<input type="checkbox"\s*([^=>]*)[^>]*/>KÃch hoạt download trá»±c tiếp</dt>' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): html = self.load("http://www.fshare.vn/account_info.php") if re.search(self.LIFETIME_PATTERN, html): @@ -45,7 +45,7 @@ class FshareVn(Account): return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load("https://www.fshare.vn/login.php", post={'LoginForm[email]' : user, 'LoginForm[password]' : password, diff --git a/module/plugins/accounts/Ftp.py b/module/plugins/accounts/Ftp.py index 2d35ab7bb..d73b557ef 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.03" + __version__ = "0.04" __status__ = "testing" __description__ = """Ftp dummy account plugin""" diff --git a/module/plugins/accounts/HellshareCz.py b/module/plugins/accounts/HellshareCz.py index 7dbc828a0..3031c26b6 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.19" + __version__ = "0.20" __status__ = "testing" __description__ = """Hellshare.cz account plugin""" @@ -20,7 +20,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 grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): self.relogin(user) html = self.load("http://www.hellshare.com/") @@ -53,13 +53,13 @@ class HellshareCz(Account): return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load('http://www.hellshare.com/') - if req.lastEffectiveURL != 'http://www.hellshare.com/': + if self.req.lastEffectiveURL != 'http://www.hellshare.com/': #: Switch to English - self.log_debug("Switch lang - URL: %s" % req.lastEffectiveURL) + self.log_debug("Switch lang - URL: %s" % self.req.lastEffectiveURL) - json = self.load("%s?do=locRouter-show" % req.lastEffectiveURL) + json = self.load("%s?do=locRouter-show" % self.req.lastEffectiveURL) hash = re.search(r"(\-\-[0-9a-f]+\-)", json).group(1) self.log_debug("Switch lang - HASH: %s" % hash) diff --git a/module/plugins/accounts/HighWayMe.py b/module/plugins/accounts/HighWayMe.py index 5189870b0..14cd1081c 100644 --- a/module/plugins/accounts/HighWayMe.py +++ b/module/plugins/accounts/HighWayMe.py @@ -7,7 +7,7 @@ from module.plugins.internal.Account import Account class HighWayMe(Account): __name__ = "HighWayMe.py" __type__ = "account" - __version__ = "0.05" + __version__ = "0.06" __status__ = "testing" __description__ = """High-Way.me account plugin""" @@ -15,7 +15,13 @@ class HighWayMe(Account): __authors__ = [("EvolutionClip", "evolutionclip@live.de")] - def grab_info(self, user, password, data, req): + def grab_hosters(self, user, password, data): + json_data = json_loads(self.load("https://high-way.me/api.php", + get={'hoster': 1})) + return [element['name'] for element in json_data['hoster']] + + + def grab_info(self, user, password, data): premium = False validuntil = -1 trafficleft = None @@ -40,7 +46,7 @@ class HighWayMe(Account): 'trafficleft': trafficleft} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load("https://high-way.me/api.php?login", post={'login': '1', 'user': user, diff --git a/module/plugins/accounts/Http.py b/module/plugins/accounts/Http.py index dcab156ee..261b3b240 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.03" + __version__ = "0.04" __status__ = "testing" __description__ = """Http dummy account plugin""" diff --git a/module/plugins/accounts/HugefilesNet.py b/module/plugins/accounts/HugefilesNet.py index fa64945a3..a5920f4a4 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.03" + __version__ = "0.04" __status__ = "testing" __description__ = """Hugefiles.net account plugin""" @@ -14,4 +14,4 @@ class HugefilesNet(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "hugefiles.net" + PLUGIN_DOMAIN = "hugefiles.net" diff --git a/module/plugins/accounts/HundredEightyUploadCom.py b/module/plugins/accounts/HundredEightyUploadCom.py index a8527d62c..8b757de61 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.04" + __version__ = "0.05" __status__ = "testing" __description__ = """180upload.com account plugin""" @@ -14,4 +14,4 @@ class HundredEightyUploadCom(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "180upload.com" + PLUGIN_DOMAIN = "180upload.com" diff --git a/module/plugins/accounts/JunkyvideoCom.py b/module/plugins/accounts/JunkyvideoCom.py index 5fcefda36..316332fd9 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.02" + __version__ = "0.03" __status__ = "testing" __description__ = """Junkyvideo.com account plugin""" @@ -14,4 +14,4 @@ class JunkyvideoCom(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "junkyvideo.com" + PLUGIN_DOMAIN = "junkyvideo.com" diff --git a/module/plugins/accounts/JunocloudMe.py b/module/plugins/accounts/JunocloudMe.py index 791835dfe..95bc57640 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.03" + __version__ = "0.04" __status__ = "testing" __description__ = """Junocloud.me account plugin""" @@ -14,4 +14,4 @@ class JunocloudMe(XFSAccount): __authors__ = [("guidobelix", "guidobelix@hotmail.it")] - HOSTER_DOMAIN = "junocloud.me" + PLUGIN_DOMAIN = "junocloud.me" diff --git a/module/plugins/accounts/Keep2ShareCc.py b/module/plugins/accounts/Keep2ShareCc.py index f67219af0..e76ec212c 100644 --- a/module/plugins/accounts/Keep2ShareCc.py +++ b/module/plugins/accounts/Keep2ShareCc.py @@ -10,7 +10,7 @@ from module.plugins.internal.Plugin import set_cookie class Keep2ShareCc(Account): __name__ = "Keep2ShareCc" __type__ = "account" - __version__ = "0.09" + __version__ = "0.10" __status__ = "testing" __description__ = """Keep2Share.cc account plugin""" @@ -25,7 +25,7 @@ class Keep2ShareCc(Account): LOGIN_FAIL_PATTERN = r'Please fix the following input errors' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): validuntil = None trafficleft = -1 premium = False @@ -61,8 +61,8 @@ class Keep2ShareCc(Account): return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium} - def login(self, user, password, data, req): - set_cookie(req.cj, "keep2share.cc", "lang", "en") + def signin(self, user, password, data): + set_cookie(self.req.cj, "keep2share.cc", "lang", "en") html = self.load("https://keep2share.cc/login.html", post={'LoginForm[username]' : user, diff --git a/module/plugins/accounts/LetitbitNet.py b/module/plugins/accounts/LetitbitNet.py index f829e5737..f7350e547 100644 --- a/module/plugins/accounts/LetitbitNet.py +++ b/module/plugins/accounts/LetitbitNet.py @@ -7,7 +7,7 @@ from module.plugins.internal.Account import Account class LetitbitNet(Account): __name__ = "LetitbitNet" __type__ = "account" - __version__ = "0.05" + __version__ = "0.06" __status__ = "testing" __description__ = """Letitbit.net account plugin""" @@ -15,7 +15,7 @@ class LetitbitNet(Account): __authors__ = [("stickell", "l.stickell@yahoo.it")] - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): ## DISABLED BECAUSE IT GET 'key exausted' EVEN IF VALID ## # json_data = [password, ['key/info']] # api_rep = self.load("http://api.letitbit.net/json", @@ -30,6 +30,6 @@ class LetitbitNet(Account): return {'premium': True} - def login(self, user, password, data, req): + def signin(self, user, password, data): #: API_KEY is the username and the PREMIUM_KEY is the password self.log_info(_("You must use your API KEY as username and the PREMIUM KEY as password")) diff --git a/module/plugins/accounts/LinksnappyCom.py b/module/plugins/accounts/LinksnappyCom.py index 53801c8b0..6e2b400f1 100644 --- a/module/plugins/accounts/LinksnappyCom.py +++ b/module/plugins/accounts/LinksnappyCom.py @@ -9,7 +9,7 @@ from module.common.json_layer import json_loads class LinksnappyCom(Account): __name__ = "LinksnappyCom" __type__ = "account" - __version__ = "0.08" + __version__ = "0.09" __status__ = "testing" __description__ = """Linksnappy.com account plugin""" @@ -17,8 +17,14 @@ class LinksnappyCom(Account): __authors__ = [("stickell", "l.stickell@yahoo.it")] - def grab_info(self, user, password, data, req): - data = self.get_data(user) + def grab_hosters(self, user, password, data): + json_data = self.load("http://gen.linksnappy.com/lseAPI.php", get={'act': "FILEHOSTS"}) + json_data = json_loads(json_data) + + return json_data['return'].keys() + + + def grab_info(self, user, password, data): r = self.load('http://gen.linksnappy.com/lseAPI.php', get={'act' : 'USERDETAILS', 'username': user, @@ -52,7 +58,7 @@ class LinksnappyCom(Account): 'trafficleft': trafficleft} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load("https://gen.linksnappy.com/lseAPI.php", get={'act' : 'USERDETAILS', 'username': user, diff --git a/module/plugins/accounts/MegaDebridEu.py b/module/plugins/accounts/MegaDebridEu.py index 7a14730ce..b6f7660e9 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.23" + __version__ = "0.24" __status__ = "testing" __description__ = """Mega-debrid.eu account plugin""" @@ -19,8 +19,20 @@ class MegaDebridEu(Account): API_URL = "https://www.mega-debrid.eu/api.php" - def grab_info(self, user, password, data, req): - data = self.get_data(user) + def grab_hosters(self, user, password, data): + 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.log_error(_("Unable to retrieve hoster list")) + host_list = [] + + return host_list + + + def grab_info(self, user, password, data): jsonResponse = self.load(self.API_URL, get={'action' : 'connectUser', 'login' : user, @@ -34,7 +46,7 @@ class MegaDebridEu(Account): return {'status': False, 'premium': False} - def login(self, user, password, data, req): + def signin(self, user, password, data): jsonResponse = self.load(self.API_URL, get={'action' : 'connectUser', 'login' : user, diff --git a/module/plugins/accounts/MegaRapidCz.py b/module/plugins/accounts/MegaRapidCz.py index 8a5f92404..00ffcb742 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.38" + __version__ = "0.39" __status__ = "testing" __description__ = """MegaRapid.cz account plugin""" @@ -25,12 +25,11 @@ class MegaRapidCz(Account): TRAFFIC_LEFT_PATTERN = r'<tr><td>Kredit</td><td>(.*?) GiB' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): htmll = self.load("http://megarapid.cz/mujucet/") m = re.search(self.LIMITDL_PATTERN, htmll) if m: - data = self.get_data(user) data['options']['limitDL'] = [int(m.group(1))] m = re.search(self.VALID_UNTIL_PATTERN, htmll) @@ -46,7 +45,7 @@ class MegaRapidCz(Account): return {'premium': False, 'trafficleft': None, 'validuntil': None} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load("http://megarapid.cz/prihlaseni/") if "Heslo:" in html: diff --git a/module/plugins/accounts/MegaRapidoNet.py b/module/plugins/accounts/MegaRapidoNet.py index f11cf284c..84ef65e61 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.05" + __version__ = "0.06" __status__ = "testing" __description__ = """MegaRapido.net account plugin""" @@ -21,7 +21,68 @@ 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 grab_info(self, user, password, data, req): + def grab_hosters(self, user, password, data): + hosters = {'1fichier' : [], # leave it there are so many possible addresses? + '1st-files' : ['1st-files.com'], + '2shared' : ['2shared.com'], + '4shared' : ['4shared.com', '4shared-china.com'], + 'asfile' : ['http://asfile.com/'], + 'bitshare' : ['bitshare.com'], + 'brupload' : ['brupload.net'], + 'crocko' : ['crocko.com', 'easy-share.com'], + 'dailymotion' : ['dailymotion.com'], + 'depfile' : ['depfile.com'], + 'depositfiles': ['depositfiles.com', 'dfiles.eu'], + 'dizzcloud' : ['dizzcloud.com'], + 'dl.dropbox' : [], + 'extabit' : ['extabit.com'], + 'extmatrix' : ['extmatrix.com'], + 'facebook' : [], + 'file4go' : ['file4go.com'], + 'filecloud' : ['filecloud.io', 'ifile.it', 'mihd.net'], + 'filefactory' : ['filefactory.com'], + 'fileom' : ['fileom.com'], + 'fileparadox' : ['fileparadox.in'], + 'filepost' : ['filepost.com', 'fp.io'], + 'filerio' : ['filerio.in', 'filerio.com', 'filekeen.com'], + 'filesflash' : ['filesflash.com'], + 'firedrive' : ['firedrive.com', 'putlocker.com'], + 'flashx' : [], + 'freakshare' : ['freakshare.net', 'freakshare.com'], + 'gigasize' : ['gigasize.com'], + 'hipfile' : ['hipfile.com'], + 'junocloud' : ['junocloud.me'], + 'letitbit' : ['letitbit.net', 'shareflare.net'], + 'mediafire' : ['mediafire.com'], + 'mega' : ['mega.co.nz'], + 'megashares' : ['megashares.com'], + 'metacafe' : ['metacafe.com'], + 'netload' : ['netload.in'], + 'oboom' : ['oboom.com'], + 'rapidgator' : ['rapidgator.net'], + 'rapidshare' : ['rapidshare.com'], + 'rarefile' : ['rarefile.net'], + 'ryushare' : ['ryushare.com'], + 'sendspace' : ['sendspace.com'], + 'turbobit' : ['turbobit.net', 'unextfiles.com'], + 'uploadable' : ['uploadable.ch'], + 'uploadbaz' : ['uploadbaz.com'], + 'uploaded' : ['uploaded.to', 'uploaded.net', 'ul.to'], + 'uploadhero' : ['uploadhero.com'], + 'uploading' : ['uploading.com'], + 'uptobox' : ['uptobox.com'], + 'xvideos' : ['xvideos.com'], + 'youtube' : ['youtube.com']} + + hoster_list = [] + + for item in hosters.values(): + hoster_list.extend(item) + + return hoster_list + + + def grab_info(self, user, password, data): validuntil = None trafficleft = None premium = False @@ -40,7 +101,7 @@ class MegaRapidoNet(Account): 'premium' : premium} - def login(self, user, password, data, req): + def signin(self, user, password, data): self.load("http://megarapido.net/login") self.load("http://megarapido.net/painel_user/ajax/logar.php", post={'login': user, diff --git a/module/plugins/accounts/MegasharesCom.py b/module/plugins/accounts/MegasharesCom.py index da8d6d62f..6967a7502 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.06" + __version__ = "0.07" __status__ = "testing" __description__ = """Megashares.com account plugin""" @@ -20,7 +20,7 @@ class MegasharesCom(Account): VALID_UNTIL_PATTERN = r'<p class="premium_info_box">Period Ends: (\w{3} \d{1,2}, \d{4})</p>' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): # self.relogin(user) html = self.load("http://d01.megashares.com/myms.php") @@ -38,7 +38,7 @@ class MegasharesCom(Account): return {'validuntil': validuntil, 'trafficleft': -1, 'premium': premium} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load('http://d01.megashares.com/myms_login.php', post={'httpref' : "", 'myms_login' : "Login", diff --git a/module/plugins/accounts/MovReelCom.py b/module/plugins/accounts/MovReelCom.py index 090950bf2..1594a2b6a 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.04" + __version__ = "0.05" __status__ = "testing" __description__ = """Movreel.com account plugin""" @@ -17,4 +17,4 @@ class MovReelCom(XFSAccount): login_timeout = 60 info_threshold = 30 - HOSTER_DOMAIN = "movreel.com" + PLUGIN_DOMAIN = "movreel.com" diff --git a/module/plugins/accounts/MultihostersCom.py b/module/plugins/accounts/MultihostersCom.py index ed04ad3c2..1ede88574 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.04" + __version__ = "0.05" __status__ = "testing" __description__ = """Multihosters.com account plugin""" @@ -14,4 +14,4 @@ class MultihostersCom(ZeveraCom): __authors__ = [("tjeh", "tjeh@gmx.net")] - HOSTER_DOMAIN = "multihosters.com" + PLUGIN_DOMAIN = "multihosters.com" diff --git a/module/plugins/accounts/MultishareCz.py b/module/plugins/accounts/MultishareCz.py index b1cbdea8a..62c149561 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.08" + __version__ = "0.09" __status__ = "testing" __description__ = """Multishare.cz account plugin""" @@ -19,8 +19,15 @@ class MultishareCz(Account): TRAFFIC_LEFT_PATTERN = r'<span class="profil-zvyrazneni">Kredit:</span>\s*<strong>(?P<S>[\d.,]+) (?P<U>[\w^_]+)</strong>' ACCOUNT_INFO_PATTERN = r'<input type="hidden" id="(u_ID|u_hash)" name=".+?" value="(.+?)">' + PLUGIN_PATTERN = r'<img class="logo-shareserveru"[^>]*?alt="(.+?)"></td>\s*<td class="stav">[^>]*?alt="OK"' - def grab_info(self, user, password, data, req): + + def grab_hosters(self, user, password, data): + html = self.load("http://www.multishare.cz/monitoring/") + return re.findall(self.PLUGIN_PATTERN, html) + + + def grab_info(self, user, password, data): # self.relogin(user) html = self.load("http://www.multishare.cz/profil/") @@ -34,7 +41,7 @@ class MultishareCz(Account): return dict(mms_info, **{'validuntil': -1, 'trafficleft': trafficleft}) - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load('https://www.multishare.cz/html/prihlaseni_process.php', post={'akce' : "PÅihlásit", 'heslo': password, diff --git a/module/plugins/accounts/MyfastfileCom.py b/module/plugins/accounts/MyfastfileCom.py index 244a7408b..1b4854751 100644 --- a/module/plugins/accounts/MyfastfileCom.py +++ b/module/plugins/accounts/MyfastfileCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account class MyfastfileCom(Account): __name__ = "MyfastfileCom" __type__ = "account" - __version__ = "0.07" + __version__ = "0.08" __status__ = "testing" __description__ = """Myfastfile.com account plugin""" @@ -17,7 +17,14 @@ class MyfastfileCom(Account): __authors__ = [("stickell", "l.stickell@yahoo.it")] - def grab_info(self, user, password, data, req): + def grab_hosters(self, user, password, data): + json_data = self.load("http://myfastfile.com/api.php", get={'hosts': ""}) + self.log_debug("JSON data", json_data) + json_data = json_loads(json_data) + + return json_data['hosts'] + + def grab_info(self, user, password, data): 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} @@ -25,7 +32,7 @@ class MyfastfileCom(Account): self.log_error(_("Unable to get account information")) - def login(self, user, password, data, req): + def signin(self, user, password, data): #: Password to use is the API-Password written in http://myfastfile.com/myaccount html = self.load("https://myfastfile.com/api.php", get={'user': user, diff --git a/module/plugins/accounts/NitroflareCom.py b/module/plugins/accounts/NitroflareCom.py index ec90ac341..11a3a43e7 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.07" + __version__ = "0.08" __status__ = "testing" __description__ = """Nitroflare.com account plugin""" @@ -24,7 +24,7 @@ class NitroflareCom(Account): TOKEN_PATTERN = r'name="token" value="(.+?)"' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): validuntil = -1 trafficleft = None premium = False @@ -68,7 +68,7 @@ class NitroflareCom(Account): 'premium' : premium} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load("https://nitroflare.com/login") token = re.search(self.TOKEN_PATTERN, html).group(1) diff --git a/module/plugins/accounts/NoPremiumPl.py b/module/plugins/accounts/NoPremiumPl.py index e8de0f4cf..6d6b372b7 100644 --- a/module/plugins/accounts/NoPremiumPl.py +++ b/module/plugins/accounts/NoPremiumPl.py @@ -6,12 +6,13 @@ import time from module.common.json_layer import json_loads from module.plugins.internal.Account import Account +# from module.plugins.internal.MultiAccount import MultiAccount class NoPremiumPl(Account): __name__ = "NoPremiumPl" __type__ = "account" - __version__ = "0.05" + __version__ = "0.06" __status__ = "testing" __description__ = "NoPremium.pl account plugin" @@ -27,13 +28,16 @@ class NoPremiumPl(Account): 'loc' : "1" , 'info' : "1" } - _req = None - _usr = None - _pwd = None + def grab_hosters(self, user, password, data): + 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.log_debug(hostings_domains) - def grab_info(self, user, password, data, req): - self._req = req + return hostings_domains + + + def grab_info(self, user, password, data): try: result = json_loads(self.run_auth_query()) @@ -55,10 +59,9 @@ class NoPremiumPl(Account): 'premium' : premium } - def login(self, user, password, data, req): - self._usr = user - self._pwd = hashlib.sha1(hashlib.md5(password).hexdigest()).hexdigest() - self._req = req + def signin(self, user, password, data): + data['usr'] = user + data['pwd'] = hashlib.sha1(hashlib.md5(password).hexdigest()).hexdigest() try: response = json_loads(self.run_auth_query()) @@ -69,14 +72,11 @@ class NoPremiumPl(Account): if "errno" in response.keys(): self.fail_login() - data['usr'] = self._usr - data['pwd'] = self._pwd - def create_auth_query(self): query = self.API_QUERY - query['username'] = self._usr - query['password'] = self._pwd + query['username'] = self.info['data']['usr'] + query['password'] = self.info['data']['pwd'] return query diff --git a/module/plugins/accounts/NosuploadCom.py b/module/plugins/accounts/NosuploadCom.py index 5febc8d66..65ac8d4fc 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.03" + __version__ = "0.04" __status__ = "testing" __description__ = """Nosupload.com account plugin""" @@ -14,4 +14,4 @@ class NosuploadCom(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "nosupload.com" + PLUGIN_DOMAIN = "nosupload.com" diff --git a/module/plugins/accounts/NovafileCom.py b/module/plugins/accounts/NovafileCom.py index 524c01087..1506ec315 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.03" + __version__ = "0.04" __status__ = "testing" __description__ = """Novafile.com account plugin""" @@ -14,4 +14,4 @@ class NovafileCom(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "novafile.com" + PLUGIN_DOMAIN = "novafile.com" diff --git a/module/plugins/accounts/NowVideoSx.py b/module/plugins/accounts/NowVideoSx.py index f2b2b7bdc..3d8484b8b 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.06" + __version__ = "0.07" __status__ = "testing" __description__ = """NowVideo.at account plugin""" @@ -20,7 +20,7 @@ class NowVideoSx(Account): VALID_UNTIL_PATTERN = r'>Your premium membership expires on: (.+?)<' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): validuntil = None trafficleft = -1 premium = None @@ -48,7 +48,7 @@ class NowVideoSx(Account): return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load("http://www.nowvideo.sx/login.php", post={'user': user, 'pass': password}) diff --git a/module/plugins/accounts/OboomCom.py b/module/plugins/accounts/OboomCom.py index abb223e65..c19396854 100644 --- a/module/plugins/accounts/OboomCom.py +++ b/module/plugins/accounts/OboomCom.py @@ -23,7 +23,7 @@ from module.plugins.internal.Account import Account class OboomCom(Account): __name__ = "OboomCom" __type__ = "account" - __version__ = "0.28" + __version__ = "0.29" __status__ = "testing" __description__ = """Oboom.com account plugin""" @@ -31,10 +31,9 @@ class OboomCom(Account): __authors__ = [("stanley", "stanley.foerster@gmail.com")] - def load_account_data(self, user, req): - passwd = self.get_info(user)['login']['password'] - salt = passwd[::-1] - pbkdf2 = PBKDF2(passwd, salt, 1000).hexread(16) + def load_account_data(self, user, password): + salt = password[::-1] + pbkdf2 = PBKDF2(password, salt, 1000).hexread(16) result = json_loads(self.load("http://www.oboom.com/1/login", #@TODO: Revert to `https` in 0.4.10 get={'auth': user, @@ -47,8 +46,8 @@ class OboomCom(Account): return result[1] - def grab_info(self, name, req): - account_data = self.load_account_data(name, req) + def grab_info(self, user, password, data): + account_data = self.load_account_data(user, password) userData = account_data['user'] @@ -73,5 +72,5 @@ class OboomCom(Account): 'session' : session} - def login(self, user, password, data, req): - self.load_account_data(user, req) + def signin(self, user, password, data): + self.load_account_data(user, password) diff --git a/module/plugins/accounts/OneFichierCom.py b/module/plugins/accounts/OneFichierCom.py index e215e1fe0..9be982bee 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.16" + __version__ = "0.17" __status__ = "testing" __description__ = """1fichier.com account plugin""" @@ -22,7 +22,7 @@ class OneFichierCom(Account): VALID_UNTIL_PATTERN = r'Your subscription will end the (\d+-\d+-\d+)' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): validuntil = None trafficleft = -1 premium = None @@ -45,8 +45,8 @@ class OneFichierCom(Account): return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium or False} - def login(self, user, password, data, req): - req.http.c.setopt(pycurl.REFERER, "https://1fichier.com/login.pl?lg=en") + def signin(self, user, password, data): + self.req.http.c.setopt(pycurl.REFERER, "https://1fichier.com/login.pl?lg=en") html = self.load("https://1fichier.com/login.pl?lg=en", post={'mail' : user, diff --git a/module/plugins/accounts/OverLoadMe.py b/module/plugins/accounts/OverLoadMe.py index cdb500767..9a26ac368 100644 --- a/module/plugins/accounts/OverLoadMe.py +++ b/module/plugins/accounts/OverLoadMe.py @@ -7,7 +7,7 @@ from module.common.json_layer import json_loads class OverLoadMe(Account): __name__ = "OverLoadMe" __type__ = "account" - __version__ = "0.07" + __version__ = "0.08" __status__ = "testing" __description__ = """Over-Load.me account plugin""" @@ -15,8 +15,13 @@ class OverLoadMe(Account): __authors__ = [("marley", "marley@over-load.me")] - def grab_info(self, user, password, data, req): - data = self.get_data(user) + def grab_hosters(self, user, password, data): + 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()] + + + def grab_info(self, user, password, data): html = self.load("https://api.over-load.me/account.php", get={'user': user, 'auth': password}).strip() @@ -31,7 +36,7 @@ class OverLoadMe(Account): return {'premium': True, 'validuntil': data['expirationunix'], 'trafficleft': -1} - def login(self, user, password, data, req): + def signin(self, user, password, data): jsondata = self.load("https://api.over-load.me/account.php", get={'user': user, 'auth': password}).strip() diff --git a/module/plugins/accounts/PremiumTo.py b/module/plugins/accounts/PremiumTo.py index 946ee4f80..2b24f6edf 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.12" + __version__ = "0.13" __status__ = "testing" __description__ = """Premium.to account plugin""" @@ -16,10 +16,17 @@ class PremiumTo(Account): ("stickell", "l.stickell@yahoo.it")] - def grab_info(self, user, password, data, req): + def grab_hosters(self, user, password, data): + html = self.load("http://premium.to/api/hosters.php", + get={'username': user, + 'password': password}) + return [x.strip() for x in html.replace("\"", "").split(";")] + + + def grab_info(self, user, password, data): traffic = self.load("http://premium.to/api/straffic.php", #@TODO: Revert to `https` in 0.4.10 - get={'username': self.username, - 'password': self.password}) + get={'username': user, + 'password': password}) if "wrong username" not in traffic: trafficleft = sum(map(float, traffic.split(';'))) / 1024 #@TODO: Remove `/ 1024` in 0.4.10 @@ -28,12 +35,10 @@ class PremiumTo(Account): return {'premium': False, 'trafficleft': None, 'validuntil': None} - def login(self, user, password, data, req): - self.username = user - self.password = password + def signin(self, user, password, data): authcode = self.load("http://premium.to/api/getauthcode.php", #@TODO: Revert to `https` in 0.4.10 get={'username': user, - 'password': self.password}) + 'password': password}) if "wrong username" in authcode: self.fail_login() diff --git a/module/plugins/accounts/PremiumizeMe.py b/module/plugins/accounts/PremiumizeMe.py index fcc187efd..8fa2030c1 100644 --- a/module/plugins/accounts/PremiumizeMe.py +++ b/module/plugins/accounts/PremiumizeMe.py @@ -7,7 +7,7 @@ from module.plugins.internal.Account import Account class PremiumizeMe(Account): __name__ = "PremiumizeMe" __type__ = "account" - __version__ = "0.20" + __version__ = "0.21" __status__ = "testing" __description__ = """Premiumize.me account plugin""" @@ -15,7 +15,24 @@ class PremiumizeMe(Account): __authors__ = [("Florian Franzen", "FlorianFranzen@gmail.com")] - def grab_info(self, user, password, data, req): + def grab_hosters(self, user, password, data): + #: Get supported hosters list from premiumize.me using the + #: json API v1 (see https://secure.premiumize.me/?show=api) + answer = self.load("http://api.premiumize.me/pm-api/v1.php", #@TODO: Revert to `https` in 0.4.10 + get={'method' : "hosterlist", + 'params[login]': user, + 'params[pass]' : password}) + data = json_loads(answer) + + #: If account is not valid thera are no hosters available + if data['status'] != 200: + return [] + + #: Extract hosters from json file + return data['result']['hosterlist'] + + + def grab_info(self, user, password, data): #: Get user data from premiumize.me status = self.get_account_status(user, password) self.log_debug(status) @@ -30,7 +47,7 @@ class PremiumizeMe(Account): return account_info - def login(self, user, password, data, req): + def signin(self, user, password, data): #: Get user data from premiumize.me status = self.get_account_status(user, password) diff --git a/module/plugins/accounts/PutdriveCom.py b/module/plugins/accounts/PutdriveCom.py index 5356c4d1a..4da71f41b 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.03" + __version__ = "0.04" __status__ = "testing" __description__ = """Putdrive.com account plugin""" @@ -14,4 +14,4 @@ class PutdriveCom(ZeveraCom): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "putdrive.com" + PLUGIN_DOMAIN = "putdrive.com" diff --git a/module/plugins/accounts/QuickshareCz.py b/module/plugins/accounts/QuickshareCz.py index 97c320ec6..74377a052 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.06" + __version__ = "0.07" __status__ = "testing" __description__ = """Quickshare.cz account plugin""" @@ -19,7 +19,7 @@ class QuickshareCz(Account): TRAFFIC_LEFT_PATTERN = r'Stav kreditu: <strong>(.+?)</strong>' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): html = self.load("http://www.quickshare.cz/premium") m = re.search(self.TRAFFIC_LEFT_PATTERN, html) @@ -33,7 +33,7 @@ class QuickshareCz(Account): return {'validuntil': -1, 'trafficleft': trafficleft, 'premium': premium} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load('http://www.quickshare.cz/html/prihlaseni_process.php', post={'akce' : u'PÅihlásit', 'heslo': password, diff --git a/module/plugins/accounts/RPNetBiz.py b/module/plugins/accounts/RPNetBiz.py index f973ea4cd..2d2a7fba0 100644 --- a/module/plugins/accounts/RPNetBiz.py +++ b/module/plugins/accounts/RPNetBiz.py @@ -7,7 +7,7 @@ from module.common.json_layer import json_loads class RPNetBiz(Account): __name__ = "RPNetBiz" __type__ = "account" - __version__ = "0.16" + __version__ = "0.17" __status__ = "testing" __description__ = """RPNet.biz account plugin""" @@ -15,9 +15,24 @@ class RPNetBiz(Account): __authors__ = [("Dman", "dmanugm@gmail.com")] - def grab_info(self, user, password, data, req): + def grab_hosters(self, user, password, data): + res = self.load("https://premium.rpnet.biz/client_api.php", + get={'username': user, + 'password': password, + 'action' : "showHosterList"}) + hoster_list = json_loads(res) + + #: If account is not valid thera are no hosters available + if 'error' in hoster_list: + return [] + + #: Extract hosters from json file + return hoster_list['hosters'] + + + def grab_info(self, user, password, data): #: Get account information from rpnet.biz - res = self.get_account_status(user, password, req) + res = self.get_account_status(user, password) try: if res['accountInfo']['isPremium']: #: Parse account info. Change the trafficleft later to support per host info. @@ -33,16 +48,16 @@ class RPNetBiz(Account): return account_info - def login(self, user, password, data, req): + def signin(self, user, password, data): #: Get account information from rpnet.biz - res = self.get_account_status(user, password, req) + res = self.get_account_status(user, password) #: If we have an error in the res, we have wrong login information if 'error' in res: self.fail_login() - def get_account_status(self, user, password, req): + def get_account_status(self, user, password): #: Using the rpnet API, check if valid premium account res = self.load("https://premium.rpnet.biz/client_api.php", get={'username': user, 'password': password, diff --git a/module/plugins/accounts/RapideoPl.py b/module/plugins/accounts/RapideoPl.py index 4585bc718..6d1e124bc 100644 --- a/module/plugins/accounts/RapideoPl.py +++ b/module/plugins/accounts/RapideoPl.py @@ -6,12 +6,13 @@ import time from module.common.json_layer import json_loads from module.plugins.internal.Account import Account +# from module.plugins.internal.MultiAccount import MultiAccount class RapideoPl(Account): __name__ = "RapideoPl" __type__ = "account" - __version__ = "0.05" + __version__ = "0.06" __status__ = "testing" __description__ = "Rapideo.pl account plugin" @@ -27,13 +28,16 @@ class RapideoPl(Account): 'loc' : "1" , 'info' : "1" } - _req = None - _usr = None - _pwd = None + def grab_hosters(self, user, password, data): + 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.log_debug(hostings_domains) - def grab_info(self, user, password, data, req): - self._req = req + return hostings_domains + + + def grab_info(self, user, password, data): try: result = json_loads(self.run_auth_query()) @@ -55,10 +59,9 @@ class RapideoPl(Account): 'premium' : premium } - def login(self, user, password, data, req): - self._usr = user - self._pwd = hashlib.md5(password).hexdigest() - self._req = req + def signin(self, user, password, data): + data['usr'] = user + data['pwd'] = hashlib.md5(password).hexdigest() try: response = json_loads(self.run_auth_query()) @@ -69,14 +72,11 @@ class RapideoPl(Account): if "errno" in response.keys(): self.fail_login() - data['usr'] = self._usr - data['pwd'] = self._pwd - def create_auth_query(self): query = self.API_QUERY - query['username'] = self._usr - query['password'] = self._pwd + query['username'] = self.info['data']['usr'] + query['password'] = self.info['data']['pwd'] return query diff --git a/module/plugins/accounts/RapidfileshareNet.py b/module/plugins/accounts/RapidfileshareNet.py index 069b30900..a28c61b36 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.06" + __version__ = "0.07" __status__ = "testing" __description__ = """Rapidfileshare.net account plugin""" @@ -14,6 +14,6 @@ class RapidfileshareNet(XFSAccount): __authors__ = [("guidobelix", "guidobelix@hotmail.it")] - HOSTER_DOMAIN = "rapidfileshare.net" + PLUGIN_DOMAIN = "rapidfileshare.net" TRAFFIC_LEFT_PATTERN = r'>Traffic available today:</TD><TD><label for="name">\s*(?P<S>[\d.,]+)\s*(?:(?P<U>[\w^_]+))?' diff --git a/module/plugins/accounts/RapidgatorNet.py b/module/plugins/accounts/RapidgatorNet.py index 65cf1b047..f1177530f 100644 --- a/module/plugins/accounts/RapidgatorNet.py +++ b/module/plugins/accounts/RapidgatorNet.py @@ -9,7 +9,7 @@ from module.common.json_layer import json_loads class RapidgatorNet(Account): __name__ = "RapidgatorNet" __type__ = "account" - __version__ = "0.14" + __version__ = "0.15" __status__ = "testing" __description__ = """Rapidgator.net account plugin""" @@ -20,14 +20,14 @@ class RapidgatorNet(Account): API_URL = "http://rapidgator.net/api/user/" - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): validuntil = None trafficleft = None premium = False sid = None try: - sid = self.get_data(user).get('sid', None) + sid = data.get('sid', None) assert sid html = self.load(urlparse.urljoin(self.API_URL, "info"), @@ -39,7 +39,7 @@ class RapidgatorNet(Account): if json['response_status'] == 200: if "reset_in" in json['response']: - self.schedule_refresh(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 @@ -56,7 +56,7 @@ class RapidgatorNet(Account): 'sid' : sid} - def login(self, user, password, data, req): + def signin(self, user, password, data): try: html = self.load(urlparse.urljoin(self.API_URL, "login"), post={'username': user, diff --git a/module/plugins/accounts/RapiduNet.py b/module/plugins/accounts/RapiduNet.py index 30bac4fba..2566aacf6 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.08" + __version__ = "0.09" __status__ = "testing" __description__ = """Rapidu.net account plugin""" @@ -26,7 +26,7 @@ class RapiduNet(Account): TRAFFIC_LEFT_PATTERN = r'class="tipsyS"><b>(.+?)<' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): validuntil = None trafficleft = -1 premium = False @@ -47,7 +47,7 @@ class RapiduNet(Account): return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium} - def login(self, user, password, data, req): + def signin(self, user, password, data): self.load("https://rapidu.net/ajax.php", get={'a': "getChangeLang"}, post={'_go' : "", diff --git a/module/plugins/accounts/RarefileNet.py b/module/plugins/accounts/RarefileNet.py index 5f52ba147..0004c0f79 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.05" + __version__ = "0.06" __status__ = "testing" __description__ = """RareFile.net account plugin""" @@ -14,4 +14,4 @@ class RarefileNet(XFSAccount): __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - HOSTER_DOMAIN = "rarefile.net" + PLUGIN_DOMAIN = "rarefile.net" diff --git a/module/plugins/accounts/RealdebridCom.py b/module/plugins/accounts/RealdebridCom.py index f4c2c754d..3cdf04c18 100644 --- a/module/plugins/accounts/RealdebridCom.py +++ b/module/plugins/accounts/RealdebridCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.Account import Account class RealdebridCom(Account): __name__ = "RealdebridCom" __type__ = "account" - __version__ = "0.49" + __version__ = "0.50" __status__ = "testing" __description__ = """Real-Debrid.com account plugin""" @@ -16,7 +16,12 @@ class RealdebridCom(Account): __authors__ = [("Devirex Hazzard", "naibaf_11@yahoo.de")] - def grab_info(self, user, password, data, req): + def grab_hosters(self, user, password, data): + html = self.load("https://real-debrid.com/api/hosters.php").replace("\"", "").strip() + return [x.strip() for x in html.split(",") if x.strip()] + + + def grab_info(self, user, password, data): if self.pin_code: return @@ -30,7 +35,7 @@ class RealdebridCom(Account): 'premium' : True } - def login(self, user, password, data, req): + def signin(self, user, password, data): self.pin_code = False html = self.load("https://real-debrid.com/ajax/login.php", diff --git a/module/plugins/accounts/RehostTo.py b/module/plugins/accounts/RehostTo.py index 50b64bff8..9406f22af 100644 --- a/module/plugins/accounts/RehostTo.py +++ b/module/plugins/accounts/RehostTo.py @@ -6,7 +6,7 @@ from module.plugins.internal.Account import Account class RehostTo(Account): __name__ = "RehostTo" __type__ = "account" - __version__ = "0.19" + __version__ = "0.20" __status__ = "testing" __description__ = """Rehost.to account plugin""" @@ -14,7 +14,14 @@ class RehostTo(Account): __authors__ = [("RaNaN", "RaNaN@pyload.org")] - def grab_info(self, user, password, data, req): + def grab_hosters(self, user, password, data): + html = self.load("http://rehost.to/api.php", + get={'cmd' : "get_supported_och_dl", + 'long_ses': data['session']}) + return [x.strip() for x in html.replace("\"", "").split(",")] + + + def grab_info(self, user, password, data): premium = False trafficleft = None validuntil = -1 @@ -47,7 +54,7 @@ class RehostTo(Account): 'session' : session} - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load("https://rehost.to/api.php", get={'cmd': "login", 'user': user, diff --git a/module/plugins/accounts/RyushareCom.py b/module/plugins/accounts/RyushareCom.py index 3ab907a76..84b786bac 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.07" + __version__ = "0.08" __status__ = "testing" __description__ = """Ryushare.com account plugin""" @@ -14,4 +14,4 @@ class RyushareCom(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "ryushare.com" + PLUGIN_DOMAIN = "ryushare.com" diff --git a/module/plugins/accounts/SafesharingEu.py b/module/plugins/accounts/SafesharingEu.py index eb84d502f..632b2bff8 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.03" + __version__ = "0.04" __status__ = "testing" __description__ = """Safesharing.eu account plugin""" @@ -14,4 +14,4 @@ class SafesharingEu(XFSAccount): __authors__ = [("guidobelix", "guidobelix@hotmail.it")] - HOSTER_DOMAIN = "safesharing.eu" + PLUGIN_DOMAIN = "safesharing.eu" diff --git a/module/plugins/accounts/SecureUploadEu.py b/module/plugins/accounts/SecureUploadEu.py index a81030b67..e3f2dbc4f 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.03" + __version__ = "0.04" __status__ = "testing" __description__ = """SecureUpload.eu account plugin""" @@ -14,4 +14,4 @@ class SecureUploadEu(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "secureupload.eu" + PLUGIN_DOMAIN = "secureupload.eu" diff --git a/module/plugins/accounts/SendmywayCom.py b/module/plugins/accounts/SendmywayCom.py index 2875e0d46..a1675b654 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.03" + __version__ = "0.04" __status__ = "testing" __description__ = """Sendmyway.com account plugin""" @@ -14,4 +14,4 @@ class SendmywayCom(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "sendmyway.com" + PLUGIN_DOMAIN = "sendmyway.com" diff --git a/module/plugins/accounts/SharebeastCom.py b/module/plugins/accounts/SharebeastCom.py index a104a4a46..b8ddbe34d 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.02" + __version__ = "0.03" __status__ = "testing" __description__ = """Sharebeast.com account plugin""" @@ -14,4 +14,4 @@ class SharebeastCom(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "sharebeast.com" + PLUGIN_DOMAIN = "sharebeast.com" diff --git a/module/plugins/accounts/ShareonlineBiz.py b/module/plugins/accounts/ShareonlineBiz.py index c0dc7e688..d7eb14bd6 100644 --- a/module/plugins/accounts/ShareonlineBiz.py +++ b/module/plugins/accounts/ShareonlineBiz.py @@ -9,7 +9,7 @@ from module.plugins.internal.Plugin import set_cookie class ShareonlineBiz(Account): __name__ = "ShareonlineBiz" __type__ = "account" - __version__ = "0.40" + __version__ = "0.41" __status__ = "testing" __description__ = """Share-online.biz account plugin""" @@ -17,7 +17,7 @@ class ShareonlineBiz(Account): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - def api_response(self, user, password, req): + def api_response(self, user, password): res = self.load("https://api.share-online.biz/cgi-bin", get={'q' : "userdetails", 'aux' : "traffic", @@ -38,13 +38,13 @@ class ShareonlineBiz(Account): return api - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): premium = False validuntil = None trafficleft = -1 maxtraffic = 100 * 1024 * 1024 * 1024 #: 100 GB - api = self.api_response(user, password, req) + api = self.api_response(user, password) premium = api['group'] in ("PrePaid", "Premium", "Penalty-Premium") validuntil = float(api['expire_date']) @@ -64,6 +64,6 @@ class ShareonlineBiz(Account): 'maxtraffic' : maxtraffic} - def login(self, user, password, data, req): - api = self.api_response(user, password, req) - set_cookie(req.cj, "share-online.biz", 'a', api['a']) + def signin(self, user, password, data): + api = self.api_response(user, password) + set_cookie(self.req.cj, "share-online.biz", 'a', api['a']) diff --git a/module/plugins/accounts/SimplyPremiumCom.py b/module/plugins/accounts/SimplyPremiumCom.py index 133a96ec3..9de6ed55b 100644 --- a/module/plugins/accounts/SimplyPremiumCom.py +++ b/module/plugins/accounts/SimplyPremiumCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.Plugin import set_cookie class SimplyPremiumCom(Account): __name__ = "SimplyPremiumCom" __type__ = "account" - __version__ = "0.09" + __version__ = "0.10" __status__ = "testing" __description__ = """Simply-Premium.com account plugin""" @@ -16,7 +16,16 @@ class SimplyPremiumCom(Account): __authors__ = [("EvolutionClip", "evolutionclip@live.de")] - def grab_info(self, user, password, data, req): + def grab_hosters(self, user, password, data): + json_data = self.load("http://www.simply-premium.com/api/hosts.php", get={'format': "json", 'online': 1}) + json_data = json_loads(json_data) + + host_list = [element['regex'] for element in json_data['result']] + + return host_list + + + def grab_info(self, user, password, data): premium = False validuntil = -1 trafficleft = None @@ -39,8 +48,8 @@ class SimplyPremiumCom(Account): return {'premium': premium, 'validuntil': validuntil, 'trafficleft': trafficleft} - def login(self, user, password, data, req): - set_cookie(req.cj, "simply-premium.com", "lang", "EN") + def signin(self, user, password, data): + set_cookie(self.req.cj, "simply-premium.com", "lang", "EN") html = self.load("https://www.simply-premium.com/login.php", post={'key': user} if not password else {'login_name': user, 'login_pass': password}) diff --git a/module/plugins/accounts/SimplydebridCom.py b/module/plugins/accounts/SimplydebridCom.py index b8d679604..862cfe22b 100644 --- a/module/plugins/accounts/SimplydebridCom.py +++ b/module/plugins/accounts/SimplydebridCom.py @@ -8,7 +8,7 @@ from module.plugins.internal.Account import Account class SimplydebridCom(Account): __name__ = "SimplydebridCom" __type__ = "account" - __version__ = "0.14" + __version__ = "0.15" __status__ = "testing" __description__ = """Simply-Debrid.com account plugin""" @@ -16,7 +16,12 @@ class SimplydebridCom(Account): __authors__ = [("Kagenoshin", "kagenoshin@gmx.ch")] - def grab_info(self, user, password, data, req): + def grab_hosters(self, user, password, data): + html = self.load("http://simply-debrid.com/api.php", get={'list': 1}) + return [x.strip() for x in html.rstrip(';').replace("\"", "").split(";")] + + + def grab_info(self, user, password, data): res = self.load("http://simply-debrid.com/api.php", get={'login': 2, 'u' : user, @@ -28,7 +33,7 @@ class SimplydebridCom(Account): return {'trafficleft': -1, 'validuntil': time.mktime(time.strptime(str(data[2]), "%d/%m/%Y"))} - def login(self, user, password, data, req): + def signin(self, user, password, data): res = self.load("https://simply-debrid.com/api.php", get={'login': 1, 'u' : user, diff --git a/module/plugins/accounts/SmoozedCom.py b/module/plugins/accounts/SmoozedCom.py index 2da4563ab..84858574f 100644 --- a/module/plugins/accounts/SmoozedCom.py +++ b/module/plugins/accounts/SmoozedCom.py @@ -26,7 +26,7 @@ from module.plugins.internal.Account import Account class SmoozedCom(Account): __name__ = "SmoozedCom" __type__ = "account" - __version__ = "0.08" + __version__ = "0.09" __status__ = "testing" __description__ = """Smoozed.com account plugin""" @@ -34,8 +34,12 @@ class SmoozedCom(Account): __authors__ = [("", "")] - def grab_info(self, user, password, data, req): - status = self.get_account_status(user, password, req) + def grab_hosters(self, user, password, data): + return self.get_data('hosters') + + + def grab_info(self, user, password, data): + status = self.get_account_status(user, password) self.log_debug(status) @@ -61,16 +65,16 @@ class SmoozedCom(Account): return info - def login(self, user, password, data, req): + def signin(self, user, password, data): #: Get user data from premiumize.me - status = self.get_account_status(user, password, req) + status = self.get_account_status(user, password) #: Check if user and password are valid if status['state'] != 'ok': self.fail_login() - def get_account_status(self, user, password, req): + def get_account_status(self, user, password): password = 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 9549896cc..54dd8e2fe 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.03" + __version__ = "0.04" __status__ = "testing" __description__ = """Streamcloud.eu account plugin""" @@ -14,4 +14,4 @@ class StreamcloudEu(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "streamcloud.eu" + PLUGIN_DOMAIN = "streamcloud.eu" diff --git a/module/plugins/accounts/TurbobitNet.py b/module/plugins/accounts/TurbobitNet.py index cfec97545..b73f95fa5 100644 --- a/module/plugins/accounts/TurbobitNet.py +++ b/module/plugins/accounts/TurbobitNet.py @@ -10,7 +10,7 @@ from module.plugins.internal.Plugin import set_cookie class TurbobitNet(Account): __name__ = "TurbobitNet" __type__ = "account" - __version__ = "0.06" + __version__ = "0.07" __status__ = "testing" __description__ = """TurbobitNet account plugin""" @@ -18,7 +18,7 @@ class TurbobitNet(Account): __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): html = self.load("http://turbobit.net") m = re.search(r'<u>Turbo Access</u> to ([\d.]+)', html) @@ -32,8 +32,8 @@ class TurbobitNet(Account): return {'premium': premium, 'trafficleft': -1, 'validuntil': validuntil} - def login(self, user, password, data, req): - set_cookie(req.cj, "turbobit.net", "user_lang", "en") + def signin(self, user, password, data): + set_cookie(self.req.cj, "turbobit.net", "user_lang", "en") html = self.load("http://turbobit.net/user/login", post={"user[login]" : user, diff --git a/module/plugins/accounts/TusfilesNet.py b/module/plugins/accounts/TusfilesNet.py index c549bbaf7..d826e5a3d 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.07" + __version__ = "0.08" __status__ = "testing" __description__ = """Tusfile.net account plugin""" @@ -17,7 +17,7 @@ class TusfilesNet(XFSAccount): __authors__ = [("guidobelix", "guidobelix@hotmail.it")] - HOSTER_DOMAIN = "tusfiles.net" + PLUGIN_DOMAIN = "tusfiles.net" VALID_UNTIL_PATTERN = r'<span class="label label-default">([^<]+)</span>' TRAFFIC_LEFT_PATTERN = r'<td><img src="//www\.tusfiles\.net/i/icon/meter\.png" alt=""/></td>\n<td> (?P<S>[\d.,]+)' diff --git a/module/plugins/accounts/UlozTo.py b/module/plugins/accounts/UlozTo.py index 79b1bd050..8380099e1 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.13" + __version__ = "0.14" __status__ = "testing" __description__ = """Uloz.to account plugin""" @@ -21,7 +21,7 @@ class UlozTo(Account): TRAFFIC_LEFT_PATTERN = r'<li class="menu-kredit"><a .*?title=".+?GB = ([\d.]+) MB"' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): html = self.load("http://www.ulozto.net/") m = re.search(self.TRAFFIC_LEFT_PATTERN, html) @@ -32,7 +32,7 @@ class UlozTo(Account): return {'validuntil': -1, 'trafficleft': trafficleft, 'premium': premium} - def login(self, user, password, data, req): + def signin(self, user, password, data): login_page = self.load('http://www.ulozto.net/?do=web-login') action = re.findall('<form action="(.+?)"', login_page)[1].replace('&', '&') token = re.search('_token_" value="(.+?)"', login_page).group(1) diff --git a/module/plugins/accounts/UploadableCh.py b/module/plugins/accounts/UploadableCh.py index 6f9229a49..eefa1f3a0 100644 --- a/module/plugins/accounts/UploadableCh.py +++ b/module/plugins/accounts/UploadableCh.py @@ -6,7 +6,7 @@ from module.plugins.internal.Account import Account class UploadableCh(Account): __name__ = "UploadableCh" __type__ = "account" - __version__ = "0.06" + __version__ = "0.07" __status__ = "testing" __description__ = """Uploadable.ch account plugin""" @@ -14,7 +14,7 @@ class UploadableCh(Account): __authors__ = [("Sasch", "gsasch@gmail.com")] - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): html = self.load("http://www.uploadable.ch/login.php") premium = '<a href="/logout.php"' in html @@ -23,7 +23,7 @@ class UploadableCh(Account): return {'validuntil': None, 'trafficleft': trafficleft, 'premium': premium} #@TODO: validuntil - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load("http://www.uploadable.ch/login.php", post={'userName' : user, 'userPassword' : password, diff --git a/module/plugins/accounts/UploadcCom.py b/module/plugins/accounts/UploadcCom.py index 5b834ac3b..dbad01858 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.03" + __version__ = "0.04" __status__ = "testing" __description__ = """Uploadc.com account plugin""" @@ -14,4 +14,4 @@ class UploadcCom(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "uploadc.com" + PLUGIN_DOMAIN = "uploadc.com" diff --git a/module/plugins/accounts/UploadedTo.py b/module/plugins/accounts/UploadedTo.py index 5a96b04bc..c5cd9dd9f 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.36" + __version__ = "0.37" __status__ = "testing" __description__ = """Uploaded.to account plugin""" @@ -24,7 +24,7 @@ class UploadedTo(Account): TRAFFIC_LEFT_PATTERN = r'<b class="cB">(?P<S>[\d.,]+) (?P<U>[\w^_]+)' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): validuntil = None trafficleft = None premium = None @@ -63,7 +63,7 @@ class UploadedTo(Account): 'premium' : premium} - def login(self, user, password, data, req): + def signin(self, user, password, data): self.load("http://uploaded.net/language/en") html = self.load("http://uploaded.net/io/login", diff --git a/module/plugins/accounts/UploadheroCom.py b/module/plugins/accounts/UploadheroCom.py index 2b676e90a..c5e684033 100644 --- a/module/plugins/accounts/UploadheroCom.py +++ b/module/plugins/accounts/UploadheroCom.py @@ -10,7 +10,7 @@ from module.plugins.internal.Account import Account class UploadheroCom(Account): __name__ = "UploadheroCom" __type__ = "account" - __version__ = "0.24" + __version__ = "0.25" __status__ = "testing" __description__ = """Uploadhero.co account plugin""" @@ -18,10 +18,9 @@ class UploadheroCom(Account): __authors__ = [("mcmyst", "mcmyst@hotmail.fr")] - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): premium_pattern = re.compile('Il vous reste <span class="bleu">(\d+)</span> jours premium') - data = self.get_data(user) html = self.load("http://uploadhero.co/my-account") if premium_pattern.search(html): @@ -34,7 +33,7 @@ class UploadheroCom(Account): return account_info - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load("http://uploadhero.co/lib/connexion.php", post={'pseudo_login': user, 'password_login': password}) diff --git a/module/plugins/accounts/UploadingCom.py b/module/plugins/accounts/UploadingCom.py index 9aaf395f9..cacc8df14 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.15" + __version__ = "0.16" __status__ = "testing" __description__ = """Uploading.com account plugin""" @@ -22,7 +22,7 @@ class UploadingCom(Account): VALID_UNTIL_PATTERN = r'Valid Until:(.+?)<' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): validuntil = None trafficleft = None premium = None @@ -54,8 +54,8 @@ class UploadingCom(Account): 'premium' : premium} - def login(self, user, password, data, req): - set_cookies(req.cj, + def signin(self, user, password, data): + set_cookies(self.req.cj, [("uploading.com", "lang" , "1" ), ("uploading.com", "language", "1" ), ("uploading.com", "setlang" , "en"), diff --git a/module/plugins/accounts/UptoboxCom.py b/module/plugins/accounts/UptoboxCom.py index 54d733375..8df558e2a 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.12" + __version__ = "0.13" __status__ = "testing" __description__ = """Uptobox.com account plugin""" @@ -14,6 +14,6 @@ class UptoboxCom(XFSAccount): __authors__ = [("benbox69", "dev@tollet.me")] - HOSTER_DOMAIN = "uptobox.com" - HOSTER_URL = "https://uptobox.com/" + PLUGIN_DOMAIN = "uptobox.com" + PLUGIN_URL = "https://uptobox.com/" LOGIN_URL = "https://login.uptobox.com/logarithme/" diff --git a/module/plugins/accounts/VidPlayNet.py b/module/plugins/accounts/VidPlayNet.py index d543c5671..e54515faf 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.03" + __version__ = "0.04" __status__ = "testing" __description__ = """VidPlay.net account plugin""" @@ -14,4 +14,4 @@ class VidPlayNet(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "vidplay.net" + PLUGIN_DOMAIN = "vidplay.net" diff --git a/module/plugins/accounts/WebshareCz.py b/module/plugins/accounts/WebshareCz.py index 33f851263..484ea06ce 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.11" + __version__ = "0.12" __status__ = "testing" __description__ = """Webshare.cz account plugin""" @@ -25,9 +25,9 @@ class WebshareCz(Account): TRAFFIC_LEFT_PATTERN = r'<bytes>(.+)</bytes>' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): html = self.load("https://webshare.cz/api/user_data/", - post={'wst': self.get_data(user).get('wst', None)}) + post={'wst': data.get('wst', None)}) self.log_debug("Response: " + html) @@ -41,7 +41,7 @@ class WebshareCz(Account): return {'validuntil': validuntil, 'trafficleft': -1, 'premium': premium} - def login(self, user, password, data, req): + def signin(self, user, password, data): salt = self.load("https://webshare.cz/api/salt/", post={'username_or_email': user, 'wst' : ""}) diff --git a/module/plugins/accounts/WorldbytezCom.py b/module/plugins/accounts/WorldbytezCom.py index ea409fd58..6987bc0cc 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.02" + __version__ = "0.03" __status__ = "testing" __description__ = """Worldbytez.com account plugin""" @@ -14,4 +14,4 @@ class WorldbytezCom(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "worldbytez.com" + PLUGIN_DOMAIN = "worldbytez.com" diff --git a/module/plugins/accounts/XFileSharingPro.py b/module/plugins/accounts/XFileSharingPro.py index f21247cf4..68797b7f0 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.09" + __version__ = "0.10" __status__ = "testing" __description__ = """XFileSharingPro multi-purpose account plugin""" @@ -14,13 +14,13 @@ class XFileSharingPro(XFSAccount): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = None + PLUGIN_DOMAIN = None - def login(self, user, password, data, req): + def signin(self, user, password, data): try: - return super(XFileSharingPro, self).login(user, data, req) + return super(XFileSharingPro, self).signin(user, password, data) except Fail: - self.HOSTER_URL = self.HOSTER_URL.replace("www.", "") - return super(XFileSharingPro, self).login(user, data, req) + self.PLUGIN_URL = self.PLUGIN_URL.replace("www.", "") + return super(XFileSharingPro, self).signin(user, password, data) diff --git a/module/plugins/accounts/YibaishiwuCom.py b/module/plugins/accounts/YibaishiwuCom.py index fdacfde4d..ba7454183 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.05" + __version__ = "0.06" __status__ = "testing" __description__ = """115.com account plugin""" @@ -19,7 +19,7 @@ class YibaishiwuCom(Account): ACCOUNT_INFO_PATTERN = r'var USER_PERMISSION = {(.*?)}' - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): # self.relogin(user) html = self.load("http://115.com/") @@ -29,7 +29,7 @@ class YibaishiwuCom(Account): return dict({'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium}) - def login(self, user, password, data, req): + def signin(self, user, password, data): html = self.load("https://passport.115.com/?ac=login", post={'back' : "http://www.115.com/", 'goto' : "http://115.com/", diff --git a/module/plugins/accounts/ZeveraCom.py b/module/plugins/accounts/ZeveraCom.py index ac057b76a..f85389cf8 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.29" + __version__ = "0.30" __status__ = "testing" __description__ = """Zevera.com account plugin""" @@ -17,7 +17,13 @@ class ZeveraCom(Account): ("Walter Purcaro", "vuolter@gmail.com")] - HOSTER_DOMAIN = "zevera.com" + PLUGIN_DOMAIN = "zevera.com" + + + def grab_hosters(self, user, password, data): + html = self.api_response(user, password, cmd="gethosters") + return [x.strip() for x in html.split(",")] + def __init__(self, manager, accounts): #@TODO: remove in 0.4.10 @@ -26,19 +32,19 @@ class ZeveraCom(Account): def init(self): - if not self.HOSTER_DOMAIN: - self.log_error(_("Missing HOSTER_DOMAIN")) + if not self.PLUGIN_DOMAIN: + self.log_error(_("Missing PLUGIN_DOMAIN")) if not hasattr(self, "API_URL"): - self.API_URL = "http://api.%s/jDownloader.ashx" % (self.HOSTER_DOMAIN or "") + self.API_URL = "http://api.%s/jDownloader.ashx" % (self.PLUGIN_DOMAIN or "") - def grab_info(self, user, password, data, req): + def grab_info(self, user, password, data): validuntil = None trafficleft = None premium = False - api = self.api_response(req) + api = self.api_response(user, password) if "No trafic" not in api and api['endsubscriptiondate'] != "Expired!": validuntil = time.mktime(time.strptime(api['endsubscriptiondate'], "%Y/%m/%d %H:%M:%S")) @@ -48,18 +54,15 @@ class ZeveraCom(Account): return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium} - def login(self, user, password, data, req): - self.user = user - self.password = password - - if self.api_response(req) == "No trafic": + def signin(self, user, password, data): + if self.api_response(user, password) == "No trafic": self.fail_login() - def api_response(self, req, just_header=False, **kwargs): + def api_response(self, user, password=None, just_header=False, **kwargs): get_data = {'cmd' : "accountinfo", - 'login': self.user, - 'pass' : self.password} + 'login': user, + 'pass' : password} get_data.update(kwargs) |