diff options
Diffstat (limited to 'pyload/plugin/account')
85 files changed, 0 insertions, 3082 deletions
diff --git a/pyload/plugin/account/AlldebridCom.py b/pyload/plugin/account/AlldebridCom.py deleted file mode 100644 index f9906bd9d..000000000 --- a/pyload/plugin/account/AlldebridCom.py +++ /dev/null @@ -1,59 +0,0 @@ -# -*- coding: utf-8 -*- - -import re -import xml.dom.minidom as dom - -from time import time -from urllib import urlencode - -from BeautifulSoup import BeautifulSoup - -from pyload.plugin.Account import Account - - -class AlldebridCom(Account): - __name__ = "AlldebridCom" - __type__ = "account" - __version__ = "0.22" - - __description__ = """AllDebrid.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("Andy Voigt", "spamsales@online.de")] - - - def loadAccountInfo(self, user, req): - data = self.getAccountData(user) - page = req.load("http://www.alldebrid.com/account/") - soup = BeautifulSoup(page) - #Try to parse expiration date directly from the control panel page (better accuracy) - try: - time_text = soup.find('div', attrs={'class': 'remaining_time_text'}).strong.string - self.logDebug("Account expires in: %s" % time_text) - p = re.compile('\d+') - exp_data = p.findall(time_text) - exp_time = time() + int(exp_data[0]) * 24 * 60 * 60 + int( - exp_data[1]) * 60 * 60 + (int(exp_data[2]) - 1) * 60 - #Get expiration date from API - except Exception: - data = self.getAccountData(user) - page = req.load("http://www.alldebrid.com/api.php", - get={'action': "info_user", 'login': user, 'pw': data['password']}) - self.logDebug(page) - xml = dom.parseString(page) - exp_time = time() + int(xml.getElementsByTagName("date")[0].childNodes[0].nodeValue) * 24 * 60 * 60 - account_info = {"validuntil": exp_time, "trafficleft": -1} - return account_info - - - def login(self, user, data, req): - urlparams = urlencode({'action': 'login', 'login_login': user, 'login_password': data['password']}) - page = req.load("http://www.alldebrid.com/register/?%s" % urlparams) - - if "This login doesn't exist" in page: - self.wrongPassword() - - if "The password is not valid" in page: - self.wrongPassword() - - if "Invalid captcha" in page: - self.wrongPassword() diff --git a/pyload/plugin/account/BayfilesCom.py b/pyload/plugin/account/BayfilesCom.py deleted file mode 100644 index 760c29d4e..000000000 --- a/pyload/plugin/account/BayfilesCom.py +++ /dev/null @@ -1,37 +0,0 @@ -# -*- coding: utf-8 -*- - -from time import time - -from pyload.plugin.Account import Account -from pyload.utils import json_loads - - -class BayfilesCom(Account): - __name__ = "BayfilesCom" - __type__ = "account" - __version__ = "0.03" - - __description__ = """Bayfiles.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - def loadAccountInfo(self, user, req): - for _i in xrange(2): - res = json_loads(req.load("http://api.bayfiles.com/v1/account/info")) - self.logDebug(res) - if not res['error']: - break - self.logWarning(res['error']) - self.relogin(user) - - return {"premium": bool(res['premium']), "trafficleft": -1, - "validuntil": res['expires'] if res['expires'] >= int(time()) else -1} - - - def login(self, user, data, req): - res = json_loads(req.load("http://api.bayfiles.com/v1/account/login/%s/%s" % (user, data['password']))) - self.logDebug(res) - if res['error']: - self.logError(res['error']) - self.wrongPassword() diff --git a/pyload/plugin/account/BillionuploadsCom.py b/pyload/plugin/account/BillionuploadsCom.py deleted file mode 100644 index a3325c427..000000000 --- a/pyload/plugin/account/BillionuploadsCom.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class BillionuploadsCom(XFSAccount): - __name__ = "BillionuploadsCom" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Billionuploads.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - - - HOSTER_DOMAIN = "billionuploads.com" diff --git a/pyload/plugin/account/BitshareCom.py b/pyload/plugin/account/BitshareCom.py deleted file mode 100644 index aabab9e19..000000000 --- a/pyload/plugin/account/BitshareCom.py +++ /dev/null @@ -1,32 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.Account import Account - - -class BitshareCom(Account): - __name__ = "BitshareCom" - __type__ = "account" - __version__ = "0.12" - - __description__ = """Bitshare account plugin""" - __license__ = "GPLv3" - __authors__ = [("Paul King", "")] - - - def loadAccountInfo(self, user, req): - page = req.load("http://bitshare.com/mysettings.html") - - if "\"http://bitshare.com/myupgrade.html\">Free" in page: - return {"validuntil": -1, "trafficleft": -1, "premium": False} - - if not '<input type="checkbox" name="directdownload" checked="checked" />' in page: - self.logWarning(_("Activate direct Download in your Bitshare Account")) - - return {"validuntil": -1, "trafficleft": -1, "premium": True} - - - def login(self, user, data, req): - page = req.load("http://bitshare.com/login.html", - post={"user": user, "password": data['password'], "submit": "Login"}, cookies=True) - if "login" in req.lastEffectiveURL: - self.wrongPassword() diff --git a/pyload/plugin/account/CatShareNet.py b/pyload/plugin/account/CatShareNet.py deleted file mode 100644 index 4c1cd00d7..000000000 --- a/pyload/plugin/account/CatShareNet.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from time import mktime, strptime - -from pyload.plugin.Account import Account - - -class CatShareNet(Account): - __name__ = "CatShareNet" - __type__ = "account" - __version__ = "0.01" - - __description__ = """CatShareNet account plugin""" - __license__ = "GPLv3" - __authors__ = [("prOq", "")] - - - PREMIUM_PATTERN = r'class="nav-collapse collapse pull-right">[\s\w<>=-."/:]*\sz.</a></li>\s*<li><a href="/premium">.*\s*<span style="color: red">(.*?)</span>[\s\w<>/]*href="/logout"' - VALID_UNTIL_PATTERN = r'<div class="span6 pull-right">[\s\w<>=-":;]*<span style="font-size:13px;">.*?<strong>(.*?)</strong></span>' - - - def loadAccountInfo(self, user, req): - premium = False - validuntil = -1 - - html = req.load("http://catshare.net/", decode=True) - - try: - m = re.search(self.PREMIUM_PATTERN, html) - if "Premium" in m.group(1): - premium = True - except Exception: - pass - - try: - m = re.search(self.VALID_UNTIL_PATTERN, html) - expiredate = m.group(1) - if "-" not in expiredate: - validuntil = mktime(strptime(expiredate, "%d.%m.%Y")) - except Exception: - pass - - return {'premium': premium, 'trafficleft': -1, 'validuntil': validuntil} - - - def login(self, user, data, req): - html = req.load("http://catshare.net/login", - post={'user_email': user, - 'user_password': data['password'], - 'remindPassword': 0, - 'user[submit]': "Login"}) - - if not '<a href="/logout">Wyloguj</a>' in html: - self.wrongPassword() diff --git a/pyload/plugin/account/CramitIn.py b/pyload/plugin/account/CramitIn.py deleted file mode 100644 index 21503f625..000000000 --- a/pyload/plugin/account/CramitIn.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class CramitIn(XFSAccount): - __name__ = "CramitIn" - __type__ = "account" - __version__ = "0.03" - - __description__ = """Cramit.in account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - HOSTER_DOMAIN = "cramit.in" diff --git a/pyload/plugin/account/CzshareCom.py b/pyload/plugin/account/CzshareCom.py deleted file mode 100644 index 6608efd90..000000000 --- a/pyload/plugin/account/CzshareCom.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding: utf-8 -*- - -from time import mktime, strptime -import re - -from pyload.plugin.Account import Account - - -class CzshareCom(Account): - __name__ = "CzshareCom" - __type__ = "account" - __version__ = "0.14" - - __description__ = """Czshare.com account plugin, now Sdilej.cz""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), - ("stickell", "l.stickell@yahoo.it")] - - - CREDIT_LEFT_PATTERN = r'<tr class="active">\s*<td>([\d ,]+) (KiB|MiB|GiB)</td>\s*<td>([^<]*)</td>\s*</tr>' - - - def loadAccountInfo(self, user, req): - html = req.load("http://sdilej.cz/prehled_kreditu/") - - m = re.search(self.CREDIT_LEFT_PATTERN, html) - if m is None: - return {"validuntil": 0, "trafficleft": 0} - else: - credits = float(m.group(1).replace(' ', '').replace(',', '.')) - credits = credits * 1024 ** {'KiB': 0, 'MiB': 1, 'GiB': 2}[m.group(2)] - validuntil = mktime(strptime(m.group(3), '%d.%m.%y %H:%M')) - return {"validuntil": validuntil, "trafficleft": credits} - - - def login(self, user, data, req): - html = req.load('https://sdilej.cz/index.php', post={ - "Prihlasit": "Prihlasit", - "login-password": data['password'], - "login-name": user - }) - - if '<div class="login' in html: - self.wrongPassword() diff --git a/pyload/plugin/account/DebridItaliaCom.py b/pyload/plugin/account/DebridItaliaCom.py deleted file mode 100644 index c8990f882..000000000 --- a/pyload/plugin/account/DebridItaliaCom.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from time import mktime, strptime - -from pyload.plugin.Account import Account - - -class DebridItaliaCom(Account): - __name__ = "DebridItaliaCom" - __type__ = "account" - __version__ = "0.11" - - __description__ = """Debriditalia.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("stickell", "l.stickell@yahoo.it"), - ("Walter Purcaro", "vuolter@gmail.com")] - - - WALID_UNTIL_PATTERN = r'Premium valid till: (.+?) \|' - - - def loadAccountInfo(self, user, req): - info = {'premium': False, 'validuntil': None, 'trafficleft': None} - html = req.load("http://debriditalia.com/") - - if 'Account premium not activated' not in html: - m = re.search(self.WALID_UNTIL_PATTERN, html) - if m: - validuntil = int(mktime(strptime(m.group(1), "%d/%m/%Y %H:%M"))) - info = {'premium': True, 'validuntil': validuntil, 'trafficleft': -1} - else: - self.logError(_("Unable to retrieve account information")) - - return info - - - def login(self, user, data, req): - html = req.load("http://debriditalia.com/login.php", - get={'u': user, 'p': data['password']}) - - if 'NO' in html: - self.wrongPassword() diff --git a/pyload/plugin/account/DepositfilesCom.py b/pyload/plugin/account/DepositfilesCom.py deleted file mode 100644 index bce33777b..000000000 --- a/pyload/plugin/account/DepositfilesCom.py +++ /dev/null @@ -1,35 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from time import strptime, mktime - -from pyload.plugin.Account import Account - - -class DepositfilesCom(Account): - __name__ = "DepositfilesCom" - __type__ = "account" - __version__ = "0.30" - - __description__ = """Depositfiles.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("mkaay", "mkaay@mkaay.de"), - ("stickell", "l.stickell@yahoo.it"), - ("Walter Purcaro", "vuolter@gmail.com")] - - - def loadAccountInfo(self, user, req): - html = req.load("https://dfiles.eu/de/gold/") - validuntil = re.search(r"Sie haben Gold Zugang bis: <b>(.*?)</b></div>", html).group(1) - - validuntil = int(mktime(strptime(validuntil, "%Y-%m-%d %H:%M:%S"))) - - return {"validuntil": validuntil, "trafficleft": -1} - - - def login(self, user, data, req): - html = req.load("https://dfiles.eu/de/login.php", get={"return": "/de/gold/payment.php"}, - post={"login": user, "password": data['password']}) - if r'<div class="error_message">Sie haben eine falsche Benutzername-Passwort-Kombination verwendet.</div>' in html: - self.wrongPassword() diff --git a/pyload/plugin/account/DropboxCom.py b/pyload/plugin/account/DropboxCom.py deleted file mode 100644 index 341bb761d..000000000 --- a/pyload/plugin/account/DropboxCom.py +++ /dev/null @@ -1,42 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from pyload.plugin.internal.SimpleHoster import SimpleHoster, create_getInfo - - -class DropboxCom(SimpleHoster): - __name__ = "DropboxCom" - __type__ = "hoster" - __version__ = "0.03" - - __pattern__ = r'https?://(?:www\.)?dropbox\.com/.+' - - __description__ = """Dropbox.com hoster plugin""" - __license__ = "GPLv3" - __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de")] - - - NAME_PATTERN = r'<title>Dropbox - (?P<N>.+?)<' - SIZE_PATTERN = r' · (?P<S>[\d.,]+) (?P<U>[\w^_]+)' - - OFFLINE_PATTERN = r'<title>Dropbox - (404|Shared link error)<' - - COOKIES = [("dropbox.com", "lang", "en")] - - - def setup(self): - self.multiDL = True - self.chunkLimit = 1 - self.resumeDownload = True - - - def handleFree(self): - self.download(self.pyfile.url, get={'dl': "1"}) - - check = self.checkDownload({'html': re.compile("html")}) - if check == "html": - self.error(_("Downloaded file is an html page")) - - -getInfo = create_getInfo(DropboxCom) diff --git a/pyload/plugin/account/EasybytezCom.py b/pyload/plugin/account/EasybytezCom.py deleted file mode 100644 index c7d717474..000000000 --- a/pyload/plugin/account/EasybytezCom.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class EasybytezCom(XFSAccount): - __name__ = "EasybytezCom" - __type__ = "account" - __version__ = "0.12" - - __description__ = """EasyBytez.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), - ("guidobelix", "guidobelix@hotmail.it")] - - - HOSTER_DOMAIN = "easybytez.com" diff --git a/pyload/plugin/account/EuroshareEu.py b/pyload/plugin/account/EuroshareEu.py deleted file mode 100644 index 2d9288ba8..000000000 --- a/pyload/plugin/account/EuroshareEu.py +++ /dev/null @@ -1,41 +0,0 @@ -# -*- coding: utf-8 -*- - -from time import mktime, strptime -import re - -from pyload.plugin.Account import Account - - -class EuroshareEu(Account): - __name__ = "EuroshareEu" - __type__ = "account" - __version__ = "0.01" - - __description__ = """Euroshare.eu account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - def loadAccountInfo(self, user, req): - self.relogin(user) - html = req.load("http://euroshare.eu/customer-zone/settings/") - - m = re.search('id="input_expire_date" value="(\d+\.\d+\.\d+ \d+:\d+)"', html) - if m is None: - premium, validuntil = False, -1 - else: - premium = True - validuntil = mktime(strptime(m.group(1), "%d.%m.%Y %H:%M")) - - return {"validuntil": validuntil, "trafficleft": -1, "premium": premium} - - - def login(self, user, data, req): - html = req.load('http://euroshare.eu/customer-zone/login/', post={ - "trvale": "1", - "login": user, - "password": data['password'] - }, decode=True) - - if u">Nesprávne prihlasovacie meno alebo heslo" in html: - self.wrongPassword() diff --git a/pyload/plugin/account/FastixRu.py b/pyload/plugin/account/FastixRu.py deleted file mode 100644 index 0f2ac71ce..000000000 --- a/pyload/plugin/account/FastixRu.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.Account import Account -from pyload.utils import json_loads - - -class FastixRu(Account): - __name__ = "FastixRu" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Fastix account plugin""" - __license__ = "GPLv3" - __authors__ = [("Massimo Rosamilia", "max@spiritix.eu")] - - - def loadAccountInfo(self, user, req): - data = self.getAccountData(user) - page = json_loads(req.load("http://fastix.ru/api_v2/", get={'apikey': data['api'], 'sub': "getaccountdetails"})) - - points = page['points'] - kb = float(points) * 1024 ** 2 / 1000 - - if points > 0: - account_info = {"validuntil": -1, "trafficleft": kb} - else: - account_info = {"validuntil": None, "trafficleft": None, "premium": False} - return account_info - - - def login(self, user, data, req): - page = req.load("http://fastix.ru/api_v2/", - get={'sub': "get_apikey", 'email': user, 'password': data['password']}) - api = json_loads(page) - api = api['apikey'] - data['api'] = api - if "error_code" in page: - self.wrongPassword() diff --git a/pyload/plugin/account/FastshareCz.py b/pyload/plugin/account/FastshareCz.py deleted file mode 100644 index 8fe98438b..000000000 --- a/pyload/plugin/account/FastshareCz.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from pyload.plugin.Account import Account -from pyload.utils import parseFileSize - - -class FastshareCz(Account): - __name__ = "FastshareCz" - __type__ = "account" - __version__ = "0.05" - - __description__ = """Fastshare.cz account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), - ("stickell", "l.stickell@yahoo.it")] - - - CREDIT_PATTERN = r'My account\s*\((.+?)\)' - - - def loadAccountInfo(self, user, req): - validuntil = None - trafficleft = None - premium = None - - html = req.load("http://www.fastshare.cz/user", decode=True) - - m = re.search(self.CREDIT_PATTERN, html) - if m: - trafficleft = self.parseTraffic(m.group(1)) - - if trafficleft: - premium = True - validuntil = -1 - else: - premium = False - - return {"validuntil": validuntil, "trafficleft": trafficleft, "premium": premium} - - - def login(self, user, data, req): - req.cj.setCookie("fastshare.cz", "lang", "en") - - req.load('http://www.fastshare.cz/login') # Do not remove or it will not login - - html = req.load("http://www.fastshare.cz/sql.php", - post={'login': user, 'heslo': data['password']}, - decode=True) - - if ">Wrong username or password" in html: - self.wrongPassword() diff --git a/pyload/plugin/account/File4SafeCom.py b/pyload/plugin/account/File4SafeCom.py deleted file mode 100644 index 4f311aa4c..000000000 --- a/pyload/plugin/account/File4SafeCom.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class File4safeCom(XFSAccount): - __name__ = "File4safeCom" - __type__ = "account" - __version__ = "0.04" - - __description__ = """File4safe.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("stickell", "l.stickell@yahoo.it")] - - - HOSTER_DOMAIN = "file4safe.com" - - LOGIN_FAIL_PATTERN = r'input_login' diff --git a/pyload/plugin/account/FileParadoxIn.py b/pyload/plugin/account/FileParadoxIn.py deleted file mode 100644 index 02b923519..000000000 --- a/pyload/plugin/account/FileParadoxIn.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class FileParadoxIn(XFSAccount): - __name__ = "FileParadoxIn" - __type__ = "account" - __version__ = "0.02" - - __description__ = """FileParadox.in account plugin""" - __license__ = "GPLv3" - __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - - - HOSTER_DOMAIN = "fileparadox.in" diff --git a/pyload/plugin/account/FilecloudIo.py b/pyload/plugin/account/FilecloudIo.py deleted file mode 100644 index 8169bfdce..000000000 --- a/pyload/plugin/account/FilecloudIo.py +++ /dev/null @@ -1,59 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.Account import Account -from pyload.utils import json_loads - - -class FilecloudIo(Account): - __name__ = "FilecloudIo" - __type__ = "account" - __version__ = "0.02" - - __description__ = """FilecloudIo account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), - ("stickell", "l.stickell@yahoo.it")] - - - def loadAccountInfo(self, user, req): - # It looks like the first API request always fails, so we retry 5 times, it should work on the second try - for _i in xrange(5): - rep = req.load("https://secure.filecloud.io/api-fetch_apikey.api", - post={"username": user, "password": self.accounts[user]['password']}) - rep = json_loads(rep) - if rep['status'] == 'ok': - break - elif rep['status'] == 'error' and rep['message'] == 'no such user or wrong password': - self.logError(_("Wrong username or password")) - return {"valid": False, "premium": False} - else: - return {"premium": False} - - akey = rep['akey'] - self.accounts[user]['akey'] = akey # Saved for hoster plugin - rep = req.load("http://api.filecloud.io/api-fetch_account_details.api", - post={"akey": akey}) - rep = json_loads(rep) - - if rep['is_premium'] == 1: - return {"validuntil": int(rep['premium_until']), "trafficleft": -1} - else: - return {"premium": False} - - - def login(self, user, data, req): - req.cj.setCookie("secure.filecloud.io", "lang", "en") - html = req.load('https://secure.filecloud.io/user-login.html') - - if not hasattr(self, "form_data"): - self.form_data = {} - - self.form_data['username'] = user - self.form_data['password'] = data['password'] - - html = req.load('https://secure.filecloud.io/user-login_p.html', - post=self.form_data, - multipart=True) - - self.logged_in = True if "you have successfully logged in - filecloud.io" in html else False - self.form_data = {} diff --git a/pyload/plugin/account/FilefactoryCom.py b/pyload/plugin/account/FilefactoryCom.py deleted file mode 100644 index 6b7399db6..000000000 --- a/pyload/plugin/account/FilefactoryCom.py +++ /dev/null @@ -1,49 +0,0 @@ -# -*- coding: utf-8 -*- - -import re -from time import mktime, strptime - -from pycurl import REFERER - -from pyload.plugin.Account import Account - - -class FilefactoryCom(Account): - __name__ = "FilefactoryCom" - __type__ = "account" - __version__ = "0.14" - - __description__ = """Filefactory.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), - ("stickell", "l.stickell@yahoo.it")] - - - VALID_UNTIL_PATTERN = r'Premium valid until: <strong>(?P<d>\d{1,2})\w{1,2} (?P<m>\w{3}), (?P<y>\d{4})</strong>' - - - def loadAccountInfo(self, user, req): - html = req.load("http://www.filefactory.com/account/") - - m = re.search(self.VALID_UNTIL_PATTERN, html) - if m: - premium = True - validuntil = re.sub(self.VALID_UNTIL_PATTERN, '\g<d> \g<m> \g<y>', m.group(0)) - validuntil = mktime(strptime(validuntil, "%d %b %Y")) - else: - premium = False - validuntil = -1 - - return {"premium": premium, "trafficleft": -1, "validuntil": validuntil} - - - def login(self, user, data, req): - req.http.c.setopt(REFERER, "http://www.filefactory.com/member/login.php") - - html = req.load("http://www.filefactory.com/member/signin.php", post={ - "loginEmail": user, - "loginPassword": data['password'], - "Submit": "Sign In"}) - - if req.lastEffectiveURL != "http://www.filefactory.com/account/": - self.wrongPassword() diff --git a/pyload/plugin/account/FilejungleCom.py b/pyload/plugin/account/FilejungleCom.py deleted file mode 100644 index 5734f1638..000000000 --- a/pyload/plugin/account/FilejungleCom.py +++ /dev/null @@ -1,49 +0,0 @@ -# -*- coding: utf-8 -*- - -import re -from time import mktime, strptime - -from pyload.plugin.Account import Account - - -class FilejungleCom(Account): - __name__ = "FilejungleCom" - __type__ = "account" - __version__ = "0.11" - - __description__ = """Filejungle.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - login_timeout = 60 - - URL = "http://filejungle.com/" - TRAFFIC_LEFT_PATTERN = r'"/extend_premium\.php">Until (\d+ \w+ \d+)<br' - LOGIN_FAILED_PATTERN = r'<span htmlfor="loginUser(Name|Password)" generated="true" class="fail_info">' - - - def loadAccountInfo(self, user, req): - html = req.load(self.URL + "dashboard.php") - m = re.search(self.TRAFFIC_LEFT_PATTERN, html) - if m: - premium = True - validuntil = mktime(strptime(m.group(1), "%d %b %Y")) - else: - premium = False - validuntil = -1 - - return {"premium": premium, "trafficleft": -1, "validuntil": validuntil} - - - def login(self, user, data, req): - html = req.load(self.URL + "login.php", post={ - "loginUserName": user, - "loginUserPassword": data['password'], - "loginFormSubmit": "Login", - "recaptcha_challenge_field": "", - "recaptcha_response_field": "", - "recaptcha_shortencode_field": ""}) - - if re.search(self.LOGIN_FAILED_PATTERN, html): - self.wrongPassword() diff --git a/pyload/plugin/account/FileomCom.py b/pyload/plugin/account/FileomCom.py deleted file mode 100644 index 36a11e411..000000000 --- a/pyload/plugin/account/FileomCom.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class FileomCom(XFSAccount): - __name__ = "FileomCom" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Fileom.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - - - HOSTER_DOMAIN = "fileom.com" diff --git a/pyload/plugin/account/FilerNet.py b/pyload/plugin/account/FilerNet.py deleted file mode 100644 index 679a9dc40..000000000 --- a/pyload/plugin/account/FilerNet.py +++ /dev/null @@ -1,50 +0,0 @@ -# -*- coding: utf-8 -*- - -import re -import time - -from pyload.plugin.Account import Account - - -class FilerNet(Account): - __name__ = "FilerNet" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Filer.net account plugin""" - __license__ = "GPLv3" - __authors__ = [("stickell", "l.stickell@yahoo.it")] - - - TOKEN_PATTERN = r'_csrf_token" value="([^"]+)" />' - WALID_UNTIL_PATTERN = r'Der Premium-Zugang ist gültig bis (.+)\.\s*</td>' - TRAFFIC_PATTERN = r'Traffic</th>\s*<td>([^<]+)</td>' - FREE_PATTERN = r'Account Status</th>\s*<td>\s*Free' - - - def loadAccountInfo(self, user, req): - html = req.load("https://filer.net/profile") - - # Free user - if re.search(self.FREE_PATTERN, html): - return {"premium": False, "validuntil": None, "trafficleft": None} - - until = re.search(self.WALID_UNTIL_PATTERN, html) - traffic = re.search(self.TRAFFIC_PATTERN, html) - if until and traffic: - validuntil = int(time.mktime(time.strptime(until.group(1), "%d.%m.%Y %H:%M:%S"))) - trafficleft = self.parseTraffic(traffic.group(1)) - return {"premium": True, "validuntil": validuntil, "trafficleft": trafficleft} - else: - self.logError(_("Unable to retrieve account information")) - return {"premium": False, "validuntil": None, "trafficleft": None} - - - def login(self, user, data, req): - html = req.load("https://filer.net/login") - token = re.search(self.TOKEN_PATTERN, html).group(1) - html = req.load("https://filer.net/login_check", - post={"_username": user, "_password": data['password'], - "_remember_me": "on", "_csrf_token": token, "_target_path": "https://filer.net/"}) - if 'Logout' not in html: - self.wrongPassword() diff --git a/pyload/plugin/account/FilerioCom.py b/pyload/plugin/account/FilerioCom.py deleted file mode 100644 index 1d9f8744b..000000000 --- a/pyload/plugin/account/FilerioCom.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class FilerioCom(XFSAccount): - __name__ = "FilerioCom" - __type__ = "account" - __version__ = "0.03" - - __description__ = """FileRio.in account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - HOSTER_DOMAIN = "filerio.in" diff --git a/pyload/plugin/account/FilesMailRu.py b/pyload/plugin/account/FilesMailRu.py deleted file mode 100644 index bbff7311c..000000000 --- a/pyload/plugin/account/FilesMailRu.py +++ /dev/null @@ -1,28 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.Account import Account - - -class FilesMailRu(Account): - __name__ = "FilesMailRu" - __type__ = "account" - __version__ = "0.10" - - __description__ = """Filesmail.ru account plugin""" - __license__ = "GPLv3" - __authors__ = [("RaNaN", "RaNaN@pyload.org")] - - - def loadAccountInfo(self, user, req): - return {"validuntil": None, "trafficleft": None} - - - def login(self, user, data, req): - user, domain = user.split("@") - - page = req.load("http://swa.mail.ru/cgi-bin/auth", None, - {"Domain": domain, "Login": user, "Password": data['password'], - "Page": "http://files.mail.ru/"}, cookies=True) - - if "Неверное имя пользователя или пароль" in page: # @TODO seems not to work - self.wrongPassword() diff --git a/pyload/plugin/account/FileserveCom.py b/pyload/plugin/account/FileserveCom.py deleted file mode 100644 index 7557450be..000000000 --- a/pyload/plugin/account/FileserveCom.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding: utf-8 -*- - -from time import mktime, strptime - -from pyload.plugin.Account import Account -from pyload.utils import json_loads - - -class FileserveCom(Account): - __name__ = "FileserveCom" - __type__ = "account" - __version__ = "0.20" - - __description__ = """Fileserve.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("mkaay", "mkaay@mkaay.de")] - - - def loadAccountInfo(self, user, req): - data = self.getAccountData(user) - - page = req.load("http://app.fileserve.com/api/login/", post={"username": user, "password": data['password'], - "submit": "Submit+Query"}) - res = json_loads(page) - - if res['type'] == "premium": - validuntil = mktime(strptime(res['expireTime'], "%Y-%m-%d %H:%M:%S")) - return {"trafficleft": res['traffic'], "validuntil": validuntil} - else: - return {"premium": False, "trafficleft": None, "validuntil": None} - - - def login(self, user, data, req): - page = req.load("http://app.fileserve.com/api/login/", post={"username": user, "password": data['password'], - "submit": "Submit+Query"}) - res = json_loads(page) - - if not res['type']: - self.wrongPassword() - - #login at fileserv page - req.load("http://www.fileserve.com/login.php", - post={"loginUserName": user, "loginUserPassword": data['password'], "autoLogin": "checked", - "loginFormSubmit": "Login"}) diff --git a/pyload/plugin/account/FourSharedCom.py b/pyload/plugin/account/FourSharedCom.py deleted file mode 100644 index 3ef865a91..000000000 --- a/pyload/plugin/account/FourSharedCom.py +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.Account import Account -from pyload.utils import json_loads - - -class FourSharedCom(Account): - __name__ = "FourSharedCom" - __type__ = "account" - __version__ = "0.03" - - __description__ = """FourShared.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), - ("stickell", "l.stickell@yahoo.it")] - - - def loadAccountInfo(self, user, req): - # Free mode only for now - return {"premium": False} - - - def login(self, user, data, req): - req.cj.setCookie("4shared.com", "4langcookie", "en") - res = req.load('http://www.4shared.com/web/login', - post={'login': user, - 'password': data['password'], - 'remember': "on", - '_remember': "on", - 'returnTo': "http://www.4shared.com/account/home.jsp"}) - - if 'Please log in to access your 4shared account' in res: - self.wrongPassword() diff --git a/pyload/plugin/account/FreakshareCom.py b/pyload/plugin/account/FreakshareCom.py deleted file mode 100644 index 9905e3f55..000000000 --- a/pyload/plugin/account/FreakshareCom.py +++ /dev/null @@ -1,43 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from time import strptime, mktime - -from pyload.plugin.Account import Account - - -class FreakshareCom(Account): - __name__ = "FreakshareCom" - __type__ = "account" - __version__ = "0.11" - - __description__ = """Freakshare.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("RaNaN", "RaNaN@pyload.org")] - - - def loadAccountInfo(self, user, req): - page = req.load("http://freakshare.com/") - - validuntil = r'ltig bis:</td>\s*<td><b>([\d.:-]+)</b></td>' - validuntil = re.search(validuntil, page, re.M) - validuntil = validuntil.group(1).strip() - validuntil = mktime(strptime(validuntil, "%d.%m.%Y - %H:%M")) - - traffic = r'Traffic verbleibend:</td>\s*<td>([^<]+)' - traffic = re.search(traffic, page, re.M) - traffic = traffic.group(1).strip() - traffic = self.parseTraffic(traffic) - - return {"validuntil": validuntil, "trafficleft": traffic} - - - def login(self, user, data, req): - req.load("http://freakshare.com/index.php?language=EN") - - page = req.load("http://freakshare.com/login.html", None, - {"submit": "Login", "user": user, "pass": data['password']}, cookies=True) - - if ">Wrong Username or Password" in page: - self.wrongPassword() diff --git a/pyload/plugin/account/FreeWayMe.py b/pyload/plugin/account/FreeWayMe.py deleted file mode 100644 index 7b57cc6a0..000000000 --- a/pyload/plugin/account/FreeWayMe.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.Account import Account -from pyload.utils import json_loads - - -class FreeWayMe(Account): - __name__ = "FreeWayMe" - __type__ = "account" - __version__ = "0.11" - - __description__ = """FreeWayMe account plugin""" - __license__ = "GPLv3" - __authors__ = [("Nicolas Giese", "james@free-way.me")] - - - def loadAccountInfo(self, user, req): - status = self.getAccountStatus(user, req) - if not status: - return False - self.logDebug(status) - - account_info = {"validuntil": -1, "premium": False} - if status['premium'] == "Free": - account_info['trafficleft'] = int(status['guthaben']) * 1024 - elif status['premium'] == "Spender": - account_info['trafficleft'] = -1 - elif status['premium'] == "Flatrate": - account_info = {"validuntil": int(status['Flatrate']), - "trafficleft": -1, - "premium": True} - - return account_info - - - def getpw(self, user): - return self.accounts[user]['password'] - - - def login(self, user, data, req): - status = self.getAccountStatus(user, req) - - # Check if user and password are valid - if not status: - self.wrongPassword() - - - def getAccountStatus(self, user, req): - answer = req.load("https://www.free-way.me/ajax/jd.php", - get={"id": 4, "user": user, "pass": self.accounts[user]['password']}) - self.logDebug("Login: %s" % answer) - if answer == "Invalid login": - self.wrongPassword() - return False - return json_loads(answer) diff --git a/pyload/plugin/account/FshareVn.py b/pyload/plugin/account/FshareVn.py deleted file mode 100644 index c84ce6648..000000000 --- a/pyload/plugin/account/FshareVn.py +++ /dev/null @@ -1,63 +0,0 @@ -# -*- coding: utf-8 -*- - -from time import mktime, strptime -from pycurl import REFERER -import re - -from pyload.plugin.Account import Account - - -class FshareVn(Account): - __name__ = "FshareVn" - __type__ = "account" - __version__ = "0.07" - - __description__ = """Fshare.vn account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), - ("stickell", "l.stickell@yahoo.it")] - - - VALID_UNTIL_PATTERN = ur'<dt>Thời hạn dùng:</dt>\s*<dd>([^<]+)</dd>' - LIFETIME_PATTERN = ur'<dt>Lần đăng nhập trước:</dt>\s*<dd>[^<]+</dd>' - TRAFFIC_LEFT_PATTERN = ur'<dt>Tổng Dung Lượng Tài Khoản</dt>\s*<dd[^>]*>([\d.]+) ([kKMG])B</dd>' - DIRECT_DOWNLOAD_PATTERN = ur'<input type="checkbox"\s*([^=>]*)[^>]*/>Kích hoạt download trực tiếp</dt>' - - - def loadAccountInfo(self, user, req): - html = req.load("http://www.fshare.vn/account_info.php", decode=True) - - if re.search(self.LIFETIME_PATTERN, html): - self.logDebug("Lifetime membership detected") - trafficleft = self.getTrafficLeft() - return {"validuntil": -1, "trafficleft": trafficleft, "premium": True} - - m = re.search(self.VALID_UNTIL_PATTERN, html) - if m: - premium = True - validuntil = mktime(strptime(m.group(1), '%I:%M:%S %p %d-%m-%Y')) - trafficleft = self.getTrafficLeft() - else: - premium = False - validuntil = None - trafficleft = None - - return {"validuntil": validuntil, "trafficleft": trafficleft, "premium": premium} - - - def login(self, user, data, req): - req.http.c.setopt(REFERER, "https://www.fshare.vn/login.php") - - html = req.load('https://www.fshare.vn/login.php', post={ - "login_password": data['password'], - "login_useremail": user, - "url_refe": "http://www.fshare.vn/index.php" - }, referer=True, decode=True) - - if not re.search(r'<img\s+alt="VIP"', html): - self.wrongPassword() - - - def getTrafficLeft(self): - m = re.search(self.TRAFFIC_LEFT_PATTERN, html) - return float(m.group(1)) * 1024 ** {'k': 0, 'K': 0, 'M': 1, 'G': 2}[m.group(2)] if m else 0 diff --git a/pyload/plugin/account/Ftp.py b/pyload/plugin/account/Ftp.py deleted file mode 100644 index 67cde2cdd..000000000 --- a/pyload/plugin/account/Ftp.py +++ /dev/null @@ -1,17 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.Account import Account - - -class Ftp(Account): - __name__ = "Ftp" - __type__ = "account" - __version__ = "0.01" - - __description__ = """Ftp dummy account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - login_timeout = -1 #: Unlimited - info_threshold = -1 #: Unlimited diff --git a/pyload/plugin/account/HellshareCz.py b/pyload/plugin/account/HellshareCz.py deleted file mode 100644 index 6f160fa11..000000000 --- a/pyload/plugin/account/HellshareCz.py +++ /dev/null @@ -1,76 +0,0 @@ -# -*- coding: utf-8 -*- - -import re -import time - -from pyload.plugin.Account import Account - - -class HellshareCz(Account): - __name__ = "HellshareCz" - __type__ = "account" - __version__ = "0.14" - - __description__ = """Hellshare.cz account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - CREDIT_LEFT_PATTERN = r'<div class="credit-link">\s*<table>\s*<tr>\s*<th>(\d+|\d\d\.\d\d\.)</th>' - - - def loadAccountInfo(self, user, req): - self.relogin(user) - html = req.load("http://www.hellshare.com/") - - m = re.search(self.CREDIT_LEFT_PATTERN, html) - if m is None: - trafficleft = None - validuntil = None - premium = False - else: - credit = m.group(1) - premium = True - try: - if "." in credit: - #Time-based account - vt = [int(x) for x in credit.split('.')[:2]] - lt = time.localtime() - year = lt.tm_year + int(vt[1] < lt.tm_mon or (vt[1] == lt.tm_mon and vt[0] < lt.tm_mday)) - validuntil = time.mktime(time.strptime("%s%d 23:59:59" % (credit, year), "%d.%m.%Y %H:%M:%S")) - trafficleft = -1 - else: - #Traffic-based account - trafficleft = int(credit) * 1024 - validuntil = -1 - except Exception, e: - self.logError(_("Unable to parse credit info"), e) - validuntil = -1 - trafficleft = -1 - - return {"validuntil": validuntil, "trafficleft": trafficleft, "premium": premium} - - - def login(self, user, data, req): - html = req.load('http://www.hellshare.com/') - if req.lastEffectiveURL != 'http://www.hellshare.com/': - #Switch to English - self.logDebug("Switch lang - URL: %s" % req.lastEffectiveURL) - json = req.load("%s?do=locRouter-show" % req.lastEffectiveURL) - hash = re.search(r"(\-\-[0-9a-f]+\-)", json).group(1) - self.logDebug("Switch lang - HASH: %s" % hash) - html = req.load('http://www.hellshare.com/%s/' % hash) - - if re.search(self.CREDIT_LEFT_PATTERN, html): - self.logDebug("Already logged in") - return - - html = req.load('http://www.hellshare.com/login?do=loginForm-submit', post={ - "login": "Log in", - "password": data['password'], - "username": user, - "perm_login": "on" - }) - - if "<p>You input a wrong user name or wrong password</p>" in html: - self.wrongPassword() diff --git a/pyload/plugin/account/Http.py b/pyload/plugin/account/Http.py deleted file mode 100644 index 2571ef712..000000000 --- a/pyload/plugin/account/Http.py +++ /dev/null @@ -1,17 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.Account import Account - - -class Http(Account): - __name__ = "Http" - __type__ = "account" - __version__ = "0.01" - - __description__ = """Http dummy account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - login_timeout = -1 #: Unlimited - info_threshold = -1 #: Unlimited diff --git a/pyload/plugin/account/HugefilesNet.py b/pyload/plugin/account/HugefilesNet.py deleted file mode 100644 index eb383fb17..000000000 --- a/pyload/plugin/account/HugefilesNet.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class HugefilesNet(XFSAccount): - __name__ = "HugefilesNet" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Hugefiles.net account plugin""" - __license__ = "GPLv3" - __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - - - HOSTER_DOMAIN = "hugefiles.net" diff --git a/pyload/plugin/account/HundredEightyUploadCom.py b/pyload/plugin/account/HundredEightyUploadCom.py deleted file mode 100644 index 79b5ee033..000000000 --- a/pyload/plugin/account/HundredEightyUploadCom.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class HundredEightyUploadCom(XFSAccount): - __name__ = "HundredEightyUploadCom" - __type__ = "account" - __version__ = "0.02" - - __description__ = """180upload.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - - - HOSTER_DOMAIN = "180upload.com" diff --git a/pyload/plugin/account/JunocloudMe.py b/pyload/plugin/account/JunocloudMe.py deleted file mode 100644 index 0ffa92eb6..000000000 --- a/pyload/plugin/account/JunocloudMe.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class JunocloudMe(XFSAccount): - __name__ = "JunocloudMe" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Junocloud.me account plugin""" - __license__ = "GPLv3" - __authors__ = [("guidobelix", "guidobelix@hotmail.it")] - - - HOSTER_DOMAIN = "junocloud.me" diff --git a/pyload/plugin/account/Keep2ShareCc.py b/pyload/plugin/account/Keep2ShareCc.py deleted file mode 100644 index 7ed15dc62..000000000 --- a/pyload/plugin/account/Keep2ShareCc.py +++ /dev/null @@ -1,69 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from time import gmtime, mktime, strptime - -from pyload.plugin.Account import Account - - -class Keep2shareCc(Account): - __name__ = "Keep2shareCc" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Keep2share.cc account plugin""" - __license__ = "GPLv3" - __authors__ = [("aeronaut", "aeronaut@pianoguy.de")] - - - VALID_UNTIL_PATTERN = r'Premium expires: <b>(.+?)</b>' - TRAFFIC_LEFT_PATTERN = r'Available traffic \(today\):<b><a href="/user/statistic.html">(.+?)</a>' - - LOGIN_FAIL_PATTERN = r'Please fix the following input errors' - - - def loadAccountInfo(self, user, req): - validuntil = None - trafficleft = None - premium = None - - html = req.load("http://keep2share.cc/site/profile.html", decode=True) - - m = re.search(self.VALID_UNTIL_PATTERN, html) - if m: - expiredate = m.group(1).strip() - self.logDebug("Expire date: " + expiredate) - - try: - validuntil = mktime(strptime(expiredate, "%Y.%m.%d")) - - except Exception, e: - self.logError(e) - - else: - if validuntil > mktime(gmtime()): - premium = True - else: - premium = False - validuntil = None - - m = re.search(self.TRAFFIC_LEFT_PATTERN, html) - if m: - try: - trafficleft = self.parseTraffic(m.group(1)) - - except Exception, e: - self.logError(e) - - return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium} - - - def login(self, user, data, req): - req.cj.setCookie("keep2share.cc", "lang", "en") - - html = req.load("http://keep2share.cc/login.html", - post={'LoginForm[username]': user, 'LoginForm[password]': data['password']}) - - if re.search(self.LOGIN_FAIL_PATTERN, html): - self.wrongPassword() diff --git a/pyload/plugin/account/LetitbitNet.py b/pyload/plugin/account/LetitbitNet.py deleted file mode 100644 index c7615dd56..000000000 --- a/pyload/plugin/account/LetitbitNet.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.Account import Account -# from pyload.utils import json_loads, json_dumps - - -class LetitbitNet(Account): - __name__ = "LetitbitNet" - __type__ = "account" - __version__ = "0.01" - - __description__ = """Letitbit.net account plugin""" - __license__ = "GPLv3" - __authors__ = [("stickell", "l.stickell@yahoo.it")] - - - def loadAccountInfo(self, user, req): - ## DISABLED BECAUSE IT GET 'key exausted' EVEN IF VALID ## - # api_key = self.accounts[user]['password'] - # json_data = [api_key, ['key/info']] - # api_rep = req.load('http://api.letitbit.net/json', post={'r': json_dumps(json_data)}) - # self.logDebug("API Key Info: " + api_rep) - # api_rep = json_loads(api_rep) - # - # if api_rep['status'] == 'FAIL': - # self.logWarning(api_rep['data']) - # return {'valid': False, 'premium': False} - - return {"premium": True} - - - def login(self, user, data, req): - # API_KEY is the username and the PREMIUM_KEY is the password - self.logInfo(_("You must use your API KEY as username and the PREMIUM KEY as password")) diff --git a/pyload/plugin/account/LinestorageCom.py b/pyload/plugin/account/LinestorageCom.py deleted file mode 100644 index 6a9991b17..000000000 --- a/pyload/plugin/account/LinestorageCom.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class LinestorageCom(XFSAccount): - __name__ = "LinestorageCom" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Linestorage.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - - - HOSTER_DOMAIN = "linestorage.com" diff --git a/pyload/plugin/account/LinksnappyCom.py b/pyload/plugin/account/LinksnappyCom.py deleted file mode 100644 index 968271dd7..000000000 --- a/pyload/plugin/account/LinksnappyCom.py +++ /dev/null @@ -1,50 +0,0 @@ -# -*- coding: utf-8 -*- - -from hashlib import md5 - -from pyload.plugin.Account import Account -from pyload.utils import json_loads - - -class LinksnappyCom(Account): - __name__ = "LinksnappyCom" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Linksnappy.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("stickell", "l.stickell@yahoo.it")] - - - def loadAccountInfo(self, user, req): - data = self.getAccountData(user) - r = req.load('http://gen.linksnappy.com/lseAPI.php', - get={'act': 'USERDETAILS', 'username': user, 'password': md5(data['password']).hexdigest()}) - self.logDebug("JSON data: " + r) - j = json_loads(r) - - if j['error']: - return {"premium": False} - - validuntil = j['return']['expire'] - if validuntil == 'lifetime': - validuntil = -1 - elif validuntil == 'expired': - return {"premium": False} - else: - validuntil = float(validuntil) - - if 'trafficleft' not in j['return'] or isinstance(j['return']['trafficleft'], str): - trafficleft = -1 - else: - trafficleft = int(j['return']['trafficleft']) * 1024 - - return {"premium": True, "validuntil": validuntil, "trafficleft": trafficleft} - - - def login(self, user, data, req): - r = req.load('http://gen.linksnappy.com/lseAPI.php', - get={'act': 'USERDETAILS', 'username': user, 'password': md5(data['password']).hexdigest()}) - - if 'Invalid Account Details' in r: - self.wrongPassword() diff --git a/pyload/plugin/account/LomafileCom.py b/pyload/plugin/account/LomafileCom.py deleted file mode 100644 index 24f988ac1..000000000 --- a/pyload/plugin/account/LomafileCom.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class LomafileCom(XFSAccount): - __name__ = "LomafileCom" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Lomafile.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("guidobelix", "guidobelix@hotmail.it")] - - - HOSTER_DOMAIN = "lomafile.com" diff --git a/pyload/plugin/account/MegaDebridEu.py b/pyload/plugin/account/MegaDebridEu.py deleted file mode 100644 index c2e64bcc7..000000000 --- a/pyload/plugin/account/MegaDebridEu.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.Account import Account -from pyload.utils import json_loads - - -class MegaDebridEu(Account): - __name__ = "MegaDebridEu" - __type__ = "account" - __version__ = "0.20" - - __description__ = """mega-debrid.eu account plugin""" - __license__ = "GPLv3" - __authors__ = [("D.Ducatel", "dducatel@je-geek.fr")] - - - # Define the base URL of MegaDebrid api - API_URL = "https://www.mega-debrid.eu/api.php" - - - def loadAccountInfo(self, user, req): - data = self.getAccountData(user) - jsonResponse = req.load(self.API_URL, - get={'action': 'connectUser', 'login': user, 'password': data['password']}) - res = json_loads(jsonResponse) - - if res['response_code'] == "ok": - return {"premium": True, "validuntil": float(res['vip_end']), "status": True} - else: - self.logError(res) - return {"status": False, "premium": False} - - - def login(self, user, data, req): - jsonResponse = req.load(self.API_URL, - get={'action': 'connectUser', 'login': user, 'password': data['password']}) - res = json_loads(jsonResponse) - if res['response_code'] != "ok": - self.wrongPassword() diff --git a/pyload/plugin/account/MegaRapidCz.py b/pyload/plugin/account/MegaRapidCz.py deleted file mode 100644 index 5ceee1301..000000000 --- a/pyload/plugin/account/MegaRapidCz.py +++ /dev/null @@ -1,59 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from time import mktime, strptime -from pyload.plugin.Account import Account - - -class MegaRapidCz(Account): - __name__ = "MegaRapidCz" - __type__ = "account" - __version__ = "0.34" - - __description__ = """MegaRapid.cz account plugin""" - __license__ = "GPLv3" - __authors__ = [("MikyWoW", "mikywow@seznam.cz"), - ("zoidberg", "zoidberg@mujmail.cz")] - - - login_timeout = 60 - - LIMITDL_PATTERN = ur'<td>Max. počet paralelních stahování: </td><td>(\d+)' - VALID_UNTIL_PATTERN = ur'<td>Paušální stahování aktivní. Vyprší </td><td><strong>(.*?)</strong>' - TRAFFIC_LEFT_PATTERN = r'<tr><td>Kredit</td><td>(.*?) GiB' - - - def loadAccountInfo(self, user, req): - html = req.load("http://megarapid.cz/mujucet/", decode=True) - - m = re.search(self.LIMITDL_PATTERN, html) - if m: - data = self.getAccountData(user) - data['options']['limitDL'] = [int(m.group(1))] - - m = re.search(self.VALID_UNTIL_PATTERN, html) - if m: - validuntil = mktime(strptime(m.group(1), "%d.%m.%Y - %H:%M")) - return {"premium": True, "trafficleft": -1, "validuntil": validuntil} - - m = re.search(self.TRAFFIC_LEFT_PATTERN, html) - if m: - trafficleft = float(m.group(1)) * (1 << 20) - return {"premium": True, "trafficleft": trafficleft, "validuntil": -1} - - return {"premium": False, "trafficleft": None, "validuntil": None} - - - def login(self, user, data, req): - htm = req.load("http://megarapid.cz/prihlaseni/") - if "Heslo:" in htm: - start = htm.index('id="inp_hash" name="hash" value="') - htm = htm[start + 33:] - hashes = htm[0:32] - htm = req.load("http://megarapid.cz/prihlaseni/", - post={"hash": hashes, - "login": user, - "pass1": data['password'], - "remember": 0, - "sbmt": u"Přihlásit"}) diff --git a/pyload/plugin/account/MegasharesCom.py b/pyload/plugin/account/MegasharesCom.py deleted file mode 100644 index 352e0abd5..000000000 --- a/pyload/plugin/account/MegasharesCom.py +++ /dev/null @@ -1,48 +0,0 @@ -# -*- coding: utf-8 -*- - -import re -from time import mktime, strptime - -from pyload.plugin.Account import Account - - -class MegasharesCom(Account): - __name__ = "MegasharesCom" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Megashares.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - VALID_UNTIL_PATTERN = r'<p class="premium_info_box">Period Ends: (\w{3} \d{1,2}, \d{4})</p>' - - - def loadAccountInfo(self, user, req): - #self.relogin(user) - html = req.load("http://d01.megashares.com/myms.php", decode=True) - - premium = False if '>Premium Upgrade<' in html else True - - validuntil = trafficleft = -1 - try: - timestr = re.search(self.VALID_UNTIL_PATTERN, html).group(1) - self.logDebug(timestr) - validuntil = mktime(strptime(timestr, "%b %d, %Y")) - except Exception, e: - self.logError(e) - - return {"validuntil": validuntil, "trafficleft": -1, "premium": premium} - - - def login(self, user, data, req): - html = req.load('http://d01.megashares.com/myms_login.php', post={ - "httpref": "", - "myms_login": "Login", - "mymslogin_name": user, - "mymspassword": data['password'] - }, decode=True) - - if not '<span class="b ml">%s</span>' % user in html: - self.wrongPassword() diff --git a/pyload/plugin/account/MovReelCom.py b/pyload/plugin/account/MovReelCom.py deleted file mode 100644 index 4d2855de1..000000000 --- a/pyload/plugin/account/MovReelCom.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class MovReelCom(XFSAccount): - __name__ = "MovReelCom" - __type__ = "account" - __version__ = "0.03" - - __description__ = """Movreel.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("t4skforce", "t4skforce1337[AT]gmail[DOT]com")] - - - login_timeout = 60 - info_threshold = 30 - - HOSTER_DOMAIN = "movreel.com" diff --git a/pyload/plugin/account/MultishareCz.py b/pyload/plugin/account/MultishareCz.py deleted file mode 100644 index 62b48c546..000000000 --- a/pyload/plugin/account/MultishareCz.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from pyload.plugin.Account import Account - - -class MultishareCz(Account): - __name__ = "MultishareCz" - __type__ = "account" - __version__ = "0.03" - - __description__ = """Multishare.cz account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - 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="([^"]+)">' - - - def loadAccountInfo(self, user, req): - #self.relogin(user) - html = req.load("http://www.multishare.cz/profil/", decode=True) - - m = re.search(self.TRAFFIC_LEFT_PATTERN, html) - trafficleft = self.parseTraffic(m.group('S'), m.group('U')) if m else 0 - self.premium = True if trafficleft else False - - html = req.load("http://www.multishare.cz/", decode=True) - mms_info = dict(re.findall(self.ACCOUNT_INFO_PATTERN, html)) - - return dict(mms_info, **{"validuntil": -1, "trafficleft": trafficleft}) - - - def login(self, user, data, req): - html = req.load('http://www.multishare.cz/html/prihlaseni_process.php', post={ - "akce": "Přihlásit", - "heslo": data['password'], - "jmeno": user - }, decode=True) - - if '<div class="akce-chyba akce">' in html: - self.wrongPassword() diff --git a/pyload/plugin/account/MyfastfileCom.py b/pyload/plugin/account/MyfastfileCom.py deleted file mode 100644 index 01caf5c69..000000000 --- a/pyload/plugin/account/MyfastfileCom.py +++ /dev/null @@ -1,35 +0,0 @@ -# -*- coding: utf-8 -*- - -from time import time - -from pyload.plugin.Account import Account -from pyload.utils import json_loads - - -class MyfastfileCom(Account): - __name__ = "MyfastfileCom" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Myfastfile.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("stickell", "l.stickell@yahoo.it")] - - - def loadAccountInfo(self, user, req): - if 'days_left' in self.json_data: - validuntil = int(time() + self.json_data['days_left'] * 24 * 60 * 60) - return {"premium": True, "validuntil": validuntil, "trafficleft": -1} - else: - self.logError(_("Unable to get account information")) - - - def login(self, user, data, req): - # Password to use is the API-Password written in http://myfastfile.com/myaccount - html = req.load("http://myfastfile.com/api.php", - get={"user": user, "pass": data['password']}) - self.logDebug("JSON data: " + html) - self.json_data = json_loads(html) - if self.json_data['status'] != 'ok': - self.logError(_('Invalid login. The password to use is the API-Password you find in your "My Account" page')) - self.wrongPassword() diff --git a/pyload/plugin/account/NetloadIn.py b/pyload/plugin/account/NetloadIn.py deleted file mode 100644 index d0d48315a..000000000 --- a/pyload/plugin/account/NetloadIn.py +++ /dev/null @@ -1,40 +0,0 @@ -# -*- coding: utf-8 -*- - -import re -from time import time - -from pyload.plugin.Account import Account - - -class NetloadIn(Account): - __name__ = "NetloadIn" - __type__ = "account" - __version__ = "0.22" - - __description__ = """Netload.in account plugin""" - __license__ = "GPLv3" - __authors__ = [("RaNaN", "RaNaN@pyload.org"), - ("CryNickSystems", "webmaster@pcProfil.de")] - - - def loadAccountInfo(self, user, req): - page = req.load("http://netload.in/index.php", get={'id': 2, 'lang': "de"}) - left = r'>(\d+) (Tag|Tage), (\d+) Stunden<' - left = re.search(left, page) - if left: - validuntil = time() + int(left.group(1)) * 24 * 60 * 60 + int(left.group(3)) * 60 * 60 - trafficleft = -1 - premium = True - else: - validuntil = None - premium = False - trafficleft = None - return {"validuntil": validuntil, "trafficleft": trafficleft, "premium": premium} - - - def login(self, user, data, req): - page = req.load("http://netload.in/index.php", None, - {"txtuser": user, "txtpass": data['password'], "txtcheck": "login", "txtlogin": "Login"}, - cookies=True) - if "password or it might be invalid!" in page: - self.wrongPassword() diff --git a/pyload/plugin/account/NosuploadCom.py b/pyload/plugin/account/NosuploadCom.py deleted file mode 100644 index 7fc8b49de..000000000 --- a/pyload/plugin/account/NosuploadCom.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class NosuploadCom(XFSAccount): - __name__ = "NosuploadCom" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Nosupload.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - - - HOSTER_DOMAIN = "nosupload.com" diff --git a/pyload/plugin/account/NovafileCom.py b/pyload/plugin/account/NovafileCom.py deleted file mode 100644 index 71a7dc2dc..000000000 --- a/pyload/plugin/account/NovafileCom.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class NovafileCom(XFSAccount): - __name__ = "NovafileCom" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Novafile.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - - - HOSTER_DOMAIN = "novafile.com" diff --git a/pyload/plugin/account/NowVideoSx.py b/pyload/plugin/account/NowVideoSx.py deleted file mode 100644 index d2527d635..000000000 --- a/pyload/plugin/account/NowVideoSx.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from time import gmtime, mktime, strptime - -from pyload.plugin.Account import Account - - -class NowVideoAt(Account): - __name__ = "NowVideoAt" - __type__ = "account" - __version__ = "0.01" - - __description__ = """NowVideo.at account plugin""" - __license__ = "GPLv3" - __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - - - VALID_UNTIL_PATTERN = r'>Your premium membership expires on: (.+?)<' - - - def loadAccountInfo(self, user, req): - validuntil = None - trafficleft = -1 - premium = None - - html = req.load("http://www.nowvideo.at/premium.php") - - m = re.search(self.VALID_UNTIL_PATTERN, html) - if m: - expiredate = m.group(1).strip() - self.logDebug("Expire date: " + expiredate) - - try: - validuntil = mktime(strptime(expiredate, "%Y-%b-%d")) - - except Exception, e: - self.logError(e) - - else: - if validuntil > mktime(gmtime()): - premium = True - else: - premium = False - validuntil = -1 - - return {"validuntil": validuntil, "trafficleft": trafficleft, "premium": premium} - - - def login(self, user, data, req): - html = req.load("http://www.nowvideo.at/login.php", - post={'user': user, 'pass': data['password']}) - - if ">Invalid login details" is html: - self.wrongPassword() diff --git a/pyload/plugin/account/OboomCom.py b/pyload/plugin/account/OboomCom.py deleted file mode 100644 index a40783535..000000000 --- a/pyload/plugin/account/OboomCom.py +++ /dev/null @@ -1,62 +0,0 @@ -# -*- coding: utf-8 -*- - -import time - -from beaker.crypto.pbkdf2 import PBKDF2 - -from pyload.utils import json_loads -from pyload.plugin.Account import Account - - -class OboomCom(Account): - __name__ = "OboomCom" - __type__ = "account" - __version__ = "0.21" - - __description__ = """Oboom.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("stanley", "stanley.foerster@gmail.com")] - - - def loadAccountData(self, user, req): - passwd = self.getAccountData(user)['password'] - salt = passwd[::-1] - pbkdf2 = PBKDF2(passwd, salt, 1000).hexread(16) - result = json_loads(req.load("https://www.oboom.com/1/login", get={"auth": user, "pass": pbkdf2})) - if not result[0] == 200: - self.logWarning(_("Failed to log in: %s") % result[1]) - self.wrongPassword() - return result[1] - - - def loadAccountInfo(self, name, req): - accountData = self.loadAccountData(name, req) - - userData = accountData['user'] - - if userData['premium'] == "null": - premium = False - else: - premium = True - - if userData['premium_unix'] == "null": - validUntil = -1 - else: - validUntil = int(userData['premium_unix']) - - traffic = userData['traffic'] - - trafficLeft = traffic['current'] - maxTraffic = traffic['max'] - - session = accountData['session'] - - return {'premium' : premium, - 'validuntil' : validUntil, - 'trafficleft': trafficLeft / 1024, #@TODO: Remove / 1024 in 0.4.10 - 'maxtraffic' : maxTraffic / 1024, #@TODO: Remove / 1024 in 0.4.10 - 'session' : session} - - - def login(self, user, data, req): - self.loadAccountData(user, req) diff --git a/pyload/plugin/account/OneFichierCom.py b/pyload/plugin/account/OneFichierCom.py deleted file mode 100644 index 5d4a037f0..000000000 --- a/pyload/plugin/account/OneFichierCom.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from time import strptime, mktime - -from pycurl import REFERER - -from pyload.plugin.Account import Account - - -class OneFichierCom(Account): - __name__ = "OneFichierCom" - __type__ = "account" - __version__ = "0.11" - - __description__ = """1fichier.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("Elrick69", "elrick69[AT]rocketmail[DOT]com"), - ("Walter Purcaro", "vuolter@gmail.com")] - - - VALID_UNTIL_PATTERN = r'Your Premium Status will end the (\d+/\d+/\d+)' - - - def loadAccountInfo(self, user, req): - validuntil = None - trafficleft = -1 - premium = None - - html = req.load("https://1fichier.com/console/abo.pl") - - m = re.search(self.VALID_UNTIL_PATTERN, html) - if m: - expiredate = m.group(1) - self.logDebug("Expire date: " + expiredate) - - try: - validuntil = mktime(strptime(expiredate, "%d/%m/%Y")) - except Exception, e: - self.logError(e) - else: - premium = True - - return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium or False} - - - def login(self, user, data, req): - req.http.c.setopt(REFERER, "https://1fichier.com/login.pl?lg=en") - - html = req.load("https://1fichier.com/login.pl?lg=en", - post={'mail': user, 'pass': data['password'], 'It': "on", 'purge': "off", 'valider': "Send"}) - - if '>Invalid email address' in html or '>Invalid password' in html: - self.wrongPassword() diff --git a/pyload/plugin/account/OverLoadMe.py b/pyload/plugin/account/OverLoadMe.py deleted file mode 100644 index 27ed9eb98..000000000 --- a/pyload/plugin/account/OverLoadMe.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.Account import Account -from pyload.utils import json_loads - - -class OverLoadMe(Account): - __name__ = "OverLoadMe" - __type__ = "account" - __version__ = "0.01" - - __description__ = """Over-Load.me account plugin""" - __license__ = "GPLv3" - __authors__ = [("marley", "marley@over-load.me")] - - - def loadAccountInfo(self, user, req): - data = self.getAccountData(user) - page = req.load("https://api.over-load.me/account.php", get={"user": user, "auth": data['password']}).strip() - data = json_loads(page) - - # Check for premium - if data['membership'] == "Free": - return {"premium": False} - - account_info = {"validuntil": data['expirationunix'], "trafficleft": -1} - return account_info - - - def login(self, user, data, req): - jsondata = req.load("https://api.over-load.me/account.php", - get={"user": user, "auth": data['password']}).strip() - data = json_loads(jsondata) - - if data['err'] == 1: - self.wrongPassword() diff --git a/pyload/plugin/account/PremiumTo.py b/pyload/plugin/account/PremiumTo.py deleted file mode 100644 index 7f15e8a86..000000000 --- a/pyload/plugin/account/PremiumTo.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.Account import Account - - -class PremiumTo(Account): - __name__ = "PremiumTo" - __type__ = "account" - __version__ = "0.04" - - __description__ = """Premium.to account plugin""" - __license__ = "GPLv3" - __authors__ = [("RaNaN", "RaNaN@pyload.org"), - ("zoidberg", "zoidberg@mujmail.cz"), - ("stickell", "l.stickell@yahoo.it")] - - - - def loadAccountInfo(self, user, req): - api_r = req.load("http://premium.to/api/straffic.php", - get={'username': self.username, 'password': self.password}) - traffic = sum(map(int, api_r.split(';'))) - - return {"trafficleft": int(traffic) / 1024, "validuntil": -1} #@TODO: Remove / 1024 in 0.4.10 - - - def login(self, user, data, req): - self.username = user - self.password = data['password'] - authcode = req.load("http://premium.to/api/getauthcode.php", - get={'username': user, 'password': self.password}).strip() - - if "wrong username" in authcode: - self.wrongPassword() diff --git a/pyload/plugin/account/PremiumizeMe.py b/pyload/plugin/account/PremiumizeMe.py deleted file mode 100644 index 75fc22198..000000000 --- a/pyload/plugin/account/PremiumizeMe.py +++ /dev/null @@ -1,49 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.Account import Account - -from pyload.utils import json_loads - - -class PremiumizeMe(Account): - __name__ = "PremiumizeMe" - __type__ = "account" - __version__ = "0.11" - - __description__ = """Premiumize.me account plugin""" - __license__ = "GPLv3" - __authors__ = [("Florian Franzen", "FlorianFranzen@gmail.com")] - - - def loadAccountInfo(self, user, req): - # Get user data from premiumize.me - status = self.getAccountStatus(user, req) - self.logDebug(status) - - # Parse account info - account_info = {"validuntil": float(status['result']['expires']), - "trafficleft": max(0, status['result']['trafficleft_bytes'])} - - if status['result']['type'] == 'free': - account_info['premium'] = False - - return account_info - - - def login(self, user, data, req): - # Get user data from premiumize.me - status = self.getAccountStatus(user, req) - - # Check if user and password are valid - if status['status'] != 200: - self.wrongPassword() - - - def getAccountStatus(self, user, req): - # Use premiumize.me API v1 (see https://secure.premiumize.me/?show=api) - # to retrieve account info and return the parsed json answer - answer = req.load("https://api.premiumize.me/pm-api/v1.php", - get={'method' : "accountstatus", - 'params[login]': user, - 'params[pass]' : self.accounts[user]['password']}) - return json_loads(answer) diff --git a/pyload/plugin/account/QuickshareCz.py b/pyload/plugin/account/QuickshareCz.py deleted file mode 100644 index c3d69e0c3..000000000 --- a/pyload/plugin/account/QuickshareCz.py +++ /dev/null @@ -1,43 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from pyload.plugin.Account import Account - - -class QuickshareCz(Account): - __name__ = "QuickshareCz" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Quickshare.cz account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - TRAFFIC_LEFT_PATTERN = r'Stav kreditu: <strong>(.+?)</strong>' - - - def loadAccountInfo(self, user, req): - html = req.load("http://www.quickshare.cz/premium", decode=True) - - m = re.search(self.TRAFFIC_LEFT_PATTERN, html) - if m: - trafficleft = self.parseTraffic(m.group(1)) - premium = True if trafficleft else False - else: - trafficleft = None - premium = False - - return {"validuntil": -1, "trafficleft": trafficleft, "premium": premium} - - - def login(self, user, data, req): - html = req.load('http://www.quickshare.cz/html/prihlaseni_process.php', post={ - "akce": u'Přihlásit', - "heslo": data['password'], - "jmeno": user - }, decode=True) - - if u'>Takový uživatel neexistuje.<' in html or u'>Špatné heslo.<' in html: - self.wrongPassword() diff --git a/pyload/plugin/account/RPNetBiz.py b/pyload/plugin/account/RPNetBiz.py deleted file mode 100644 index bb529b19c..000000000 --- a/pyload/plugin/account/RPNetBiz.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.Account import Account -from pyload.utils import json_loads - - -class RPNetBiz(Account): - __name__ = "RPNetBiz" - __type__ = "account" - __version__ = "0.10" - - __description__ = """RPNet.biz account plugin""" - __license__ = "GPLv3" - __authors__ = [("Dman", "dmanugm@gmail.com")] - - - def loadAccountInfo(self, user, req): - # Get account information from rpnet.biz - res = self.getAccountStatus(user, req) - try: - if res['accountInfo']['isPremium']: - # Parse account info. Change the trafficleft later to support per host info. - account_info = {"validuntil": int(res['accountInfo']['premiumExpiry']), - "trafficleft": -1, "premium": True} - else: - account_info = {"validuntil": None, "trafficleft": None, "premium": False} - - except KeyError: - #handle wrong password exception - account_info = {"validuntil": None, "trafficleft": None, "premium": False} - - return account_info - - - def login(self, user, data, req): - # Get account information from rpnet.biz - res = self.getAccountStatus(user, req) - - # If we have an error in the res, we have wrong login information - if 'error' in res: - self.wrongPassword() - - - def getAccountStatus(self, user, req): - # Using the rpnet API, check if valid premium account - res = req.load("https://premium.rpnet.biz/client_api.php", - get={"username": user, "password": self.accounts[user]['password'], - "action": "showAccountInformation"}) - self.logDebug("JSON data: %s" % res) - - return json_loads(res) diff --git a/pyload/plugin/account/RapidfileshareNet.py b/pyload/plugin/account/RapidfileshareNet.py deleted file mode 100644 index ec0bf8db4..000000000 --- a/pyload/plugin/account/RapidfileshareNet.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class RapidfileshareNet(XFSAccount): - __name__ = "RapidfileshareNet" - __type__ = "account" - __version__ = "0.05" - - __description__ = """Rapidfileshare.net account plugin""" - __license__ = "GPLv3" - __authors__ = [("guidobelix", "guidobelix@hotmail.it")] - - - HOSTER_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/pyload/plugin/account/RapidgatorNet.py b/pyload/plugin/account/RapidgatorNet.py deleted file mode 100644 index 693b78547..000000000 --- a/pyload/plugin/account/RapidgatorNet.py +++ /dev/null @@ -1,58 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.Account import Account -from pyload.utils import json_loads - - -class RapidgatorNet(Account): - __name__ = "RapidgatorNet" - __type__ = "account" - __version__ = "0.04" - - __description__ = """Rapidgator.net account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - API_URL = 'http://rapidgator.net/api/user' - - - def loadAccountInfo(self, user, req): - try: - sid = self.getAccountData(user).get('SID') - assert sid - - json = req.load("%s/info?sid=%s" % (self.API_URL, sid)) - self.logDebug("API:USERINFO", json) - json = json_loads(json) - - if json['response_status'] == 200: - if "reset_in" in json['response']: - self.scheduleRefresh(user, json['response']['reset_in']) - - return {"validuntil": json['response']['expire_date'], - "trafficleft": int(json['response']['traffic_left']), - "premium": True} - else: - self.logError(json['response_details']) - except Exception, e: - self.logError(e) - - return {"validuntil": None, "trafficleft": None, "premium": False} - - - def login(self, user, data, req): - try: - json = req.load('%s/login' % self.API_URL, post={"username": user, "password": data['password']}) - self.logDebug("API:LOGIN", json) - json = json_loads(json) - - if json['response_status'] == 200: - data['SID'] = str(json['response']['session_id']) - return - else: - self.logError(json['response_details']) - except Exception, e: - self.logError(e) - - self.wrongPassword() diff --git a/pyload/plugin/account/RapiduNet.py b/pyload/plugin/account/RapiduNet.py deleted file mode 100644 index 2c6fe04f8..000000000 --- a/pyload/plugin/account/RapiduNet.py +++ /dev/null @@ -1,48 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from pyload.plugin.Account import Account -from pyload.utils import json_loads - - -class RapiduNet(Account): - __name__ = "RapiduNet" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Rapidu.net account plugin""" - __license__ = "GPLv3" - __authors__ = [("prOq", "")] - - - PREMIUM_PATTERN = r'<a href="premium/" style="padding-left: 0px;">Account: <b>Premium</b></a>' - - - def loadAccountInfo(self, user, req): - info = {'validuntil': None, 'trafficleft': None, 'premium': False} - - req.load("https://rapidu.net/ajax.php", get={'a': "getChangeLang"}, post={"_go": "", "lang": "en"}) - html = req.load("https://rapidu.net/", decode=True) - - if re.search(self.PREMIUM_PATTERN, html): - info['premium'] = True - - return info - - - def login(self, user, data, req): - try: - json = json_loads(req.load("https://rapidu.net/ajax.php?a=getUserLogin", - post={'_go': "", - 'login': user, - 'pass': data['password'], - 'member': "1"})) - - self.logDebug(json) - - if not json['message'] == "success": - self.wrongPassword() - - except Exception, e: - self.logError(e) diff --git a/pyload/plugin/account/RarefileNet.py b/pyload/plugin/account/RarefileNet.py deleted file mode 100644 index 1dc93681c..000000000 --- a/pyload/plugin/account/RarefileNet.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class RarefileNet(XFSAccount): - __name__ = "RarefileNet" - __type__ = "account" - __version__ = "0.04" - - __description__ = """RareFile.net account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - HOSTER_DOMAIN = "rarefile.net" diff --git a/pyload/plugin/account/RealdebridCom.py b/pyload/plugin/account/RealdebridCom.py deleted file mode 100644 index d5aa2163c..000000000 --- a/pyload/plugin/account/RealdebridCom.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- - -import xml.dom.minidom as dom - -from pyload.plugin.Account import Account - - -class RealdebridCom(Account): - __name__ = "RealdebridCom" - __type__ = "account" - __version__ = "0.43" - - __description__ = """Real-Debrid.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("Devirex Hazzard", "naibaf_11@yahoo.de")] - - - def loadAccountInfo(self, user, req): - if self.pin_code: - return {"premium": False} - page = req.load("https://real-debrid.com/api/account.php") - xml = dom.parseString(page) - account_info = {"validuntil": int(xml.getElementsByTagName("expiration")[0].childNodes[0].nodeValue), - "trafficleft": -1} - - return account_info - - - def login(self, user, data, req): - self.pin_code = False - page = req.load("https://real-debrid.com/ajax/login.php", get={"user": user, "pass": data['password']}) - if "Your login informations are incorrect" in page: - self.wrongPassword() - elif "PIN Code required" in page: - self.logWarning(_("PIN code required. Please login to https://real-debrid.com using the PIN or disable the double authentication in your control panel on https://real-debrid.com")) - self.pin_code = True diff --git a/pyload/plugin/account/RehostTo.py b/pyload/plugin/account/RehostTo.py deleted file mode 100644 index bcc34d47f..000000000 --- a/pyload/plugin/account/RehostTo.py +++ /dev/null @@ -1,41 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.Account import Account - - -class RehostTo(Account): - __name__ = "RehostTo" - __type__ = "account" - __version__ = "0.10" - - __description__ = """Rehost.to account plugin""" - __license__ = "GPLv3" - __authors__ = [("RaNaN", "RaNaN@pyload.org")] - - - def loadAccountInfo(self, user, req): - data = self.getAccountData(user) - page = req.load("http://rehost.to/api.php", - get={'cmd': "login", 'user': user, 'pass': data['password']}) - data = [x.split("=") for x in page.split(",")] - ses = data[0][1] - long_ses = data[1][1] - - page = req.load("http://rehost.to/api.php", - get={'cmd': "get_premium_credits", 'long_ses': long_ses}) - traffic, valid = page.split(",") - - account_info = {"trafficleft": int(traffic) * 1024, - "validuntil": int(valid), - "long_ses": long_ses, - "ses": ses} - - return account_info - - - def login(self, user, data, req): - page = req.load("http://rehost.to/api.php", - get={'cmd': "login", 'user': user, 'pass': data['password']}) - - if "Login failed." in page: - self.wrongPassword() diff --git a/pyload/plugin/account/RyushareCom.py b/pyload/plugin/account/RyushareCom.py deleted file mode 100644 index fcef2d634..000000000 --- a/pyload/plugin/account/RyushareCom.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class RyushareCom(XFSAccount): - __name__ = "RyushareCom" - __type__ = "account" - __version__ = "0.05" - - __description__ = """Ryushare.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), - ("trance4us", "")] - - - HOSTER_DOMAIN = "ryushare.com" - - - def login(self, user, data, req): - req.lastURL = "http://ryushare.com/login.python" - html = req.load("http://ryushare.com/login.python", - post={"login": user, "password": data['password'], "op": "login"}) - if 'Incorrect Login or Password' in html or '>Error<' in html: - self.wrongPassword() diff --git a/pyload/plugin/account/SafesharingEu.py b/pyload/plugin/account/SafesharingEu.py deleted file mode 100644 index f5cbf050e..000000000 --- a/pyload/plugin/account/SafesharingEu.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class SafesharingEu(XFSAccount): - __name__ = "SafesharingEu" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Safesharing.eu account plugin""" - __license__ = "GPLv3" - __authors__ = [("guidobelix", "guidobelix@hotmail.it")] - - - HOSTER_DOMAIN = "safesharing.eu" diff --git a/pyload/plugin/account/SecureUploadEu.py b/pyload/plugin/account/SecureUploadEu.py deleted file mode 100644 index bb47bcba3..000000000 --- a/pyload/plugin/account/SecureUploadEu.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class SecureUploadEu(XFSAccount): - __name__ = "SecureUploadEu" - __type__ = "account" - __version__ = "0.02" - - __description__ = """SecureUpload.eu account plugin""" - __license__ = "GPLv3" - __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - - - HOSTER_DOMAIN = "secureupload.eu" diff --git a/pyload/plugin/account/SendmywayCom.py b/pyload/plugin/account/SendmywayCom.py deleted file mode 100644 index d64658de3..000000000 --- a/pyload/plugin/account/SendmywayCom.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class SendmywayCom(XFSAccount): - __name__ = "SendmywayCom" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Sendmyway.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - - - HOSTER_DOMAIN = "sendmyway.com" diff --git a/pyload/plugin/account/ShareonlineBiz.py b/pyload/plugin/account/ShareonlineBiz.py deleted file mode 100644 index 17425ac07..000000000 --- a/pyload/plugin/account/ShareonlineBiz.py +++ /dev/null @@ -1,45 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.Account import Account - - -class ShareonlineBiz(Account): - __name__ = "ShareonlineBiz" - __type__ = "account" - __version__ = "0.24" - - __description__ = """Share-online.biz account plugin""" - __license__ = "GPLv3" - __authors__ = [("mkaay", "mkaay@mkaay.de"), - ("zoidberg", "zoidberg@mujmail.cz")] - - - def getUserAPI(self, user, req): - return req.load("http://api.share-online.biz/account.php", - {"username": user, "password": self.accounts[user]['password'], "act": "userDetails"}) - - - def loadAccountInfo(self, user, req): - html = self.getUserAPI(user, req) - - info = {} - for line in html.splitlines(): - if "=" in line: - key, value = line.split("=") - info[key] = value - self.logDebug(info) - - if "dl" in info and info['dl'].lower() != "not_available": - req.cj.setCookie("share-online.biz", "dl", info['dl']) - if "a" in info and info['a'].lower() != "not_available": - req.cj.setCookie("share-online.biz", "a", info['a']) - - return {"validuntil": int(info['expire_date']) if "expire_date" in info else -1, - "trafficleft": -1, - "premium": True if ("dl" in info or "a" in info) and (info['group'] != "Sammler") else False} - - - def login(self, user, data, req): - html = self.getUserAPI(user, req) - if "EXCEPTION" in html: - self.wrongPassword() diff --git a/pyload/plugin/account/SimplyPremiumCom.py b/pyload/plugin/account/SimplyPremiumCom.py deleted file mode 100644 index 0872e10f5..000000000 --- a/pyload/plugin/account/SimplyPremiumCom.py +++ /dev/null @@ -1,46 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.utils import json_loads -from pyload.plugin.Account import Account - - -class SimplyPremiumCom(Account): - __name__ = "SimplyPremiumCom" - __type__ = "account" - __version__ = "0.01" - - __description__ = """Simply-Premium.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("EvolutionClip", "evolutionclip@live.de")] - - - def loadAccountInfo(self, user, req): - json_data = req.load('http://www.simply-premium.com/api/user.php?format=json') - self.logDebug("JSON data: " + json_data) - json_data = json_loads(json_data) - - if 'vip' in json_data['result'] and json_data['result']['vip'] == 0: - return {"premium": False} - - #Time package - validuntil = float(json_data['result']['timeend']) - #Traffic package - # {"trafficleft": int(traffic), "validuntil": -1} - #trafficleft = int(json_data['result']['traffic']) - - #return {"premium": True, "validuntil": validuntil, "trafficleft": trafficleft} - return {"premium": True, "validuntil": validuntil} - - - def login(self, user, data, req): - req.cj.setCookie("simply-premium.com", "lang", "EN") - - if data['password'] == '' or data['password'] == '0': - post_data = {"key": user} - else: - post_data = {"login_name": user, "login_pass": data['password']} - - html = req.load("http://www.simply-premium.com/login.php", post=post_data) - - if 'logout' not in html: - self.wrongPassword() diff --git a/pyload/plugin/account/SimplydebridCom.py b/pyload/plugin/account/SimplydebridCom.py deleted file mode 100644 index 38ff90737..000000000 --- a/pyload/plugin/account/SimplydebridCom.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- - -from time import mktime, strptime - -from pyload.plugin.Account import Account - - -class SimplydebridCom(Account): - __name__ = "SimplydebridCom" - __type__ = "account" - __version__ = "0.10" - - __description__ = """Simply-Debrid.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("Kagenoshin", "kagenoshin@gmx.ch")] - - - def loadAccountInfo(self, user, req): - get_data = {'login': 2, 'u': self.loginname, 'p': self.password} - res = req.load("http://simply-debrid.com/api.php", get=get_data, decode=True) - data = [x.strip() for x in res.split(";")] - if str(data[0]) != "1": - return {"premium": False} - else: - return {"trafficleft": -1, "validuntil": mktime(strptime(str(data[2]), "%d/%m/%Y"))} - - - def login(self, user, data, req): - self.loginname = user - self.password = data['password'] - get_data = {'login': 1, 'u': self.loginname, 'p': self.password} - res = req.load("http://simply-debrid.com/api.php", get=get_data, decode=True) - if res != "02: loggin success": - self.wrongPassword() diff --git a/pyload/plugin/account/StahnuTo.py b/pyload/plugin/account/StahnuTo.py deleted file mode 100644 index adc7ab789..000000000 --- a/pyload/plugin/account/StahnuTo.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from pyload.plugin.Account import Account - - -class StahnuTo(Account): - __name__ = "StahnuTo" - __type__ = "account" - __version__ = "0.03" - - __description__ = """StahnuTo account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - def loadAccountInfo(self, user, req): - html = req.load("http://www.stahnu.to/") - - m = re.search(r'>VIP: (\d+.*)<', html) - trafficleft = self.parseTraffic(m.group(1)) * 1024 if m else 0 - - return {"premium": trafficleft > (512 * 1024), "trafficleft": trafficleft, "validuntil": -1} - - - def login(self, user, data, req): - html = req.load("http://www.stahnu.to/login.php", post={ - "username": user, - "password": data['password'], - "submit": "Login"}) - - if not '<a href="logout.php">' in html: - self.wrongPassword() diff --git a/pyload/plugin/account/StreamcloudEu.py b/pyload/plugin/account/StreamcloudEu.py deleted file mode 100644 index 3ac74fbd0..000000000 --- a/pyload/plugin/account/StreamcloudEu.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class StreamcloudEu(XFSAccount): - __name__ = "StreamcloudEu" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Streamcloud.eu account plugin""" - __license__ = "GPLv3" - __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - - - HOSTER_DOMAIN = "streamcloud.eu" diff --git a/pyload/plugin/account/TurbobitNet.py b/pyload/plugin/account/TurbobitNet.py deleted file mode 100644 index 1086ede2a..000000000 --- a/pyload/plugin/account/TurbobitNet.py +++ /dev/null @@ -1,42 +0,0 @@ -# -*- coding: utf-8 -*- - -import re -from time import mktime, strptime - -from pyload.plugin.Account import Account - - -class TurbobitNet(Account): - __name__ = "TurbobitNet" - __type__ = "account" - __version__ = "0.01" - - __description__ = """TurbobitNet account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - def loadAccountInfo(self, user, req): - html = req.load("http://turbobit.net") - - m = re.search(r'<u>Turbo Access</u> to ([\d.]+)', html) - if m: - premium = True - validuntil = mktime(strptime(m.group(1), "%d.%m.%Y")) - else: - premium = False - validuntil = -1 - - return {"premium": premium, "trafficleft": -1, "validuntil": validuntil} - - - def login(self, user, data, req): - req.cj.setCookie("turbobit.net", "user_lang", "en") - - html = req.load("http://turbobit.net/user/login", post={ - "user[login]": user, - "user[pass]": data['password'], - "user[submit]": "Login"}) - - if not '<div class="menu-item user-name">' in html: - self.wrongPassword() diff --git a/pyload/plugin/account/TusfilesNet.py b/pyload/plugin/account/TusfilesNet.py deleted file mode 100644 index 84e9ef9c6..000000000 --- a/pyload/plugin/account/TusfilesNet.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from time import mktime, strptime, gmtime - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class TusfilesNet(XFSAccount): - __name__ = "TusfilesNet" - __type__ = "account" - __version__ = "0.06" - - __description__ = """Tusfile.net account plugin""" - __license__ = "GPLv3" - __authors__ = [("guidobelix", "guidobelix@hotmail.it")] - - - HOSTER_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/pyload/plugin/account/UlozTo.py b/pyload/plugin/account/UlozTo.py deleted file mode 100644 index 57031ce1f..000000000 --- a/pyload/plugin/account/UlozTo.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from urlparse import urljoin - -from pyload.plugin.Account import Account - - -class UlozTo(Account): - __name__ = "UlozTo" - __type__ = "account" - __version__ = "0.07" - - __description__ = """Uloz.to account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), - ("pulpe", "")] - - - TRAFFIC_LEFT_PATTERN = r'<li class="menu-kredit"><a href="/kredit" title="[^"]*?GB = ([\d.]+) MB"' - - - def loadAccountInfo(self, user, req): - self.phpsessid = req.cj.getCookie("ULOSESSID") #@NOTE: this cookie gets lost somehow after each request - - html = req.load("http://www.ulozto.net/", decode=True) - - req.cj.setCookie("ulozto.net", "ULOSESSID", self.phpsessid) - - m = re.search(self.TRAFFIC_LEFT_PATTERN, html) - trafficleft = int(float(m.group(1).replace(' ', '').replace(',', '.')) * 1000 * 1.048) if m else 0 - self.premium = True if trafficleft else False - - return {"validuntil": -1, "trafficleft": trafficleft} - - - def login(self, user, data, req): - login_page = req.load('http://www.ulozto.net/?do=web-login', decode=True) - action = re.findall('<form action="(.+?)"', login_page)[1].replace('&', '&') - token = re.search('_token_" value="(.+?)"', login_page).group(1) - - html = req.load(urljoin("http://www.ulozto.net/", action), - post={'_token_' : token, - 'do' : "loginForm-submit", - 'login' : u"Přihlásit", - 'password': data['password'], - 'username': user}, - decode=True) - - if '<div class="flash error">' in html: - self.wrongPassword() diff --git a/pyload/plugin/account/UnrestrictLi.py b/pyload/plugin/account/UnrestrictLi.py deleted file mode 100644 index 07e7d3e17..000000000 --- a/pyload/plugin/account/UnrestrictLi.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.Account import Account -from pyload.utils import json_loads - - -class UnrestrictLi(Account): - __name__ = "UnrestrictLi" - __type__ = "account" - __version__ = "0.03" - - __description__ = """Unrestrict.li account plugin""" - __license__ = "GPLv3" - __authors__ = [("stickell", "l.stickell@yahoo.it")] - - - def loadAccountInfo(self, user, req): - json_data = req.load('http://unrestrict.li/api/jdownloader/user.php?format=json') - self.logDebug("JSON data: " + json_data) - json_data = json_loads(json_data) - - if 'vip' in json_data['result'] and json_data['result']['vip'] == 0: - return {"premium": False} - - validuntil = json_data['result']['expires'] - trafficleft = int(json_data['result']['traffic']) - - return {"premium": True, "validuntil": validuntil, "trafficleft": trafficleft} - - - def login(self, user, data, req): - req.cj.setCookie("unrestrict.li", "lang", "EN") - html = req.load("https://unrestrict.li/sign_in") - - if 'solvemedia' in html: - self.logError(_("A Captcha is required. Go to http://unrestrict.li/sign_in and login, then retry")) - return - - post_data = {"username": user, "password": data['password'], - "remember_me": "remember", "signin": "Sign in"} - html = req.load("https://unrestrict.li/sign_in", post=post_data) - - if 'sign_out' not in html: - self.wrongPassword() diff --git a/pyload/plugin/account/UploadcCom.py b/pyload/plugin/account/UploadcCom.py deleted file mode 100644 index 66863c456..000000000 --- a/pyload/plugin/account/UploadcCom.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class UploadcCom(XFSAccount): - __name__ = "UploadcCom" - __type__ = "account" - __version__ = "0.02" - - __description__ = """Uploadc.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - - - HOSTER_DOMAIN = "uploadc.com" diff --git a/pyload/plugin/account/UploadedTo.py b/pyload/plugin/account/UploadedTo.py deleted file mode 100644 index 91cdba2c1..000000000 --- a/pyload/plugin/account/UploadedTo.py +++ /dev/null @@ -1,60 +0,0 @@ -# -*- coding: utf-8 -*- - -import re -from time import time - -from pyload.plugin.Account import Account - - -class UploadedTo(Account): - __name__ = "UploadedTo" - __type__ = "account" - __version__ = "0.27" - - __description__ = """Uploaded.to account plugin""" - __license__ = "GPLv3" - __authors__ = [("mkaay", "mkaay@mkaay.de")] - - - PREMIUM_PATTERN = r'<em>Premium</em>' - VALID_UNTIL_PATTERN = r'<td>Duration:</td>\s*<th>([^<]+)' - TRAFFIC_LEFT_PATTERN = r'<th colspan="2"><b class="cB">([^<]+)' - - - def loadAccountInfo(self, user, req): - validuntil = None - trafficleft = None - premium = None - - html = req.load("http://uploaded.net/me") - - premium = True if re.search(self.PREMIUM_PATTERN, html) else False - - m = re.search(self.VALID_UNTIL_PATTERN, html, re.M) - if m: - expiredate = m.group(1).strip() - - if expiredate == "unlimited": - validuntil = -1 - else: - m = re.findall(r'(\d+) (Week|weeks|day|hour)', expiredate) - if m: - validuntil = time() - for n, u in m: - validuntil += int(n) * 60 * 60 * {'Week': 168, 'weeks': 168, 'day': 24, 'hour': 1}[u] - - m = re.search(self.TRAFFIC_LEFT_PATTERN, html) - if m: - trafficleft = self.parseTraffic(m.group(1).replace('.', '')) - - return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium} - - - def login(self, user, data, req): - req.cj.setCookie("uploaded.net", "lang", "en") - - page = req.load("http://uploaded.net/io/login", - post={'id': user, 'pw': data['password'], '_': ""}) - - if "User and password do not match" in page: - self.wrongPassword() diff --git a/pyload/plugin/account/UploadheroCom.py b/pyload/plugin/account/UploadheroCom.py deleted file mode 100644 index c7b05bc94..000000000 --- a/pyload/plugin/account/UploadheroCom.py +++ /dev/null @@ -1,41 +0,0 @@ -# -*- coding: utf-8 -*- - -import re -import datetime -import time - -from pyload.plugin.Account import Account - - -class UploadheroCom(Account): - __name__ = "UploadheroCom" - __type__ = "account" - __version__ = "0.20" - - __description__ = """Uploadhero.co account plugin""" - __license__ = "GPLv3" - __authors__ = [("mcmyst", "mcmyst@hotmail.fr")] - - - def loadAccountInfo(self, user, req): - premium_pattern = re.compile('Il vous reste <span class="bleu">(\d+)</span> jours premium') - - data = self.getAccountData(user) - page = req.load("http://uploadhero.co/my-account") - - if premium_pattern.search(page): - end_date = datetime.date.today() + datetime.timedelta(days=int(premium_pattern.search(page).group(1))) - end_date = time.mktime(future.timetuple()) - account_info = {"validuntil": end_date, "trafficleft": -1, "premium": True} - else: - account_info = {"validuntil": -1, "trafficleft": -1, "premium": False} - - return account_info - - - def login(self, user, data, req): - page = req.load("http://uploadhero.co/lib/connexion.php", - post={"pseudo_login": user, "password_login": data['password']}) - - if "mot de passe invalide" in page: - self.wrongPassword() diff --git a/pyload/plugin/account/UploadingCom.py b/pyload/plugin/account/UploadingCom.py deleted file mode 100644 index 6d54469e8..000000000 --- a/pyload/plugin/account/UploadingCom.py +++ /dev/null @@ -1,63 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from time import time, strptime, mktime - -from pyload.plugin.Account import Account -from pyload.plugin.internal.SimpleHoster import set_cookies - - -class UploadingCom(Account): - __name__ = "UploadingCom" - __type__ = "account" - __version__ = "0.11" - - __description__ = """Uploading.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("mkaay", "mkaay@mkaay.de")] - - - PREMIUM_PATTERN = r'UPGRADE TO PREMIUM' - VALID_UNTIL_PATTERN = r'Valid Until:(.+?)<' - - - def loadAccountInfo(self, user, req): - validuntil = None - trafficleft = None - premium = None - - html = req.load("http://uploading.com/") - - premium = False if re.search(self.PREMIUM_PATTERN, html) else True - - m = re.search(self.VALID_UNTIL_PATTERN, html) - if m: - expiredate = m.group(1).strip() - self.logDebug("Expire date: " + expiredate) - - try: - validuntil = mktime(strptime(expiredate, "%b %d, %Y")) - - except Exception, e: - self.logError(e) - - else: - if validuntil > mktime(gmtime()): - premium = True - else: - premium = False - validuntil = None - - return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium} - - - def login(self, user, data, req): - set_cookies([("uploading.com", "lang", "1"), - ("uploading.com", "language", "1"), - ("uploading.com", "setlang", "en"), - ("uploading.com", "_lang", "en")] - - req.load("http://uploading.com/") - req.load("http://uploading.com/general/login_form/?JsHttpRequest=%s-xml" % long(time() * 1000), - post={'email': user, 'password': data['password'], 'remember': "on"}) diff --git a/pyload/plugin/account/UptoboxCom.py b/pyload/plugin/account/UptoboxCom.py deleted file mode 100644 index 2d0b49957..000000000 --- a/pyload/plugin/account/UptoboxCom.py +++ /dev/null @@ -1,17 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class UptoboxCom(XFSAccount): - __name__ = "UptoboxCom" - __type__ = "account" - __version__ = "0.07" - - __description__ = """DDLStorage.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - HOSTER_DOMAIN = "uptobox.com" - HOSTER_URL = "https://uptobox.com/" diff --git a/pyload/plugin/account/VidPlayNet.py b/pyload/plugin/account/VidPlayNet.py deleted file mode 100644 index 390520a00..000000000 --- a/pyload/plugin/account/VidPlayNet.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class VidPlayNet(XFSAccount): - __name__ = "VidPlayNet" - __type__ = "account" - __version__ = "0.02" - - __description__ = """VidPlay.net account plugin""" - __license__ = "GPLv3" - __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - - - HOSTER_DOMAIN = "vidplay.net" diff --git a/pyload/plugin/account/XFileSharingPro.py b/pyload/plugin/account/XFileSharingPro.py deleted file mode 100644 index 9d938c4c5..000000000 --- a/pyload/plugin/account/XFileSharingPro.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- - -from pyload.plugin.internal.XFSAccount import XFSAccount - - -class XFileSharingPro(XFSAccount): - __name__ = "XFileSharingPro" - __type__ = "account" - __version__ = "0.05" - - __description__ = """XFileSharingPro multi-purpose account plugin""" - __license__ = "GPLv3" - __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - - - HOSTER_DOMAIN = None - - - def init(self): - if self.HOSTER_DOMAIN: - return super(XFileSharingPro, self).init() - - - def loadAccountInfo(self, user, req): - return super(XFileSharingPro if self.HOSTER_DOMAIN else XFSAccount, self).loadAccountInfo(user, req) - - - def login(self, user, data, req): - if self.HOSTER_DOMAIN: - return super(XFileSharingPro, self).login(user, data, req) diff --git a/pyload/plugin/account/YibaishiwuCom.py b/pyload/plugin/account/YibaishiwuCom.py deleted file mode 100644 index e169a5901..000000000 --- a/pyload/plugin/account/YibaishiwuCom.py +++ /dev/null @@ -1,40 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from pyload.plugin.Account import Account - - -class YibaishiwuCom(Account): - __name__ = "YibaishiwuCom" - __type__ = "account" - __version__ = "0.01" - - __description__ = """115.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - ACCOUNT_INFO_PATTERN = r'var USER_PERMISSION = {(.*?)}' - - - def loadAccountInfo(self, user, req): - #self.relogin(user) - html = req.load("http://115.com/", decode=True) - - m = re.search(self.ACCOUNT_INFO_PATTERN, html, re.S) - premium = True if (m and 'is_vip: 1' in m.group(1)) else False - validuntil = trafficleft = (-1 if m else 0) - return dict({"validuntil": validuntil, "trafficleft": trafficleft, "premium": premium}) - - - def login(self, user, data, req): - html = req.load('http://passport.115.com/?ac=login', post={ - "back": "http://www.115.com/", - "goto": "http://115.com/", - "login[account]": user, - "login[passwd]": data['password'] - }, decode=True) - - if not 'var USER_PERMISSION = {' in html: - self.wrongPassword() diff --git a/pyload/plugin/account/ZeveraCom.py b/pyload/plugin/account/ZeveraCom.py deleted file mode 100644 index 2eee62ac1..000000000 --- a/pyload/plugin/account/ZeveraCom.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- - -from time import mktime, strptime - -from pyload.plugin.Account import Account - - -class ZeveraCom(Account): - __name__ = "ZeveraCom" - __type__ = "account" - __version__ = "0.21" - - __description__ = """Zevera.com account plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - def loadAccountInfo(self, user, req): - data = self.getAPIData(req) - if data == "No traffic": - account_info = {"trafficleft": 0, "validuntil": 0, "premium": False} - else: - account_info = { - "trafficleft": int(data['availabletodaytraffic']) * 1024, - "validuntil": mktime(strptime(data['endsubscriptiondate'], "%Y/%m/%d %H:%M:%S")), - "premium": True - } - return account_info - - - def login(self, user, data, req): - self.loginname = user - self.password = data['password'] - if self.getAPIData(req) == "No traffic": - self.wrongPassword() - - - def getAPIData(self, req, just_header=False, **kwargs): - get_data = { - 'cmd': 'accountinfo', - 'login': self.loginname, - 'pass': self.password - } - get_data.update(kwargs) - - res = req.load("http://www.zevera.com/jDownloader.ashx", get=get_data, - decode=True, just_header=just_header) - self.logDebug(res) - - if ':' in res: - if not just_header: - res = res.replace(',', '\n') - return dict((y.strip().lower(), z.strip()) for (y, z) in - [x.split(':', 1) for x in res.splitlines() if ':' in x]) - else: - return res diff --git a/pyload/plugin/account/__init__.py b/pyload/plugin/account/__init__.py deleted file mode 100644 index 40a96afc6..000000000 --- a/pyload/plugin/account/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- |