summaryrefslogtreecommitdiffstats
path: root/pyload/plugins/account
diff options
context:
space:
mode:
Diffstat (limited to 'pyload/plugins/account')
-rw-r--r--pyload/plugins/account/AlldebridCom.py8
-rw-r--r--pyload/plugins/account/BayfilesCom.py30
-rw-r--r--pyload/plugins/account/BillionuploadsCom.py15
-rw-r--r--pyload/plugins/account/BitshareCom.py8
-rw-r--r--pyload/plugins/account/CramitIn.py15
-rw-r--r--pyload/plugins/account/CzshareCom.py12
-rw-r--r--pyload/plugins/account/DebridItaliaCom.py24
-rw-r--r--pyload/plugins/account/DepositfilesCom.py22
-rw-r--r--pyload/plugins/account/DevhostSt.py18
-rw-r--r--pyload/plugins/account/DevhostStFolder.py22
-rw-r--r--pyload/plugins/account/DropboxCom.py15
-rw-r--r--pyload/plugins/account/EasybytezCom.py52
-rw-r--r--pyload/plugins/account/EuroshareEu.py9
-rw-r--r--pyload/plugins/account/FastixRu.py8
-rw-r--r--pyload/plugins/account/FastshareCz.py43
-rw-r--r--pyload/plugins/account/File4safeCom.py16
-rw-r--r--pyload/plugins/account/FileParadoxIn.py15
-rw-r--r--pyload/plugins/account/FilecloudIo.py16
-rw-r--r--pyload/plugins/account/FilefactoryCom.py10
-rw-r--r--pyload/plugins/account/FilejungleCom.py10
-rw-r--r--pyload/plugins/account/FileomCom.py15
-rw-r--r--pyload/plugins/account/FilerNet.py17
-rw-r--r--pyload/plugins/account/FilerioCom.py15
-rw-r--r--pyload/plugins/account/FilesMailRu.py8
-rw-r--r--pyload/plugins/account/FileserveCom.py8
-rw-r--r--pyload/plugins/account/FourSharedCom.py29
-rw-r--r--pyload/plugins/account/FreakshareCom.py23
-rw-r--r--pyload/plugins/account/FreeWayMe.py10
-rw-r--r--pyload/plugins/account/FshareVn.py13
-rw-r--r--pyload/plugins/account/Ftp.py7
-rw-r--r--pyload/plugins/account/HellshareCz.py12
-rw-r--r--pyload/plugins/account/Http.py7
-rw-r--r--pyload/plugins/account/HugefilesNet.py15
-rw-r--r--pyload/plugins/account/HundredEightyUploadCom.py15
-rw-r--r--pyload/plugins/account/KingfilesNet.py48
-rw-r--r--pyload/plugins/account/LetitbitNet.py10
-rw-r--r--pyload/plugins/account/LinksnappyCom.py8
-rw-r--r--pyload/plugins/account/LomafileCom.py15
-rw-r--r--pyload/plugins/account/MegaDebridEu.py20
-rw-r--r--pyload/plugins/account/MegasharesCom.py8
-rw-r--r--pyload/plugins/account/MovReelCom.py15
-rw-r--r--pyload/plugins/account/MultishareCz.py20
-rw-r--r--pyload/plugins/account/MyfastfileCom.py13
-rw-r--r--pyload/plugins/account/NetloadIn.py12
-rw-r--r--pyload/plugins/account/NosuploadCom.py15
-rw-r--r--pyload/plugins/account/NovafileCom.py15
-rw-r--r--pyload/plugins/account/OboomCom.py13
-rw-r--r--pyload/plugins/account/OneFichierCom.py49
-rw-r--r--pyload/plugins/account/OverLoadMe.py8
-rw-r--r--pyload/plugins/account/PremiumTo.py14
-rw-r--r--pyload/plugins/account/PremiumizeMe.py11
-rw-r--r--pyload/plugins/account/QuickshareCz.py21
-rw-r--r--pyload/plugins/account/RPNetBiz.py27
-rw-r--r--pyload/plugins/account/RapidgatorNet.py10
-rw-r--r--pyload/plugins/account/RapidshareCom.py26
-rw-r--r--pyload/plugins/account/RarefileNet.py15
-rw-r--r--pyload/plugins/account/RealdebridCom.py10
-rw-r--r--pyload/plugins/account/RehostTo.py8
-rw-r--r--pyload/plugins/account/RyushareCom.py17
-rw-r--r--pyload/plugins/account/SecureUploadEu.py15
-rw-r--r--pyload/plugins/account/SendmywayCom.py15
-rw-r--r--pyload/plugins/account/ShareRapidCom.py53
-rw-r--r--pyload/plugins/account/ShareonlineBiz.py23
-rw-r--r--pyload/plugins/account/SimplyPremiumCom.py14
-rw-r--r--pyload/plugins/account/SimplydebridCom.py16
-rw-r--r--pyload/plugins/account/StahnuTo.py15
-rw-r--r--pyload/plugins/account/StreamcloudEu.py15
-rw-r--r--pyload/plugins/account/TurbobitNet.py12
-rw-r--r--pyload/plugins/account/TusfilesNet.py52
-rw-r--r--pyload/plugins/account/UlozTo.py14
-rw-r--r--pyload/plugins/account/UnrestrictLi.py14
-rw-r--r--pyload/plugins/account/UploadedTo.py58
-rw-r--r--pyload/plugins/account/UploadheroCom.py10
-rw-r--r--pyload/plugins/account/UploadingCom.py62
-rw-r--r--pyload/plugins/account/UptoboxCom.py17
-rw-r--r--pyload/plugins/account/VidPlayNet.py15
-rw-r--r--pyload/plugins/account/YibaishiwuCom.py8
-rw-r--r--pyload/plugins/account/ZeveraCom.py21
78 files changed, 744 insertions, 695 deletions
diff --git a/pyload/plugins/account/AlldebridCom.py b/pyload/plugins/account/AlldebridCom.py
index 7183b8e6e..daf844a40 100644
--- a/pyload/plugins/account/AlldebridCom.py
+++ b/pyload/plugins/account/AlldebridCom.py
@@ -12,12 +12,13 @@ from pyload.plugins.base.Account import Account
class AlldebridCom(Account):
- __name__ = "AlldebridCom"
- __type__ = "account"
+ __name__ = "AlldebridCom"
+ __type__ = "account"
__version__ = "0.22"
__description__ = """AllDebrid.com account plugin"""
- __authors__ = [("Andy Voigt", "spamsales@online.de")]
+ __license__ = "GPLv3"
+ __authors__ = [("Andy Voigt", "spamsales@online.de")]
def loadAccountInfo(self, user, req):
@@ -43,6 +44,7 @@ class AlldebridCom(Account):
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)
diff --git a/pyload/plugins/account/BayfilesCom.py b/pyload/plugins/account/BayfilesCom.py
index af4f791cf..85dba44fb 100644
--- a/pyload/plugins/account/BayfilesCom.py
+++ b/pyload/plugins/account/BayfilesCom.py
@@ -7,29 +7,31 @@ from pyload.utils import json_loads
class BayfilesCom(Account):
- __name__ = "BayfilesCom"
- __type__ = "account"
+ __name__ = "BayfilesCom"
+ __type__ = "account"
__version__ = "0.03"
__description__ = """Bayfiles.com account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
+ __license__ = "GPLv3"
+ __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
def loadAccountInfo(self, user, req):
- for _ in xrange(2):
- response = json_loads(req.load("http://api.bayfiles.com/v1/account/info"))
- self.logDebug(response)
- if not response['error']:
+ 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(response['error'])
+ self.logWarning(res['error'])
self.relogin(user)
- return {"premium": bool(response['premium']), "trafficleft": -1,
- "validuntil": response['expires'] if response['expires'] >= int(time()) else -1}
+ return {"premium": bool(res['premium']), "trafficleft": -1,
+ "validuntil": res['expires'] if res['expires'] >= int(time()) else -1}
+
def login(self, user, data, req):
- response = json_loads(req.load("http://api.bayfiles.com/v1/account/login/%s/%s" % (user, data['password'])))
- self.logDebug(response)
- if response['error']:
- self.logError(response['error'])
+ 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/plugins/account/BillionuploadsCom.py b/pyload/plugins/account/BillionuploadsCom.py
index a8ad94bd3..11af36591 100644
--- a/pyload/plugins/account/BillionuploadsCom.py
+++ b/pyload/plugins/account/BillionuploadsCom.py
@@ -1,15 +1,16 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class BillionuploadsCom(XFSPAccount):
- __name__ = "BillionuploadsCom"
- __type__ = "account"
- __version__ = "0.01"
+class BillionuploadsCom(XFSAccount):
+ __name__ = "BillionuploadsCom"
+ __type__ = "account"
+ __version__ = "0.02"
__description__ = """Billionuploads.com account plugin"""
- __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
+ __license__ = "GPLv3"
+ __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
- HOSTER_URL = "http://www.billionuploads.com/"
+ HOSTER_DOMAIN = "billionuploads.com"
diff --git a/pyload/plugins/account/BitshareCom.py b/pyload/plugins/account/BitshareCom.py
index a91c25982..d35f3ce29 100644
--- a/pyload/plugins/account/BitshareCom.py
+++ b/pyload/plugins/account/BitshareCom.py
@@ -4,12 +4,13 @@ from pyload.plugins.base.Account import Account
class BitshareCom(Account):
- __name__ = "BitshareCom"
- __type__ = "account"
+ __name__ = "BitshareCom"
+ __type__ = "account"
__version__ = "0.12"
__description__ = """Bitshare account plugin"""
- __authors__ = [("Paul King", None)]
+ __license__ = "GPLv3"
+ __authors__ = [("Paul King", None)]
def loadAccountInfo(self, user, req):
@@ -23,6 +24,7 @@ class BitshareCom(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)
diff --git a/pyload/plugins/account/CramitIn.py b/pyload/plugins/account/CramitIn.py
index 24acd2488..a9e2274a2 100644
--- a/pyload/plugins/account/CramitIn.py
+++ b/pyload/plugins/account/CramitIn.py
@@ -1,15 +1,16 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class CramitIn(XFSPAccount):
- __name__ = "CramitIn"
- __type__ = "account"
- __version__ = "0.02"
+class CramitIn(XFSAccount):
+ __name__ = "CramitIn"
+ __type__ = "account"
+ __version__ = "0.03"
__description__ = """Cramit.in account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
+ __license__ = "GPLv3"
+ __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
- HOSTER_URL = "http://www.cramit.in/"
+ HOSTER_DOMAIN = "cramit.in"
diff --git a/pyload/plugins/account/CzshareCom.py b/pyload/plugins/account/CzshareCom.py
index dc8d513a5..54163c425 100644
--- a/pyload/plugins/account/CzshareCom.py
+++ b/pyload/plugins/account/CzshareCom.py
@@ -7,16 +7,17 @@ from pyload.plugins.base.Account import Account
class CzshareCom(Account):
- __name__ = "CzshareCom"
- __type__ = "account"
+ __name__ = "CzshareCom"
+ __type__ = "account"
__version__ = "0.14"
__description__ = """Czshare.com account plugin, now Sdilej.cz"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz"),
- ("stickell", "l.stickell@yahoo.it")]
+ __license__ = "GPLv3"
+ __authors__ = [("zoidberg", "zoidberg@mujmail.cz"),
+ ("stickell", "l.stickell@yahoo.it")]
- CREDIT_LEFT_PATTERN = r'<tr class="active">\s*<td>([0-9 ,]+) (KiB|MiB|GiB)</td>\s*<td>([^<]*)</td>\s*</tr>'
+ CREDIT_LEFT_PATTERN = r'<tr class="active">\s*<td>([\d ,]+) (KiB|MiB|GiB)</td>\s*<td>([^<]*)</td>\s*</tr>'
def loadAccountInfo(self, user, req):
@@ -31,6 +32,7 @@ class CzshareCom(Account):
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",
diff --git a/pyload/plugins/account/DebridItaliaCom.py b/pyload/plugins/account/DebridItaliaCom.py
index 850a9e60e..cdeb0a9f1 100644
--- a/pyload/plugins/account/DebridItaliaCom.py
+++ b/pyload/plugins/account/DebridItaliaCom.py
@@ -7,30 +7,34 @@ from pyload.plugins.base.Account import Account
class DebridItaliaCom(Account):
- __name__ = "DebridItaliaCom"
- __type__ = "account"
+ __name__ = "DebridItaliaCom"
+ __type__ = "account"
__version__ = "0.1"
__description__ = """Debriditalia.com account plugin"""
- __authors__ = [("stickell", "l.stickell@yahoo.it")]
+ __license__ = "GPLv3"
+ __authors__ = [("stickell", "l.stickell@yahoo.it")]
- WALID_UNTIL_PATTERN = r"Premium valid till: (?P<D>[^|]+) \|"
+ WALID_UNTIL_PATTERN = r'Premium valid till: (?P<D>[^|]+) \|'
def loadAccountInfo(self, user, req):
- if 'Account premium not activated' in self.html:
+ html = req.load("http://debriditalia.com/")
+
+ if 'Account premium not activated' in html:
return {"premium": False, "validuntil": None, "trafficleft": None}
- m = re.search(self.WALID_UNTIL_PATTERN, self.html)
+ m = re.search(self.WALID_UNTIL_PATTERN, html)
if m:
validuntil = int(time.mktime(time.strptime(m.group('D'), "%d/%m/%Y %H:%M")))
return {"premium": True, "validuntil": validuntil, "trafficleft": -1}
else:
- self.logError("Unable to retrieve account information - Plugin may be out of date")
+ self.logError(_("Unable to retrieve account information"))
+
def login(self, user, data, req):
- self.html = req.load("http://debriditalia.com/login.php",
- get={"u": user, "p": data['password']})
- if 'NO' in self.html:
+ html = req.load("http://debriditalia.com/login.php",
+ get={"u": user, "p": data['password']})
+ if 'NO' in html:
self.wrongPassword()
diff --git a/pyload/plugins/account/DepositfilesCom.py b/pyload/plugins/account/DepositfilesCom.py
index 8d75c6344..47d720322 100644
--- a/pyload/plugins/account/DepositfilesCom.py
+++ b/pyload/plugins/account/DepositfilesCom.py
@@ -8,26 +8,28 @@ from pyload.plugins.base.Account import Account
class DepositfilesCom(Account):
- __name__ = "DepositfilesCom"
- __type__ = "account"
+ __name__ = "DepositfilesCom"
+ __type__ = "account"
__version__ = "0.3"
__description__ = """Depositfiles.com account plugin"""
- __authors__ = [("mkaay", "mkaay@mkaay.de"),
- ("stickell", "l.stickell@yahoo.it"),
- ("Walter Purcaro", "vuolter@gmail.com")]
+ __license__ = "GPLv3"
+ __authors__ = [("mkaay", "mkaay@mkaay.de"),
+ ("stickell", "l.stickell@yahoo.it"),
+ ("Walter Purcaro", "vuolter@gmail.com")]
def loadAccountInfo(self, user, req):
- src = req.load("https://dfiles.eu/de/gold/")
- validuntil = re.search(r"Sie haben Gold Zugang bis: <b>(.*?)</b></div>", src).group(1)
+ 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):
- src = 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 src:
+ 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/plugins/account/DevhostSt.py b/pyload/plugins/account/DevhostSt.py
index 4d615cc68..07eaf339a 100644
--- a/pyload/plugins/account/DevhostSt.py
+++ b/pyload/plugins/account/DevhostSt.py
@@ -9,18 +9,19 @@ from pyload.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class DevhostSt(SimpleHoster):
- __name__ = "DevhostSt"
- __type__ = "hoster"
- __version__ = "0.02"
+ __name__ = "DevhostSt"
+ __type__ = "hoster"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?d-h\.st/(?!users/)\w{3}'
__description__ = """d-h.st hoster plugin"""
- __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de")]
+ __license__ = "GPLv3"
+ __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de")]
- FILE_NAME_PATTERN = r'>Filename:</span> <div title="(?P<N>.+?)"'
- FILE_SIZE_PATTERN = r'>Size:</span> (?P<S>[\d.]+) (?P<U>\w+)'
+ NAME_PATTERN = r'>Filename:</span> <div title="(?P<N>.+?)"'
+ SIZE_PATTERN = r'>Size:</span> (?P<S>[\d.,]+) (?P<U>[\w^_]+)'
OFFLINE_PATTERN = r'>File Not Found<'
LINK_PATTERN = r'id="downloadfile" href="(.+?)"'
@@ -34,15 +35,14 @@ class DevhostSt(SimpleHoster):
def handleFree(self):
m = re.search(self.LINK_PATTERN, self.html)
if m is None:
- self.parseError("Download link not found")
+ self.error(_("Download link not found"))
dl_url = m.group(1)
- self.logDebug("Download URL = " + dl_url)
self.download(dl_url, disposition=True)
check = self.checkDownload({'html': re.compile("html")})
if check == "html":
- self.parseError("Downloaded file is an html file")
+ self.error(_("Downloaded file is an html page"))
getInfo = create_getInfo(DevhostSt)
diff --git a/pyload/plugins/account/DevhostStFolder.py b/pyload/plugins/account/DevhostStFolder.py
index 59d293182..51142fde9 100644
--- a/pyload/plugins/account/DevhostStFolder.py
+++ b/pyload/plugins/account/DevhostStFolder.py
@@ -11,22 +11,28 @@ from pyload.plugins.internal.SimpleCrypter import SimpleCrypter
class DevhostStFolder(SimpleCrypter):
- __name__ = "DevhostStFolder"
- __type__ = "crypter"
- __version__ = "0.02"
+ __name__ = "DevhostStFolder"
+ __type__ = "crypter"
+ __version__ = "0.03"
__pattern__ = r'http://(?:www\.)?d-h\.st/users/(?P<USER>\w+)(/\?fld_id=(?P<ID>\d+))?'
+ __config__ = [("use_subfolder", "bool", "Save package to subfolder", True),
+ ("subfolder_per_package", "bool", "Create a subfolder for each package", True)]
__description__ = """d-h.st folder decrypter plugin"""
- __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de"),
- ("Walter Purcaro", "vuolter@gmail.com")]
+ __license__ = "GPLv3"
+ __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de"),
+ ("Walter Purcaro", "vuolter@gmail.com")]
LINK_PATTERN = r'(?:/> |;">)<a href="(.+?)"(?!>Back to \w+<)'
OFFLINE_PATTERN = r'"/cHP">test\.png<'
- def getPackageNameAndFolder(self):
+ def getFileInfo(self):
+ if re.search(self.OFFLINE_PATTERN, self.html):
+ self.offline()
+
try:
id = re.match(self.__pattern__, self.pyfile.url).group('ID')
if id == "0":
@@ -42,10 +48,10 @@ class DevhostStFolder(SimpleCrypter):
name = folder = m.group(1)
except Exception, e:
- self.logDebug(str(e))
+ self.logDebug(e)
name = folder = re.match(self.__pattern__, self.pyfile.url).group('USER')
- return name, folder
+ return {'name': name, 'folder': folder}
def getLinks(self):
diff --git a/pyload/plugins/account/DropboxCom.py b/pyload/plugins/account/DropboxCom.py
index 639e2be9c..03e654e89 100644
--- a/pyload/plugins/account/DropboxCom.py
+++ b/pyload/plugins/account/DropboxCom.py
@@ -6,18 +6,19 @@ from pyload.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class DropboxCom(SimpleHoster):
- __name__ = "DropboxCom"
- __type__ = "hoster"
- __version__ = "0.02"
+ __name__ = "DropboxCom"
+ __type__ = "hoster"
+ __version__ = "0.03"
__pattern__ = r'https?://(?:www\.)?dropbox\.com/.+'
__description__ = """Dropbox.com hoster plugin"""
- __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de")]
+ __license__ = "GPLv3"
+ __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de")]
- FILE_NAME_PATTERN = r'<title>Dropbox - (?P<N>.+?)<'
- FILE_SIZE_PATTERN = r'&nbsp;&middot;&nbsp; (?P<S>[\d,]+) (?P<U>\w+)'
+ NAME_PATTERN = r'<title>Dropbox - (?P<N>.+?)<'
+ SIZE_PATTERN = r'&nbsp;&middot;&nbsp; (?P<S>[\d.,]+) (?P<U>[\w^_]+)'
OFFLINE_PATTERN = r'<title>Dropbox - (404|Shared link error)<'
@@ -35,7 +36,7 @@ class DropboxCom(SimpleHoster):
check = self.checkDownload({'html': re.compile("html")})
if check == "html":
- self.parseError("Downloaded file is an html file")
+ self.error(_("Downloaded file is an html page"))
getInfo = create_getInfo(DropboxCom)
diff --git a/pyload/plugins/account/EasybytezCom.py b/pyload/plugins/account/EasybytezCom.py
index bb4948811..f368840ef 100644
--- a/pyload/plugins/account/EasybytezCom.py
+++ b/pyload/plugins/account/EasybytezCom.py
@@ -4,53 +4,19 @@ import re
from time import mktime, strptime, gmtime
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
from pyload.utils import parseFileSize
-class EasybytezCom(XFSPAccount):
- __name__ = "EasybytezCom"
- __type__ = "account"
- __version__ = "0.07"
+class EasybytezCom(XFSAccount):
+ __name__ = "EasybytezCom"
+ __type__ = "account"
+ __version__ = "0.10"
__description__ = """EasyBytez.com account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz"),
- ("guidobelix", "guidobelix@hotmail.it")]
+ __license__ = "GPLv3"
+ __authors__ = [("zoidberg", "zoidberg@mujmail.cz"),
+ ("guidobelix", "guidobelix@hotmail.it")]
- HOSTER_URL = "http://www.easybytez.com/"
-
-
- def loadAccountInfo(self, user, req):
- html = req.load(self.HOSTER_URL, get={'op': "my_account"}, decode=True)
-
- validuntil = None
- trafficleft = None
- premium = False
-
- 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 %B %Y"))
- except Exception, e:
- self.logError(e)
-
- if validuntil > mktime(gmtime()):
- premium = True
- trafficleft = -1
- else:
- premium = False
- validuntil = -1
-
- m = re.search(self.TRAFFIC_LEFT_PATTERN, html)
- if m:
- trafficleft = m.group(1)
- if "Unlimited" in trafficleft:
- trafficleft = -1
- else:
- trafficleft = parseFileSize(trafficleft) / 1024
-
- return {"validuntil": validuntil, "trafficleft": trafficleft, "premium": premium}
+ HOSTER_DOMAIN = "easybytez.com"
diff --git a/pyload/plugins/account/EuroshareEu.py b/pyload/plugins/account/EuroshareEu.py
index c1103afba..e3ed51464 100644
--- a/pyload/plugins/account/EuroshareEu.py
+++ b/pyload/plugins/account/EuroshareEu.py
@@ -7,12 +7,13 @@ from pyload.plugins.base.Account import Account
class EuroshareEu(Account):
- __name__ = "EuroshareEu"
- __type__ = "account"
+ __name__ = "EuroshareEu"
+ __type__ = "account"
__version__ = "0.01"
__description__ = """Euroshare.eu account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
+ __license__ = "GPLv3"
+ __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
def loadAccountInfo(self, user, req):
@@ -28,8 +29,8 @@ class EuroshareEu(Account):
return {"validuntil": validuntil, "trafficleft": -1, "premium": premium}
- def login(self, user, data, req):
+ def login(self, user, data, req):
html = req.load('http://euroshare.eu/customer-zone/login/', post={
"trvale": "1",
"login": user,
diff --git a/pyload/plugins/account/FastixRu.py b/pyload/plugins/account/FastixRu.py
index 2c7353920..6dacb8b11 100644
--- a/pyload/plugins/account/FastixRu.py
+++ b/pyload/plugins/account/FastixRu.py
@@ -5,12 +5,13 @@ from pyload.utils import json_loads
class FastixRu(Account):
- __name__ = "FastixRu"
- __type__ = "account"
+ __name__ = "FastixRu"
+ __type__ = "account"
__version__ = "0.02"
__description__ = """Fastix account plugin"""
- __authors__ = [("Massimo Rosamilia", "max@spiritix.eu")]
+ __license__ = "GPLv3"
+ __authors__ = [("Massimo Rosamilia", "max@spiritix.eu")]
def loadAccountInfo(self, user, req):
@@ -26,6 +27,7 @@ class FastixRu(Account):
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/?sub=get_apikey&email=%s&password=%s" % (user, data['password']))
api = json_loads(page)
diff --git a/pyload/plugins/account/FastshareCz.py b/pyload/plugins/account/FastshareCz.py
index d4ef08c2b..1a7dff4b1 100644
--- a/pyload/plugins/account/FastshareCz.py
+++ b/pyload/plugins/account/FastshareCz.py
@@ -1,42 +1,53 @@
# -*- coding: utf-8 -*-
import re
+
from pyload.plugins.base.Account import Account
-from pyload.utils import parseFileSize
+from module.utils import parseFileSize
class FastshareCz(Account):
- __name__ = "FastshareCz"
- __type__ = "account"
- __version__ = "0.03"
+ __name__ = "FastshareCz"
+ __type__ = "account"
+ __version__ = "0.05"
__description__ = """Fastshare.cz account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz"),
- ("stickell", "l.stickell@yahoo.it")]
+ __license__ = "GPLv3"
+ __authors__ = [("zoidberg", "zoidberg@mujmail.cz"),
+ ("stickell", "l.stickell@yahoo.it")]
- CREDIT_PATTERN = r'(?:Kredit|Credit)\s*</td>\s*<td[^>]*>([\d. \w]+)&nbsp;'
+ 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 = parseFileSize(m.group(1)) / 1024
- premium = True if trafficleft else False
+ trafficleft = self.parseTraffic(m.group(1))
+
+ if trafficleft:
+ premium = True
+ validuntil = -1
else:
- trafficleft = None
premium = False
- return {"validuntil": -1, "trafficleft": trafficleft, "premium": premium}
+ 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={
- "heslo": data['password'],
- "login": user
- }, decode=True)
- if u'>Špatné uživatelské jméno nebo heslo.<' in html:
+ 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/plugins/account/File4safeCom.py b/pyload/plugins/account/File4safeCom.py
index ffc2fc26d..20053d895 100644
--- a/pyload/plugins/account/File4safeCom.py
+++ b/pyload/plugins/account/File4safeCom.py
@@ -1,18 +1,18 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class File4safeCom(XFSPAccount):
- __name__ = "File4safeCom"
- __type__ = "account"
- __version__ = "0.02"
+class File4safeCom(XFSAccount):
+ __name__ = "File4safeCom"
+ __type__ = "account"
+ __version__ = "0.04"
__description__ = """File4safe.com account plugin"""
- __authors__ = [("stickell", "l.stickell@yahoo.it")]
+ __license__ = "GPLv3"
+ __authors__ = [("stickell", "l.stickell@yahoo.it")]
- HOSTER_URL = "http://www.file4safe.com/"
+ HOSTER_DOMAIN = "file4safe.com"
LOGIN_FAIL_PATTERN = r'input_login'
- PREMIUM_PATTERN = r'Extend Premium'
diff --git a/pyload/plugins/account/FileParadoxIn.py b/pyload/plugins/account/FileParadoxIn.py
index f36456da0..c12d99d6a 100644
--- a/pyload/plugins/account/FileParadoxIn.py
+++ b/pyload/plugins/account/FileParadoxIn.py
@@ -1,15 +1,16 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class FileParadoxIn(XFSPAccount):
- __name__ = "FileParadoxIn"
- __type__ = "account"
- __version__ = "0.01"
+class FileParadoxIn(XFSAccount):
+ __name__ = "FileParadoxIn"
+ __type__ = "account"
+ __version__ = "0.02"
__description__ = """FileParadox.in account plugin"""
- __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
+ __license__ = "GPLv3"
+ __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
- HOSTER_URL = "http://www.fileparadox.in/"
+ HOSTER_DOMAIN = "fileparadox.in"
diff --git a/pyload/plugins/account/FilecloudIo.py b/pyload/plugins/account/FilecloudIo.py
index 49c74b93d..0d5126fc0 100644
--- a/pyload/plugins/account/FilecloudIo.py
+++ b/pyload/plugins/account/FilecloudIo.py
@@ -5,25 +5,26 @@ from pyload.utils import json_loads
class FilecloudIo(Account):
- __name__ = "FilecloudIo"
- __type__ = "account"
+ __name__ = "FilecloudIo"
+ __type__ = "account"
__version__ = "0.02"
__description__ = """FilecloudIo account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz"),
- ("stickell", "l.stickell@yahoo.it")]
+ __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 _ in xrange(5):
+ 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")
+ self.logError(_("Wrong username or password"))
return {"valid": False, "premium": False}
else:
return {"premium": False}
@@ -39,8 +40,9 @@ class FilecloudIo(Account):
else:
return {"premium": False}
+
def login(self, user, data, req):
- req.cj.setCookie("secure.filecloud.io", "lang", "en")
+ req.cj.setCookie(".secure.filecloud.io", "lang", "en")
html = req.load('https://secure.filecloud.io/user-login.html')
if not hasattr(self, "form_data"):
diff --git a/pyload/plugins/account/FilefactoryCom.py b/pyload/plugins/account/FilefactoryCom.py
index cf42f2666..7eedb59a1 100644
--- a/pyload/plugins/account/FilefactoryCom.py
+++ b/pyload/plugins/account/FilefactoryCom.py
@@ -9,13 +9,14 @@ from pyload.plugins.base.Account import Account
class FilefactoryCom(Account):
- __name__ = "FilefactoryCom"
- __type__ = "account"
+ __name__ = "FilefactoryCom"
+ __type__ = "account"
__version__ = "0.14"
__description__ = """Filefactory.com account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz"),
- ("stickell", "l.stickell@yahoo.it")]
+ __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>'
@@ -35,6 +36,7 @@ class FilefactoryCom(Account):
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")
diff --git a/pyload/plugins/account/FilejungleCom.py b/pyload/plugins/account/FilejungleCom.py
index d63b0c273..c8b7bb655 100644
--- a/pyload/plugins/account/FilejungleCom.py
+++ b/pyload/plugins/account/FilejungleCom.py
@@ -7,18 +7,19 @@ from pyload.plugins.base.Account import Account
class FilejungleCom(Account):
- __name__ = "FilejungleCom"
- __type__ = "account"
+ __name__ = "FilejungleCom"
+ __type__ = "account"
__version__ = "0.11"
__description__ = """Filejungle.com account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
+ __license__ = "GPLv3"
+ __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
login_timeout = 60
URL = "http://filejungle.com/"
- TRAFFIC_LEFT_PATTERN = r'"/extend_premium\.php">Until (\d+ [A-Za-z]+ \d+)<br'
+ 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">'
@@ -34,6 +35,7 @@ class FilejungleCom(Account):
return {"premium": premium, "trafficleft": -1, "validuntil": validuntil}
+
def login(self, user, data, req):
html = req.load(self.URL + "login.php", post={
"loginUserName": user,
diff --git a/pyload/plugins/account/FileomCom.py b/pyload/plugins/account/FileomCom.py
index 3ca32416d..7c743f56a 100644
--- a/pyload/plugins/account/FileomCom.py
+++ b/pyload/plugins/account/FileomCom.py
@@ -1,15 +1,16 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class FileomCom(XFSPAccount):
- __name__ = "FileomCom"
- __type__ = "account"
- __version__ = "0.01"
+class FileomCom(XFSAccount):
+ __name__ = "FileomCom"
+ __type__ = "account"
+ __version__ = "0.02"
__description__ = """Fileom.com account plugin"""
- __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
+ __license__ = "GPLv3"
+ __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
- HOSTER_URL = "http://www.fileom.com/"
+ HOSTER_DOMAIN = "fileom.com"
diff --git a/pyload/plugins/account/FilerNet.py b/pyload/plugins/account/FilerNet.py
index 1f08d2c1a..193dd6eb3 100644
--- a/pyload/plugins/account/FilerNet.py
+++ b/pyload/plugins/account/FilerNet.py
@@ -4,20 +4,20 @@ import re
import time
from pyload.plugins.base.Account import Account
-from pyload.utils import parseFileSize
class FilerNet(Account):
- __name__ = "FilerNet"
- __type__ = "account"
- __version__ = "0.01"
+ __name__ = "FilerNet"
+ __type__ = "account"
+ __version__ = "0.02"
__description__ = """Filer.net account plugin"""
- __authors__ = [("stickell", "l.stickell@yahoo.it")]
+ __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>"
+ 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'
@@ -33,12 +33,13 @@ class FilerNet(Account):
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 = parseFileSize(traffic.group(1)) / 1024
+ trafficleft = self.parseTraffic(traffic.group(1))
return {"premium": True, "validuntil": validuntil, "trafficleft": trafficleft}
else:
- self.logError("Unable to retrieve account information - Plugin may be out of date")
+ 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)
diff --git a/pyload/plugins/account/FilerioCom.py b/pyload/plugins/account/FilerioCom.py
index badc14a56..4c6755293 100644
--- a/pyload/plugins/account/FilerioCom.py
+++ b/pyload/plugins/account/FilerioCom.py
@@ -1,15 +1,16 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class FilerioCom(XFSPAccount):
- __name__ = "FilerioCom"
- __type__ = "account"
- __version__ = "0.02"
+class FilerioCom(XFSAccount):
+ __name__ = "FilerioCom"
+ __type__ = "account"
+ __version__ = "0.03"
__description__ = """FileRio.in account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
+ __license__ = "GPLv3"
+ __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
- HOSTER_URL = "http://www.filerio.in/"
+ HOSTER_DOMAIN = "filerio.in"
diff --git a/pyload/plugins/account/FilesMailRu.py b/pyload/plugins/account/FilesMailRu.py
index f258ead2f..c8d8d9270 100644
--- a/pyload/plugins/account/FilesMailRu.py
+++ b/pyload/plugins/account/FilesMailRu.py
@@ -4,17 +4,19 @@ from pyload.plugins.base.Account import Account
class FilesMailRu(Account):
- __name__ = "FilesMailRu"
- __type__ = "account"
+ __name__ = "FilesMailRu"
+ __type__ = "account"
__version__ = "0.1"
__description__ = """Filesmail.ru account plugin"""
- __authors__ = [("RaNaN", "RaNaN@pyload.org")]
+ __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("@")
diff --git a/pyload/plugins/account/FileserveCom.py b/pyload/plugins/account/FileserveCom.py
index dd5132734..773fc9117 100644
--- a/pyload/plugins/account/FileserveCom.py
+++ b/pyload/plugins/account/FileserveCom.py
@@ -7,12 +7,13 @@ from pyload.utils import json_loads
class FileserveCom(Account):
- __name__ = "FileserveCom"
- __type__ = "account"
+ __name__ = "FileserveCom"
+ __type__ = "account"
__version__ = "0.2"
__description__ = """Fileserve.com account plugin"""
- __authors__ = [("mkaay", "mkaay@mkaay.de")]
+ __license__ = "GPLv3"
+ __authors__ = [("mkaay", "mkaay@mkaay.de")]
def loadAccountInfo(self, user, req):
@@ -28,6 +29,7 @@ class FileserveCom(Account):
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"})
diff --git a/pyload/plugins/account/FourSharedCom.py b/pyload/plugins/account/FourSharedCom.py
index 6cc69a88d..766998ccc 100644
--- a/pyload/plugins/account/FourSharedCom.py
+++ b/pyload/plugins/account/FourSharedCom.py
@@ -5,28 +5,29 @@ from pyload.utils import json_loads
class FourSharedCom(Account):
- __name__ = "FourSharedCom"
- __type__ = "account"
+ __name__ = "FourSharedCom"
+ __type__ = "account"
__version__ = "0.03"
__description__ = """FourShared.com account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz"),
- ("stickell", "l.stickell@yahoo.it")]
-
+ __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")
- response = 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 response:
+ 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/plugins/account/FreakshareCom.py b/pyload/plugins/account/FreakshareCom.py
index 85d813e58..742ede902 100644
--- a/pyload/plugins/account/FreakshareCom.py
+++ b/pyload/plugins/account/FreakshareCom.py
@@ -1,38 +1,43 @@
# -*- coding: utf-8 -*-
import re
+
from time import strptime, mktime
from pyload.plugins.base.Account import Account
class FreakshareCom(Account):
- __name__ = "FreakshareCom"
- __type__ = "account"
- __version__ = "0.1"
+ __name__ = "FreakshareCom"
+ __type__ = "account"
+ __version__ = "0.11"
__description__ = """Freakshare.com account plugin"""
- __authors__ = [("RaNaN", "RaNaN@pyload.org")]
+ __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>([0-9 \-:.]+)</b></td>"
- validuntil = re.search(validuntil, page, re.MULTILINE)
+ 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.MULTILINE)
+ 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 "Falsche Logindaten!" in page or "Wrong Username or Password!" in page:
+ if ">Wrong Username or Password" in page:
self.wrongPassword()
diff --git a/pyload/plugins/account/FreeWayMe.py b/pyload/plugins/account/FreeWayMe.py
index 28e5c7b80..2c48d54f4 100644
--- a/pyload/plugins/account/FreeWayMe.py
+++ b/pyload/plugins/account/FreeWayMe.py
@@ -5,12 +5,13 @@ from pyload.utils import json_loads
class FreeWayMe(Account):
- __name__ = "FreeWayMe"
- __type__ = "account"
+ __name__ = "FreeWayMe"
+ __type__ = "account"
__version__ = "0.11"
__description__ = """FreeWayMe account plugin"""
- __authors__ = [("Nicolas Giese", "james@free-way.me")]
+ __license__ = "GPLv3"
+ __authors__ = [("Nicolas Giese", "james@free-way.me")]
def loadAccountInfo(self, user, req):
@@ -31,9 +32,11 @@ class FreeWayMe(Account):
return account_info
+
def getpw(self, user):
return self.accounts[user]['password']
+
def login(self, user, data, req):
status = self.getAccountStatus(user, req)
@@ -41,6 +44,7 @@ class FreeWayMe(Account):
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']})
diff --git a/pyload/plugins/account/FshareVn.py b/pyload/plugins/account/FshareVn.py
index 84130c11b..b449018bc 100644
--- a/pyload/plugins/account/FshareVn.py
+++ b/pyload/plugins/account/FshareVn.py
@@ -8,18 +8,19 @@ from pyload.plugins.base.Account import Account
class FshareVn(Account):
- __name__ = "FshareVn"
- __type__ = "account"
+ __name__ = "FshareVn"
+ __type__ = "account"
__version__ = "0.07"
__description__ = """Fshare.vn account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz"),
- ("stickell", "l.stickell@yahoo.it")]
+ __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[^>]*>([0-9.]+) ([kKMG])B</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>'
@@ -43,6 +44,7 @@ class FshareVn(Account):
return {"validuntil": validuntil, "trafficleft": trafficleft, "premium": premium}
+
def login(self, user, data, req):
req.http.c.setopt(REFERER, "https://www.fshare.vn/login.php")
@@ -55,6 +57,7 @@ class FshareVn(Account):
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/plugins/account/Ftp.py b/pyload/plugins/account/Ftp.py
index 3917b59e8..90a8a8768 100644
--- a/pyload/plugins/account/Ftp.py
+++ b/pyload/plugins/account/Ftp.py
@@ -4,12 +4,13 @@ from pyload.plugins.base.Account import Account
class Ftp(Account):
- __name__ = "Ftp"
- __type__ = "account"
+ __name__ = "Ftp"
+ __type__ = "account"
__version__ = "0.01"
__description__ = """Ftp dummy account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
+ __license__ = "GPLv3"
+ __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
login_timeout = info_threshold = -1 #: Unlimited
diff --git a/pyload/plugins/account/HellshareCz.py b/pyload/plugins/account/HellshareCz.py
index 1d033e9f3..cd02c8462 100644
--- a/pyload/plugins/account/HellshareCz.py
+++ b/pyload/plugins/account/HellshareCz.py
@@ -7,12 +7,13 @@ from pyload.plugins.base.Account import Account
class HellshareCz(Account):
- __name__ = "HellshareCz"
- __type__ = "account"
+ __name__ = "HellshareCz"
+ __type__ = "account"
__version__ = "0.14"
__description__ = """Hellshare.cz account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
+ __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>'
@@ -43,19 +44,20 @@ class HellshareCz(Account):
trafficleft = int(credit) * 1024
validuntil = -1
except Exception, e:
- self.logError("Unable to parse credit info", 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)
+ 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)
diff --git a/pyload/plugins/account/Http.py b/pyload/plugins/account/Http.py
index 798d154e0..3f3d4d66f 100644
--- a/pyload/plugins/account/Http.py
+++ b/pyload/plugins/account/Http.py
@@ -4,12 +4,13 @@ from pyload.plugins.base.Account import Account
class Http(Account):
- __name__ = "Http"
- __type__ = "account"
+ __name__ = "Http"
+ __type__ = "account"
__version__ = "0.01"
__description__ = """Http dummy account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
+ __license__ = "GPLv3"
+ __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
login_timeout = info_threshold = -1 #: Unlimited
diff --git a/pyload/plugins/account/HugefilesNet.py b/pyload/plugins/account/HugefilesNet.py
index d9828e333..5da3bbc37 100644
--- a/pyload/plugins/account/HugefilesNet.py
+++ b/pyload/plugins/account/HugefilesNet.py
@@ -1,15 +1,16 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class HugefilesNet(XFSPAccount):
- __name__ = "HugefilesNet"
- __type__ = "account"
- __version__ = "0.01"
+class HugefilesNet(XFSAccount):
+ __name__ = "HugefilesNet"
+ __type__ = "account"
+ __version__ = "0.02"
__description__ = """Hugefiles.net account plugin"""
- __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
+ __license__ = "GPLv3"
+ __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
- HOSTER_URL = "http://www.hugefiles.net/"
+ HOSTER_DOMAIN = "hugefiles.net"
diff --git a/pyload/plugins/account/HundredEightyUploadCom.py b/pyload/plugins/account/HundredEightyUploadCom.py
index 77768fbef..39f91a8af 100644
--- a/pyload/plugins/account/HundredEightyUploadCom.py
+++ b/pyload/plugins/account/HundredEightyUploadCom.py
@@ -1,15 +1,16 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class HundredEightyUploadCom(XFSPAccount):
- __name__ = "HundredEightyUploadCom"
- __type__ = "account"
- __version__ = "0.01"
+class HundredEightyUploadCom(XFSAccount):
+ __name__ = "HundredEightyUploadCom"
+ __type__ = "account"
+ __version__ = "0.02"
__description__ = """180upload.com account plugin"""
- __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
+ __license__ = "GPLv3"
+ __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
- HOSTER_URL = "http://www.180upload.com/"
+ HOSTER_DOMAIN = "180upload.com"
diff --git a/pyload/plugins/account/KingfilesNet.py b/pyload/plugins/account/KingfilesNet.py
index 1ec0f8d8a..ebd5baec3 100644
--- a/pyload/plugins/account/KingfilesNet.py
+++ b/pyload/plugins/account/KingfilesNet.py
@@ -7,19 +7,20 @@ from pyload.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class KingfilesNet(SimpleHoster):
- __name__ = "KingfilesNet"
- __type__ = "hoster"
- __version__ = "0.01"
+ __name__ = "KingfilesNet"
+ __type__ = "hoster"
+ __version__ = "0.04"
__pattern__ = r'http://(?:www\.)?kingfiles\.net/(?P<ID>\w{12})'
__description__ = """Kingfiles.net hoster plugin"""
- __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de"),
- ("Walter Purcaro", "vuolter@gmail.com")]
+ __license__ = "GPLv3"
+ __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de"),
+ ("Walter Purcaro", "vuolter@gmail.com")]
- FILE_NAME_PATTERN = r'name="fname" value="(?P<N>.+?)">'
- FILE_SIZE_PATTERN = r'>Size: .+?">(?P<S>[\d.]+) (?P<U>\w+)'
+ NAME_PATTERN = r'name="fname" value="(?P<N>.+?)">'
+ SIZE_PATTERN = r'>Size: .+?">(?P<S>[\d.,]+) (?P<U>[\w^_]+)'
OFFLINE_PATTERN = r'>(File Not Found</b><br><br>|File Not Found</h2>)'
@@ -37,31 +38,26 @@ class KingfilesNet(SimpleHoster):
# Click the free user button
post_data = {'op': "download1",
'usr_login': "",
- 'id': file_info['ID'],
+ 'id': self.info['ID'],
'fname': self.pyfile.name,
'referer': "",
'method_free': "+"}
- b = self.load(self.pyfile.url, post=post_data, cookies=True, decode=True)
- solvemedia = SolveMedia(self)
-
- captcha_key = solvemedia.detect_key()
- if captcha_key is None:
- self.parseError("SolveMedia key not found")
+ self.html = self.load(self.pyfile.url, post=post_data, cookies=True, decode=True)
- self.logDebug("captcha_key", captcha_key)
- captcha_challenge, captcha_response = solvemedia.challenge(captcha_key)
+ solvemedia = SolveMedia(self)
+ captcha_challenge, captcha_response = solvemedia.challenge()
# Make the downloadlink appear and load the file
- m = re.search(self.RAND_ID_PATTERN, b)
+ m = re.search(self.RAND_ID_PATTERN, self.html)
if m is None:
- self.parseError("Random key not found")
+ self.error(_("Random key not found"))
rand = m.group(1)
- self.logDebug("rand", rand)
+ self.logDebug("rand = ", rand)
post_data = {'op': "download2",
- 'id': file_id,
+ 'id': self.info['ID'],
'rand': rand,
'referer': self.pyfile.url,
'method_free': "+",
@@ -69,18 +65,18 @@ class KingfilesNet(SimpleHoster):
'adcopy_response': captcha_response,
'adcopy_challenge': captcha_challenge,
'down_direct': "1"}
- c = self.load(self.pyfile.url, post=post_data, cookies=True, decode=True)
- m = re.search(self.LINK_PATTERN, c)
+ self.html = self.load(self.pyfile.url, post=post_data, cookies=True, decode=True)
+
+ m = re.search(self.LINK_PATTERN, self.html)
if m is None:
- self.parseError("Download url not found")
+ self.error(_("Download url not found"))
- dl_url = m.group(1)
- self.download(dl_url, cookies=True, disposition=True)
+ self.download(m.group(1), cookies=True, disposition=True)
check = self.checkDownload({'html': re.compile("<html>")})
if check == "html":
- self.parseError("Downloaded file is an html file")
+ self.error(_("Downloaded file is an html page"))
getInfo = create_getInfo(KingfilesNet)
diff --git a/pyload/plugins/account/LetitbitNet.py b/pyload/plugins/account/LetitbitNet.py
index a914693fd..41823418d 100644
--- a/pyload/plugins/account/LetitbitNet.py
+++ b/pyload/plugins/account/LetitbitNet.py
@@ -5,12 +5,13 @@ from pyload.plugins.base.Account import Account
class LetitbitNet(Account):
- __name__ = "LetitbitNet"
- __type__ = "account"
+ __name__ = "LetitbitNet"
+ __type__ = "account"
__version__ = "0.01"
__description__ = """Letitbit.net account plugin"""
- __authors__ = [("stickell", "l.stickell@yahoo.it")]
+ __license__ = "GPLv3"
+ __authors__ = [("stickell", "l.stickell@yahoo.it")]
def loadAccountInfo(self, user, req):
@@ -27,6 +28,7 @@ class LetitbitNet(Account):
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.")
+ self.logInfo(_("You must use your API KEY as username and the PREMIUM KEY as password"))
diff --git a/pyload/plugins/account/LinksnappyCom.py b/pyload/plugins/account/LinksnappyCom.py
index 3d0ef7bca..912c2b4cb 100644
--- a/pyload/plugins/account/LinksnappyCom.py
+++ b/pyload/plugins/account/LinksnappyCom.py
@@ -7,12 +7,13 @@ from pyload.utils import json_loads
class LinksnappyCom(Account):
- __name__ = "LinksnappyCom"
- __type__ = "account"
+ __name__ = "LinksnappyCom"
+ __type__ = "account"
__version__ = "0.02"
__description__ = """Linksnappy.com account plugin"""
- __authors__ = [("stickell", "l.stickell@yahoo.it")]
+ __license__ = "GPLv3"
+ __authors__ = [("stickell", "l.stickell@yahoo.it")]
def loadAccountInfo(self, user, req):
@@ -40,6 +41,7 @@ class LinksnappyCom(Account):
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()})
diff --git a/pyload/plugins/account/LomafileCom.py b/pyload/plugins/account/LomafileCom.py
index b1faf3bf6..cfd21679c 100644
--- a/pyload/plugins/account/LomafileCom.py
+++ b/pyload/plugins/account/LomafileCom.py
@@ -1,15 +1,16 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class LomafileCom(XFSPAccount):
- __name__ = "LomafileCom"
- __type__ = "account"
- __version__ = "0.01"
+class LomafileCom(XFSAccount):
+ __name__ = "LomafileCom"
+ __type__ = "account"
+ __version__ = "0.02"
__description__ = """Lomafile.com account plugin"""
- __authors__ = [("guidobelix", "guidobelix@hotmail.it")]
+ __license__ = "GPLv3"
+ __authors__ = [("guidobelix", "guidobelix@hotmail.it")]
- HOSTER_URL = "http://www.lomafile.com/"
+ HOSTER_DOMAIN = "lomafile.com"
diff --git a/pyload/plugins/account/MegaDebridEu.py b/pyload/plugins/account/MegaDebridEu.py
index a408690c6..50f24b83d 100644
--- a/pyload/plugins/account/MegaDebridEu.py
+++ b/pyload/plugins/account/MegaDebridEu.py
@@ -5,12 +5,13 @@ from pyload.utils import json_loads
class MegaDebridEu(Account):
- __name__ = "MegaDebridEu"
- __type__ = "account"
+ __name__ = "MegaDebridEu"
+ __type__ = "account"
__version__ = "0.2"
__description__ = """mega-debrid.eu account plugin"""
- __authors__ = [("D.Ducatel", "dducatel@je-geek.fr")]
+ __license__ = "GPLv3"
+ __authors__ = [("D.Ducatel", "dducatel@je-geek.fr")]
# Define the base URL of MegaDebrid api
@@ -21,17 +22,18 @@ class MegaDebridEu(Account):
data = self.getAccountData(user)
jsonResponse = req.load(self.API_URL,
get={'action': 'connectUser', 'login': user, 'password': data['password']})
- response = json_loads(jsonResponse)
+ res = json_loads(jsonResponse)
- if response['response_code'] == "ok":
- return {"premium": True, "validuntil": float(response['vip_end']), "status": True}
+ if res['response_code'] == "ok":
+ return {"premium": True, "validuntil": float(res['vip_end']), "status": True}
else:
- self.logError(response)
+ 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']})
- response = json_loads(jsonResponse)
- if response['response_code'] != "ok":
+ res = json_loads(jsonResponse)
+ if res['response_code'] != "ok":
self.wrongPassword()
diff --git a/pyload/plugins/account/MegasharesCom.py b/pyload/plugins/account/MegasharesCom.py
index f9bd6553d..5931e4e7e 100644
--- a/pyload/plugins/account/MegasharesCom.py
+++ b/pyload/plugins/account/MegasharesCom.py
@@ -7,12 +7,13 @@ from pyload.plugins.base.Account import Account
class MegasharesCom(Account):
- __name__ = "MegasharesCom"
- __type__ = "account"
+ __name__ = "MegasharesCom"
+ __type__ = "account"
__version__ = "0.02"
__description__ = """Megashares.com account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
+ __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>'
@@ -34,6 +35,7 @@ class MegasharesCom(Account):
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": "",
diff --git a/pyload/plugins/account/MovReelCom.py b/pyload/plugins/account/MovReelCom.py
index ba71bec2a..6128cddc8 100644
--- a/pyload/plugins/account/MovReelCom.py
+++ b/pyload/plugins/account/MovReelCom.py
@@ -1,18 +1,19 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class MovReelCom(XFSPAccount):
- __name__ = "MovReelCom"
- __type__ = "account"
- __version__ = "0.02"
+class MovReelCom(XFSAccount):
+ __name__ = "MovReelCom"
+ __type__ = "account"
+ __version__ = "0.03"
__description__ = """Movreel.com account plugin"""
- __authors__ = [("t4skforce", "t4skforce1337[AT]gmail[DOT]com")]
+ __license__ = "GPLv3"
+ __authors__ = [("t4skforce", "t4skforce1337[AT]gmail[DOT]com")]
login_timeout = 60
info_threshold = 30
- HOSTER_URL = "http://www.movreel.com/"
+ HOSTER_DOMAIN = "movreel.com"
diff --git a/pyload/plugins/account/MultishareCz.py b/pyload/plugins/account/MultishareCz.py
index e882d0eab..9eb0b50b2 100644
--- a/pyload/plugins/account/MultishareCz.py
+++ b/pyload/plugins/account/MultishareCz.py
@@ -1,22 +1,21 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.base.Account import Account
-#from time import mktime, strptime
-#from pycurl import REFERER
import re
-from pyload.utils import parseFileSize
+
+from module.plugins.Account import Account
class MultishareCz(Account):
- __name__ = "MultishareCz"
- __type__ = "account"
- __version__ = "0.02"
+ __name__ = "MultishareCz"
+ __type__ = "account"
+ __version__ = "0.03"
__description__ = """Multishare.cz account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
+ __license__ = "GPLv3"
+ __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
- TRAFFIC_LEFT_PATTERN = r'<span class="profil-zvyrazneni">Kredit:</span>\s*<strong>(?P<S>[0-9,]+)&nbsp;(?P<U>\w+)</strong>'
+ TRAFFIC_LEFT_PATTERN = r'<span class="profil-zvyrazneni">Kredit:</span>\s*<strong>(?P<S>[\d.,]+)&nbsp;(?P<U>[\w^_]+)</strong>'
ACCOUNT_INFO_PATTERN = r'<input type="hidden" id="(u_ID|u_hash)" name="[^"]*" value="([^"]+)">'
@@ -25,7 +24,7 @@ class MultishareCz(Account):
html = req.load("http://www.multishare.cz/profil/", decode=True)
m = re.search(self.TRAFFIC_LEFT_PATTERN, html)
- trafficleft = parseFileSize(m.group('S'), m.group('U')) / 1024 if m else 0
+ 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)
@@ -33,6 +32,7 @@ class MultishareCz(Account):
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",
diff --git a/pyload/plugins/account/MyfastfileCom.py b/pyload/plugins/account/MyfastfileCom.py
index 559b1bd3b..33cc3a694 100644
--- a/pyload/plugins/account/MyfastfileCom.py
+++ b/pyload/plugins/account/MyfastfileCom.py
@@ -7,13 +7,13 @@ from pyload.utils import json_loads
class MyfastfileCom(Account):
- __name__ = "MyfastfileCom"
- __type__ = "account"
+ __name__ = "MyfastfileCom"
+ __type__ = "account"
__version__ = "0.02"
__description__ = """Myfastfile.com account plugin"""
- __authors__ = [("stickell", "l.stickell@yahoo.it")]
-
+ __license__ = "GPLv3"
+ __authors__ = [("stickell", "l.stickell@yahoo.it")]
def loadAccountInfo(self, user, req):
@@ -21,7 +21,8 @@ class MyfastfileCom(Account):
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")
+ 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
@@ -30,5 +31,5 @@ class MyfastfileCom(Account):
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.logError(_('Invalid login. The password to use is the API-Password you find in your "My Account" page'))
self.wrongPassword()
diff --git a/pyload/plugins/account/NetloadIn.py b/pyload/plugins/account/NetloadIn.py
index fc3c0ac60..2d6ae6eea 100644
--- a/pyload/plugins/account/NetloadIn.py
+++ b/pyload/plugins/account/NetloadIn.py
@@ -7,18 +7,19 @@ from pyload.plugins.base.Account import Account
class NetloadIn(Account):
- __name__ = "NetloadIn"
- __type__ = "account"
+ __name__ = "NetloadIn"
+ __type__ = "account"
__version__ = "0.22"
__description__ = """Netload.in account plugin"""
- __authors__ = [("RaNaN", "RaNaN@pyload.org"),
- ("CryNickSystems", "webmaster@pcProfil.de")]
+ __license__ = "GPLv3"
+ __authors__ = [("RaNaN", "RaNaN@pyload.org"),
+ ("CryNickSystems", "webmaster@pcProfil.de")]
def loadAccountInfo(self, user, req):
page = req.load("http://netload.in/index.php?id=2&lang=de")
- left = r">(\d+) (Tag|Tage), (\d+) Stunden<"
+ 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
@@ -30,6 +31,7 @@ class NetloadIn(Account):
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"},
diff --git a/pyload/plugins/account/NosuploadCom.py b/pyload/plugins/account/NosuploadCom.py
index b02ae50e8..e523ee2f4 100644
--- a/pyload/plugins/account/NosuploadCom.py
+++ b/pyload/plugins/account/NosuploadCom.py
@@ -1,15 +1,16 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class NosuploadCom(XFSPAccount):
- __name__ = "NosuploadCom"
- __type__ = "account"
- __version__ = "0.01"
+class NosuploadCom(XFSAccount):
+ __name__ = "NosuploadCom"
+ __type__ = "account"
+ __version__ = "0.02"
__description__ = """Nosupload.com account plugin"""
- __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
+ __license__ = "GPLv3"
+ __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
- HOSTER_URL = "http://www.nosupload.com/"
+ HOSTER_DOMAIN = "nosupload.com"
diff --git a/pyload/plugins/account/NovafileCom.py b/pyload/plugins/account/NovafileCom.py
index fa5e28946..ab61bf0fc 100644
--- a/pyload/plugins/account/NovafileCom.py
+++ b/pyload/plugins/account/NovafileCom.py
@@ -1,15 +1,16 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class NovafileCom(XFSPAccount):
- __name__ = "NovafileCom"
- __type__ = "account"
- __version__ = "0.01"
+class NovafileCom(XFSAccount):
+ __name__ = "NovafileCom"
+ __type__ = "account"
+ __version__ = "0.02"
__description__ = """Novafile.com account plugin"""
- __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
+ __license__ = "GPLv3"
+ __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
- HOSTER_URL = "http://www.novafile.com/"
+ HOSTER_DOMAIN = "novafile.com"
diff --git a/pyload/plugins/account/OboomCom.py b/pyload/plugins/account/OboomCom.py
index 205edad32..71663bc3f 100644
--- a/pyload/plugins/account/OboomCom.py
+++ b/pyload/plugins/account/OboomCom.py
@@ -9,12 +9,13 @@ from pyload.plugins.base.Account import Account
class OboomCom(Account):
- __name__ = "OboomCom"
- __type__ = "account"
+ __name__ = "OboomCom"
+ __type__ = "account"
__version__ = "0.2"
__description__ = """Oboom.com account plugin"""
- __authors__ = [("stanley", "stanley.foerster@gmail.com")]
+ __license__ = "GPLv3"
+ __authors__ = [("stanley", "stanley.foerster@gmail.com")]
def loadAccountData(self, user, req):
@@ -23,7 +24,7 @@ class OboomCom(Account):
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.logWarning(_("Failed to log in: %s") % result[1])
self.wrongPassword()
return result[1]
@@ -52,8 +53,8 @@ class OboomCom(Account):
return {'premium': premium,
'validuntil': validUntil,
- 'trafficleft': trafficLeft / 1024,
- 'maxtraffic': maxTraffic / 1024,
+ 'trafficleft': trafficLeft,
+ 'maxtraffic': maxTraffic,
'session': session}
diff --git a/pyload/plugins/account/OneFichierCom.py b/pyload/plugins/account/OneFichierCom.py
index 5d106a72a..857fd20b5 100644
--- a/pyload/plugins/account/OneFichierCom.py
+++ b/pyload/plugins/account/OneFichierCom.py
@@ -1,48 +1,55 @@
# -*- coding: utf-8 -*-
import re
+
from time import strptime, mktime
+
from pycurl import REFERER
from pyload.plugins.base.Account import Account
class OneFichierCom(Account):
- __name__ = "OneFichierCom"
- __type__ = "account"
- __version__ = "0.1"
+ __name__ = "OneFichierCom"
+ __type__ = "account"
+ __version__ = "0.11"
__description__ = """1fichier.com account plugin"""
- __authors__ = [("Elrick69", "elrick69[AT]rocketmail[DOT]com")]
+ __license__ = "GPLv3"
+ __authors__ = [("Elrick69", "elrick69[AT]rocketmail[DOT]com"),
+ ("Walter Purcaro", "vuolter@gmail.com")]
- VALID_UNTIL_PATTERN = r'You are a premium user until (?P<d>\d{2})/(?P<m>\d{2})/(?P<y>\d{4})'
+ 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("http://1fichier.com/console/abo.pl")
+ html = req.load("https://1fichier.com/console/abo.pl")
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 = int(mktime(strptime(validuntil, "%d/%m/%Y")))
- else:
- premium = False
- validuntil = -1
+ expiredate = m.group(1)
+ self.logDebug("Expire date: " + expiredate)
- return {"premium": premium, "trafficleft": -1, "validuntil": validuntil}
+ 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, "http://1fichier.com/login.pl?lg=en")
+ def login(self, user, data, req):
+ req.http.c.setopt(REFERER, "https://1fichier.com/login.pl?lg=en")
- html = req.load("http://1fichier.com/login.pl?lg=en", post={
- "mail": user,
- "pass": data['password'],
- "Login": "Login"})
+ html = req.load("https://1fichier.com/login.pl?lg=en",
+ post={'mail': user, 'pass': data['password'], 'It': "on", 'purge': "off", 'valider': "Send"})
- if r'<div class="error_message">Invalid username or password.</div>' in html:
+ if '>Invalid email address' in html or '>Invalid password' in html:
self.wrongPassword()
diff --git a/pyload/plugins/account/OverLoadMe.py b/pyload/plugins/account/OverLoadMe.py
index 514573dfb..d011cf063 100644
--- a/pyload/plugins/account/OverLoadMe.py
+++ b/pyload/plugins/account/OverLoadMe.py
@@ -5,12 +5,13 @@ from pyload.utils import json_loads
class OverLoadMe(Account):
- __name__ = "OverLoadMe"
- __type__ = "account"
+ __name__ = "OverLoadMe"
+ __type__ = "account"
__version__ = "0.01"
__description__ = """Over-Load.me account plugin"""
- __authors__ = [("marley", "marley@over-load.me")]
+ __license__ = "GPLv3"
+ __authors__ = [("marley", "marley@over-load.me")]
def loadAccountInfo(self, user, req):
@@ -25,6 +26,7 @@ class OverLoadMe(Account):
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()
diff --git a/pyload/plugins/account/PremiumTo.py b/pyload/plugins/account/PremiumTo.py
index ccb5c4c87..2943ba41c 100644
--- a/pyload/plugins/account/PremiumTo.py
+++ b/pyload/plugins/account/PremiumTo.py
@@ -4,14 +4,15 @@ from pyload.plugins.base.Account import Account
class PremiumTo(Account):
- __name__ = "PremiumTo"
- __type__ = "account"
+ __name__ = "PremiumTo"
+ __type__ = "account"
__version__ = "0.04"
__description__ = """Premium.to account plugin"""
- __authors__ = [("RaNaN", "RaNaN@pyload.org"),
- ("zoidberg", "zoidberg@mujmail.cz"),
- ("stickell", "l.stickell@yahoo.it")]
+ __license__ = "GPLv3"
+ __authors__ = [("RaNaN", "RaNaN@pyload.org"),
+ ("zoidberg", "zoidberg@mujmail.cz"),
+ ("stickell", "l.stickell@yahoo.it")]
@@ -20,7 +21,8 @@ class PremiumTo(Account):
get={'username': self.username, 'password': self.password})
traffic = sum(map(int, api_r.split(';')))
- return {"trafficleft": int(traffic) / 1024, "validuntil": -1}
+ return {"trafficleft": int(traffic), "validuntil": -1}
+
def login(self, user, data, req):
self.username = user
diff --git a/pyload/plugins/account/PremiumizeMe.py b/pyload/plugins/account/PremiumizeMe.py
index ebc488226..4071e0ad2 100644
--- a/pyload/plugins/account/PremiumizeMe.py
+++ b/pyload/plugins/account/PremiumizeMe.py
@@ -6,12 +6,13 @@ from pyload.utils import json_loads
class PremiumizeMe(Account):
- __name__ = "PremiumizeMe"
- __type__ = "account"
+ __name__ = "PremiumizeMe"
+ __type__ = "account"
__version__ = "0.11"
__description__ = """Premiumize.me account plugin"""
- __authors__ = [("Florian Franzen", "FlorianFranzen@gmail.com")]
+ __license__ = "GPLv3"
+ __authors__ = [("Florian Franzen", "FlorianFranzen@gmail.com")]
def loadAccountInfo(self, user, req):
@@ -21,13 +22,14 @@ class PremiumizeMe(Account):
# Parse account info
account_info = {"validuntil": float(status['result']['expires']),
- "trafficleft": max(0, status['result']['trafficleft_bytes'] / 1024)}
+ "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)
@@ -36,6 +38,7 @@ class PremiumizeMe(Account):
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
diff --git a/pyload/plugins/account/QuickshareCz.py b/pyload/plugins/account/QuickshareCz.py
index 32d7f2d8e..18af5f736 100644
--- a/pyload/plugins/account/QuickshareCz.py
+++ b/pyload/plugins/account/QuickshareCz.py
@@ -1,25 +1,29 @@
# -*- coding: utf-8 -*-
import re
-from pyload.plugins.base.Account import Account
-from pyload.utils import parseFileSize
+
+from module.plugins.Account import Account
class QuickshareCz(Account):
- __name__ = "QuickshareCz"
- __type__ = "account"
- __version__ = "0.01"
+ __name__ = "QuickshareCz"
+ __type__ = "account"
+ __version__ = "0.02"
__description__ = """Quickshare.cz account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
+ __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(r'Stav kreditu: <strong>(.+?)</strong>', html)
+ m = re.search(self.TRAFFIC_LEFT_PATTERN, html)
if m:
- trafficleft = parseFileSize(m.group(1)) / 1024
+ trafficleft = self.parseTraffic(m.group(1))
premium = True if trafficleft else False
else:
trafficleft = None
@@ -27,6 +31,7 @@ class QuickshareCz(Account):
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',
diff --git a/pyload/plugins/account/RPNetBiz.py b/pyload/plugins/account/RPNetBiz.py
index 6cd6b6d76..442355a8c 100644
--- a/pyload/plugins/account/RPNetBiz.py
+++ b/pyload/plugins/account/RPNetBiz.py
@@ -5,21 +5,22 @@ from pyload.utils import json_loads
class RPNetBiz(Account):
- __name__ = "RPNetBiz"
- __type__ = "account"
+ __name__ = "RPNetBiz"
+ __type__ = "account"
__version__ = "0.1"
__description__ = """RPNet.biz account plugin"""
- __authors__ = [("Dman", "dmanugm@gmail.com")]
+ __license__ = "GPLv3"
+ __authors__ = [("Dman", "dmanugm@gmail.com")]
def loadAccountInfo(self, user, req):
# Get account information from rpnet.biz
- response = self.getAccountStatus(user, req)
+ res = self.getAccountStatus(user, req)
try:
- if response['accountInfo']['isPremium']:
+ if res['accountInfo']['isPremium']:
# Parse account info. Change the trafficleft later to support per host info.
- account_info = {"validuntil": int(response['accountInfo']['premiumExpiry']),
+ account_info = {"validuntil": int(res['accountInfo']['premiumExpiry']),
"trafficleft": -1, "premium": True}
else:
account_info = {"validuntil": None, "trafficleft": None, "premium": False}
@@ -30,19 +31,21 @@ class RPNetBiz(Account):
return account_info
+
def login(self, user, data, req):
# Get account information from rpnet.biz
- response = self.getAccountStatus(user, req)
+ res = self.getAccountStatus(user, req)
- # If we have an error in the response, we have wrong login information
- if 'error' in response:
+ # 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
- response = req.load("https://premium.rpnet.biz/client_api.php",
+ 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" % response)
+ self.logDebug("JSON data: %s" % res)
- return json_loads(response)
+ return json_loads(res)
diff --git a/pyload/plugins/account/RapidgatorNet.py b/pyload/plugins/account/RapidgatorNet.py
index 8e26a9df4..ec308e63c 100644
--- a/pyload/plugins/account/RapidgatorNet.py
+++ b/pyload/plugins/account/RapidgatorNet.py
@@ -5,12 +5,13 @@ from pyload.utils import json_loads
class RapidgatorNet(Account):
- __name__ = "RapidgatorNet"
- __type__ = "account"
+ __name__ = "RapidgatorNet"
+ __type__ = "account"
__version__ = "0.04"
__description__ = """Rapidgator.net account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
+ __license__ = "GPLv3"
+ __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
API_URL = 'http://rapidgator.net/api/user'
@@ -30,7 +31,7 @@ class RapidgatorNet(Account):
self.scheduleRefresh(user, json['response']['reset_in'])
return {"validuntil": json['response']['expire_date'],
- "trafficleft": int(json['response']['traffic_left']) / 1024,
+ "trafficleft": int(json['response']['traffic_left']),
"premium": True}
else:
self.logError(json['response_details'])
@@ -39,6 +40,7 @@ class RapidgatorNet(Account):
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']})
diff --git a/pyload/plugins/account/RapidshareCom.py b/pyload/plugins/account/RapidshareCom.py
index cd4e313a1..9ebb9a568 100644
--- a/pyload/plugins/account/RapidshareCom.py
+++ b/pyload/plugins/account/RapidshareCom.py
@@ -4,12 +4,13 @@ from pyload.plugins.base.Account import Account
class RapidshareCom(Account):
- __name__ = "RapidshareCom"
- __type__ = "account"
+ __name__ = "RapidshareCom"
+ __type__ = "account"
__version__ = "0.22"
__description__ = """Rapidshare.com account plugin"""
- __authors__ = [("mkaay", "mkaay@mkaay.de")]
+ __license__ = "GPLv3"
+ __authors__ = [("mkaay", "mkaay@mkaay.de")]
def loadAccountInfo(self, user, req):
@@ -17,10 +18,10 @@ class RapidshareCom(Account):
api_url_base = "http://api.rapidshare.com/cgi-bin/rsapi.cgi"
api_param_prem = {"sub": "getaccountdetails", "type": "prem", "login": user,
"password": data['password'], "withcookie": 1}
- src = req.load(api_url_base, cookies=False, get=api_param_prem)
- if src.startswith("ERROR"):
- raise Exception(src)
- fields = src.split("\n")
+ html = req.load(api_url_base, cookies=False, get=api_param_prem)
+ if html.startswith("ERROR"):
+ raise Exception(html)
+ fields = html.split("\n")
info = {}
for t in fields:
if not t.strip():
@@ -35,14 +36,15 @@ class RapidshareCom(Account):
return tmp
+
def login(self, user, data, req):
api_url_base = "http://api.rapidshare.com/cgi-bin/rsapi.cgi"
api_param_prem = {"sub": "getaccountdetails", "type": "prem", "login": user,
"password": data['password'], "withcookie": 1}
- src = req.load(api_url_base, cookies=False, get=api_param_prem)
- if src.startswith("ERROR"):
- raise Exception(src + "### Note you have to use your account number for login, instead of name.")
- fields = src.split("\n")
+ html = req.load(api_url_base, cookies=False, get=api_param_prem)
+ if html.startswith("ERROR"):
+ raise Exception(html + "### Note you have to use your account number for login, instead of name")
+ fields = html.split("\n")
info = {}
for t in fields:
if not t.strip():
@@ -50,4 +52,4 @@ class RapidshareCom(Account):
k, v = t.split("=")
info[k] = v
cj = self.getAccountCookies(user)
- cj.setCookie("rapidshare.com", "enc", info['cookie'])
+ cj.setCookie(".rapidshare.com", "enc", info['cookie'])
diff --git a/pyload/plugins/account/RarefileNet.py b/pyload/plugins/account/RarefileNet.py
index ba2c7b95a..577a6c8f6 100644
--- a/pyload/plugins/account/RarefileNet.py
+++ b/pyload/plugins/account/RarefileNet.py
@@ -1,15 +1,16 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class RarefileNet(XFSPAccount):
- __name__ = "RarefileNet"
- __type__ = "account"
- __version__ = "0.03"
+class RarefileNet(XFSAccount):
+ __name__ = "RarefileNet"
+ __type__ = "account"
+ __version__ = "0.04"
__description__ = """RareFile.net account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
+ __license__ = "GPLv3"
+ __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
- HOSTER_URL = "http://www.rarefile.net/"
+ HOSTER_DOMAIN = "rarefile.net"
diff --git a/pyload/plugins/account/RealdebridCom.py b/pyload/plugins/account/RealdebridCom.py
index 70b99c906..ef96cca89 100644
--- a/pyload/plugins/account/RealdebridCom.py
+++ b/pyload/plugins/account/RealdebridCom.py
@@ -6,12 +6,13 @@ from pyload.plugins.base.Account import Account
class RealdebridCom(Account):
- __name__ = "RealdebridCom"
- __type__ = "account"
+ __name__ = "RealdebridCom"
+ __type__ = "account"
__version__ = "0.43"
__description__ = """Real-Debrid.com account plugin"""
- __authors__ = [("Devirex Hazzard", "naibaf_11@yahoo.de")]
+ __license__ = "GPLv3"
+ __authors__ = [("Devirex Hazzard", "naibaf_11@yahoo.de")]
def loadAccountInfo(self, user, req):
@@ -24,11 +25,12 @@ class RealdebridCom(Account):
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.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/plugins/account/RehostTo.py b/pyload/plugins/account/RehostTo.py
index 0ade81540..6896555bf 100644
--- a/pyload/plugins/account/RehostTo.py
+++ b/pyload/plugins/account/RehostTo.py
@@ -4,12 +4,13 @@ from pyload.plugins.base.Account import Account
class RehostTo(Account):
- __name__ = "RehostTo"
- __type__ = "account"
+ __name__ = "RehostTo"
+ __type__ = "account"
__version__ = "0.1"
__description__ = """Rehost.to account plugin"""
- __authors__ = [("RaNaN", "RaNaN@pyload.org")]
+ __license__ = "GPLv3"
+ __authors__ = [("RaNaN", "RaNaN@pyload.org")]
def loadAccountInfo(self, user, req):
@@ -29,6 +30,7 @@ class RehostTo(Account):
return account_info
+
def login(self, user, data, req):
page = req.load("http://rehost.to/api.php?cmd=login&user=%s&pass=%s" % (user, data['password']))
diff --git a/pyload/plugins/account/RyushareCom.py b/pyload/plugins/account/RyushareCom.py
index 9c83dabec..ca476366b 100644
--- a/pyload/plugins/account/RyushareCom.py
+++ b/pyload/plugins/account/RyushareCom.py
@@ -1,19 +1,20 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class RyushareCom(XFSPAccount):
- __name__ = "RyushareCom"
- __type__ = "account"
- __version__ = "0.04"
+class RyushareCom(XFSAccount):
+ __name__ = "RyushareCom"
+ __type__ = "account"
+ __version__ = "0.05"
__description__ = """Ryushare.com account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz"),
- ("trance4us", None)]
+ __license__ = "GPLv3"
+ __authors__ = [("zoidberg", "zoidberg@mujmail.cz"),
+ ("trance4us", None)]
- HOSTER_URL = "http://www.ryushare.com/"
+ HOSTER_DOMAIN = "ryushare.com"
def login(self, user, data, req):
diff --git a/pyload/plugins/account/SecureUploadEu.py b/pyload/plugins/account/SecureUploadEu.py
index efcfabba0..b335c94da 100644
--- a/pyload/plugins/account/SecureUploadEu.py
+++ b/pyload/plugins/account/SecureUploadEu.py
@@ -1,15 +1,16 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class SecureUploadEu(XFSPAccount):
- __name__ = "SecureUploadEu"
- __type__ = "account"
- __version__ = "0.01"
+class SecureUploadEu(XFSAccount):
+ __name__ = "SecureUploadEu"
+ __type__ = "account"
+ __version__ = "0.02"
__description__ = """SecureUpload.eu account plugin"""
- __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
+ __license__ = "GPLv3"
+ __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
- HOSTER_URL = "http://www.secureupload.eu/"
+ HOSTER_DOMAIN = "secureupload.eu"
diff --git a/pyload/plugins/account/SendmywayCom.py b/pyload/plugins/account/SendmywayCom.py
index 5a169dcc0..4fcbe0b7a 100644
--- a/pyload/plugins/account/SendmywayCom.py
+++ b/pyload/plugins/account/SendmywayCom.py
@@ -1,15 +1,16 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class SendmywayCom(XFSPAccount):
- __name__ = "SendmywayCom"
- __type__ = "account"
- __version__ = "0.01"
+class SendmywayCom(XFSAccount):
+ __name__ = "SendmywayCom"
+ __type__ = "account"
+ __version__ = "0.02"
__description__ = """Sendmyway.com account plugin"""
- __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
+ __license__ = "GPLv3"
+ __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
- HOSTER_URL = "http://www.sendmyway.com/"
+ HOSTER_DOMAIN = "sendmyway.com"
diff --git a/pyload/plugins/account/ShareRapidCom.py b/pyload/plugins/account/ShareRapidCom.py
deleted file mode 100644
index 4c20770f4..000000000
--- a/pyload/plugins/account/ShareRapidCom.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-
-import re
-
-from time import mktime, strptime
-from pyload.plugins.base.Account import Account
-
-
-class ShareRapidCom(Account):
- __name__ = "ShareRapidCom"
- __type__ = "account"
- __version__ = "0.34"
-
- __description__ = """MegaRapid.cz account plugin"""
- __authors__ = [("MikyWoW", "mikywow@seznam.cz"),
- ("zoidberg", "zoidberg@mujmail.cz")]
-
-
- login_timeout = 60
-
-
- def loadAccountInfo(self, user, req):
- src = req.load("http://megarapid.cz/mujucet/", decode=True)
-
- m = re.search(ur'<td>Max. počet paralelních stahování: </td><td>(\d+)', src)
- if m:
- data = self.getAccountData(user)
- data['options']['limitDL'] = [int(m.group(1))]
-
- m = re.search(ur'<td>Paušální stahování aktivní. Vyprší </td><td><strong>(.*?)</strong>', src)
- if m:
- validuntil = mktime(strptime(m.group(1), "%d.%m.%Y - %H:%M"))
- return {"premium": True, "trafficleft": -1, "validuntil": validuntil}
-
- m = re.search(r'<tr><td>Kredit</td><td>(.*?) GiB', src)
- 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/", cookies=True)
- 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"}, cookies=True)
diff --git a/pyload/plugins/account/ShareonlineBiz.py b/pyload/plugins/account/ShareonlineBiz.py
index 681f1b5a8..31242e563 100644
--- a/pyload/plugins/account/ShareonlineBiz.py
+++ b/pyload/plugins/account/ShareonlineBiz.py
@@ -4,39 +4,42 @@ from pyload.plugins.base.Account import Account
class ShareonlineBiz(Account):
- __name__ = "ShareonlineBiz"
- __type__ = "account"
+ __name__ = "ShareonlineBiz"
+ __type__ = "account"
__version__ = "0.24"
__description__ = """Share-online.biz account plugin"""
- __authors__ = [("mkaay", "mkaay@mkaay.de"),
- ("zoidberg", "zoidberg@mujmail.cz")]
+ __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):
- src = self.getUserAPI(user, req)
+ html = self.getUserAPI(user, req)
info = {}
- for line in src.splitlines():
+ 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'])
+ 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'])
+ 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):
- src = self.getUserAPI(user, req)
- if "EXCEPTION" in src:
+ html = self.getUserAPI(user, req)
+ if "EXCEPTION" in html:
self.wrongPassword()
diff --git a/pyload/plugins/account/SimplyPremiumCom.py b/pyload/plugins/account/SimplyPremiumCom.py
index a601aa533..fd626b43c 100644
--- a/pyload/plugins/account/SimplyPremiumCom.py
+++ b/pyload/plugins/account/SimplyPremiumCom.py
@@ -5,12 +5,13 @@ from pyload.plugins.base.Account import Account
class SimplyPremiumCom(Account):
- __name__ = "SimplyPremiumCom"
- __type__ = "account"
+ __name__ = "SimplyPremiumCom"
+ __type__ = "account"
__version__ = "0.01"
__description__ = """Simply-Premium.com account plugin"""
- __authors__ = [("EvolutionClip", "evolutionclip@live.de")]
+ __license__ = "GPLv3"
+ __authors__ = [("EvolutionClip", "evolutionclip@live.de")]
def loadAccountInfo(self, user, req):
@@ -24,14 +25,15 @@ class SimplyPremiumCom(Account):
#Time package
validuntil = float(json_data['result']['timeend'])
#Traffic package
- # {"trafficleft": int(traffic) / 1024, "validuntil": -1}
- #trafficleft = int(json_data['result']['traffic'] / 1024)
+ # {"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")
+ req.cj.setCookie(".simply-premium.com", "lang", "EN")
if data['password'] == '' or data['password'] == '0':
post_data = {"key": user}
diff --git a/pyload/plugins/account/SimplydebridCom.py b/pyload/plugins/account/SimplydebridCom.py
index bf49b652b..a92e6ca95 100644
--- a/pyload/plugins/account/SimplydebridCom.py
+++ b/pyload/plugins/account/SimplydebridCom.py
@@ -6,27 +6,29 @@ from pyload.plugins.base.Account import Account
class SimplydebridCom(Account):
- __name__ = "SimplydebridCom"
- __type__ = "account"
+ __name__ = "SimplydebridCom"
+ __type__ = "account"
__version__ = "0.1"
__description__ = """Simply-Debrid.com account plugin"""
- __authors__ = [("Kagenoshin", "kagenoshin@gmx.ch")]
+ __license__ = "GPLv3"
+ __authors__ = [("Kagenoshin", "kagenoshin@gmx.ch")]
def loadAccountInfo(self, user, req):
get_data = {'login': 2, 'u': self.loginname, 'p': self.password}
- response = req.load("http://simply-debrid.com/api.php", get=get_data, decode=True)
- data = [x.strip() for x in response.split(";")]
+ 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}
- response = req.load("http://simply-debrid.com/api.php", get=get_data, decode=True)
- if response != "02: loggin success":
+ 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/plugins/account/StahnuTo.py b/pyload/plugins/account/StahnuTo.py
index fa08b234d..44884f835 100644
--- a/pyload/plugins/account/StahnuTo.py
+++ b/pyload/plugins/account/StahnuTo.py
@@ -2,27 +2,28 @@
import re
-from pyload.plugins.base.Account import Account
-from pyload.utils import parseFileSize
+from module.plugins.Account import Account
class StahnuTo(Account):
- __name__ = "StahnuTo"
- __type__ = "account"
- __version__ = "0.02"
+ __name__ = "StahnuTo"
+ __type__ = "account"
+ __version__ = "0.03"
__description__ = """StahnuTo account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
+ __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 = parseFileSize(m.group(1)) * 1024 if m else 0
+ 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,
diff --git a/pyload/plugins/account/StreamcloudEu.py b/pyload/plugins/account/StreamcloudEu.py
index 78d4179bf..aa1eafcbd 100644
--- a/pyload/plugins/account/StreamcloudEu.py
+++ b/pyload/plugins/account/StreamcloudEu.py
@@ -1,15 +1,16 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class StreamcloudEu(XFSPAccount):
- __name__ = "StreamcloudEu"
- __type__ = "account"
- __version__ = "0.01"
+class StreamcloudEu(XFSAccount):
+ __name__ = "StreamcloudEu"
+ __type__ = "account"
+ __version__ = "0.02"
__description__ = """Streamcloud.eu account plugin"""
- __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
+ __license__ = "GPLv3"
+ __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
- HOSTER_URL = "http://www.streamcloud.eu/"
+ HOSTER_DOMAIN = "streamcloud.eu"
diff --git a/pyload/plugins/account/TurbobitNet.py b/pyload/plugins/account/TurbobitNet.py
index 48ed17d73..cb8975158 100644
--- a/pyload/plugins/account/TurbobitNet.py
+++ b/pyload/plugins/account/TurbobitNet.py
@@ -7,18 +7,19 @@ from pyload.plugins.base.Account import Account
class TurbobitNet(Account):
- __name__ = "TurbobitNet"
- __type__ = "account"
+ __name__ = "TurbobitNet"
+ __type__ = "account"
__version__ = "0.01"
__description__ = """TurbobitNet account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
+ __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 ([0-9.]+)', html)
+ m = re.search(r'<u>Turbo Access</u> to ([\d.]+)', html)
if m:
premium = True
validuntil = mktime(strptime(m.group(1), "%d.%m.%Y"))
@@ -28,8 +29,9 @@ class TurbobitNet(Account):
return {"premium": premium, "trafficleft": -1, "validuntil": validuntil}
+
def login(self, user, data, req):
- req.cj.setCookie("turbobit.net", "user_lang", "en")
+ req.cj.setCookie(".turbobit.net", "user_lang", "en")
html = req.load("http://turbobit.net/user/login", post={
"user[login]": user,
diff --git a/pyload/plugins/account/TusfilesNet.py b/pyload/plugins/account/TusfilesNet.py
index 36110fca7..552047a64 100644
--- a/pyload/plugins/account/TusfilesNet.py
+++ b/pyload/plugins/account/TusfilesNet.py
@@ -4,54 +4,20 @@ import re
from time import mktime, strptime, gmtime
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
-from pyload.utils import parseFileSize
+from module.plugins.internal.XFSAccount import XFSAccount
-class TusfilesNet(XFSPAccount):
- __name__ = "TusfilesNet"
- __type__ = "account"
- __version__ = "0.02"
+class TusfilesNet(XFSAccount):
+ __name__ = "TusfilesNet"
+ __type__ = "account"
+ __version__ = "0.06"
__description__ = """Tusfile.net account plugin"""
- __authors__ = [("guidobelix", "guidobelix@hotmail.it")]
+ __license__ = "GPLv3"
+ __authors__ = [("guidobelix", "guidobelix@hotmail.it")]
- HOSTER_URL = "http://www.tusfiles.net/"
+ 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>&nbsp;(?P<S>[^<]+)</td>'
-
-
- def loadAccountInfo(self, user, req):
- html = req.load(self.HOSTER_URL, get={'op': "my_account"}, decode=True)
-
- validuntil = None
- trafficleft = None
- premium = False
-
- 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 %B %Y"))
- except Exception, e:
- self.logError(e)
-
- if validuntil > mktime(gmtime()):
- premium = True
- else:
- premium = False
- validuntil = None
-
- m = re.search(self.TRAFFIC_LEFT_PATTERN, html)
- if m:
- trafficleft = m.group(1)
- if "Unlimited" in trafficleft:
- trafficleft = -1
- else:
- trafficleft = parseFileSize(trafficleft) * 1024
-
- return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium}
+ TRAFFIC_LEFT_PATTERN = r'<td><img src="//www\.tusfiles\.net/i/icon/meter\.png" alt=""/></td>\n<td>&nbsp;(?P<S>[\d.,]+)'
diff --git a/pyload/plugins/account/UlozTo.py b/pyload/plugins/account/UlozTo.py
index 913ddc56f..105a962cd 100644
--- a/pyload/plugins/account/UlozTo.py
+++ b/pyload/plugins/account/UlozTo.py
@@ -6,23 +6,24 @@ from pyload.plugins.base.Account import Account
class UlozTo(Account):
- __name__ = "UlozTo"
- __type__ = "account"
+ __name__ = "UlozTo"
+ __type__ = "account"
__version__ = "0.06"
__description__ = """Uloz.to account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz"),
- ("pulpe", None)]
+ __license__ = "GPLv3"
+ __authors__ = [("zoidberg", "zoidberg@mujmail.cz"),
+ ("pulpe", None)]
- TRAFFIC_LEFT_PATTERN = r'<li class="menu-kredit"><a href="/kredit" title="[^"]*?GB = ([0-9.]+) MB"'
+ TRAFFIC_LEFT_PATTERN = r'<li class="menu-kredit"><a href="/kredit" title="[^"]*?GB = ([\d.]+) MB"'
def loadAccountInfo(self, user, req):
#this cookie gets lost somehow after each request
self.phpsessid = req.cj.getCookie("ULOSESSID")
html = req.load("http://www.ulozto.net/", decode=True)
- req.cj.setCookie("www.ulozto.net", "ULOSESSID", self.phpsessid)
+ 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
@@ -30,6 +31,7 @@ class UlozTo(Account):
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('&amp;', '&')
diff --git a/pyload/plugins/account/UnrestrictLi.py b/pyload/plugins/account/UnrestrictLi.py
index 179d2bd8a..b5ae43d72 100644
--- a/pyload/plugins/account/UnrestrictLi.py
+++ b/pyload/plugins/account/UnrestrictLi.py
@@ -5,12 +5,13 @@ from pyload.utils import json_loads
class UnrestrictLi(Account):
- __name__ = "UnrestrictLi"
- __type__ = "account"
+ __name__ = "UnrestrictLi"
+ __type__ = "account"
__version__ = "0.03"
__description__ = """Unrestrict.li account plugin"""
- __authors__ = [("stickell", "l.stickell@yahoo.it")]
+ __license__ = "GPLv3"
+ __authors__ = [("stickell", "l.stickell@yahoo.it")]
def loadAccountInfo(self, user, req):
@@ -22,16 +23,17 @@ class UnrestrictLi(Account):
return {"premium": False}
validuntil = json_data['result']['expires']
- trafficleft = int(json_data['result']['traffic'] / 1024)
+ 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")
+ 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")
+ 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'],
diff --git a/pyload/plugins/account/UploadedTo.py b/pyload/plugins/account/UploadedTo.py
index 145205530..0054b60bf 100644
--- a/pyload/plugins/account/UploadedTo.py
+++ b/pyload/plugins/account/UploadedTo.py
@@ -7,46 +7,54 @@ from pyload.plugins.base.Account import Account
class UploadedTo(Account):
- __name__ = "UploadedTo"
- __type__ = "account"
- __version__ = "0.26"
+ __name__ = "UploadedTo"
+ __type__ = "account"
+ __version__ = "0.27"
__description__ = """Uploaded.to account plugin"""
- __authors__ = [("mkaay", "mkaay@mkaay.de")]
+ __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
- req.load("http://uploaded.net/language/en")
html = req.load("http://uploaded.net/me")
- premium = '<a href="register"><em>Premium</em>' in html or '<em>Premium</em></th>' in html
-
- if premium:
- raw_traffic = re.search(r'<th colspan="2"><b class="cB">([^<]+)', html).group(1).replace('.', '')
- raw_valid = re.search(r"<td>Duration:</td>\s*<th>([^<]+)", html, re.MULTILINE).group(1).strip()
+ premium = True if re.search(self.PREMIUM_PATTERN, html) else False
- traffic = int(self.parseTraffic(raw_traffic))
+ m = re.search(self.VALID_UNTIL_PATTERN, html, re.M)
+ if m:
+ expiredate = m.group(1).strip()
- if raw_valid == "unlimited":
+ if expiredate == "unlimited":
validuntil = -1
else:
- raw_valid = re.findall(r"(\d+) (Week|weeks|days|day|hours|hour)", raw_valid)
- validuntil = time()
- for n, u in raw_valid:
- validuntil += int(n) * 60 * 60 * {"Week": 168, "weeks": 168, "days": 24,
- "day": 24, "hours": 1, "hour": 1}[u]
+ 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]
- return {"validuntil": validuntil, "trafficleft": traffic, "maxtraffic": 50 * 1024 * 1024}
- else:
- return {"premium": False, "validuntil": -1}
+ 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.load("http://uploaded.net/language/en")
- req.cj.setCookie("uploaded.net", "lang", "en")
+ 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'], "_": ""})
+ page = req.load("http://uploaded.net/io/login",
+ post={'id': user, 'pw': data['password'], '_': ""})
- if "User and password do not match!" in page:
+ if "User and password do not match" in page:
self.wrongPassword()
diff --git a/pyload/plugins/account/UploadheroCom.py b/pyload/plugins/account/UploadheroCom.py
index ec3cdf906..c3a39e5dc 100644
--- a/pyload/plugins/account/UploadheroCom.py
+++ b/pyload/plugins/account/UploadheroCom.py
@@ -8,16 +8,17 @@ from pyload.plugins.base.Account import Account
class UploadheroCom(Account):
- __name__ = "UploadheroCom"
- __type__ = "account"
+ __name__ = "UploadheroCom"
+ __type__ = "account"
__version__ = "0.2"
__description__ = """Uploadhero.co account plugin"""
- __authors__ = [("mcmyst", "mcmyst@hotmail.fr")]
+ __license__ = "GPLv3"
+ __authors__ = [("mcmyst", "mcmyst@hotmail.fr")]
def loadAccountInfo(self, user, req):
- premium_pattern = re.compile('Il vous reste <span class="bleu">([0-9]+)</span> jours premium.')
+ 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")
@@ -31,6 +32,7 @@ class UploadheroCom(Account):
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']})
diff --git a/pyload/plugins/account/UploadingCom.py b/pyload/plugins/account/UploadingCom.py
index a25281ca4..b5ea91119 100644
--- a/pyload/plugins/account/UploadingCom.py
+++ b/pyload/plugins/account/UploadingCom.py
@@ -1,39 +1,63 @@
# -*- coding: utf-8 -*-
-from time import time, strptime, mktime
import re
+from time import time, strptime, mktime
+
from pyload.plugins.base.Account import Account
+from module.plugins.internal.SimpleHoster import set_cookies
class UploadingCom(Account):
- __name__ = "UploadingCom"
- __type__ = "account"
- __version__ = "0.1"
+ __name__ = "UploadingCom"
+ __type__ = "account"
+ __version__ = "0.11"
__description__ = """Uploading.com account plugin"""
- __authors__ = [("mkaay", "mkaay@mkaay.de")]
+ __license__ = "GPLv3"
+ __authors__ = [("mkaay", "mkaay@mkaay.de")]
+
+
+ PREMIUM_PATTERN = r'UPGRADE TO PREMIUM'
+ VALID_UNTIL_PATTERN = r'Valid Until:(.+?)<'
def loadAccountInfo(self, user, req):
- src = req.load("http://uploading.com/")
- premium = True
- if "UPGRADE TO PREMIUM" in src:
- return {"validuntil": -1, "trafficleft": -1, "premium": False}
+ validuntil = None
+ trafficleft = None
+ premium = None
+
+ html = req.load("http://uploading.com/")
- m = re.search("Valid Until:(.*?)<", src)
+ premium = False if re.search(self.PREMIUM_PATTERN, html) else True
+
+ m = re.search(self.VALID_UNTIL_PATTERN, html)
if m:
- validuntil = int(mktime(strptime(m.group(1).strip(), "%b %d, %Y")))
- else:
- validuntil = -1
+ 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}
- return {"validuntil": validuntil, "trafficleft": -1, "premium": True}
def login(self, user, data, req):
- req.cj.setCookie("uploading.com", "lang", "1")
- req.cj.setCookie("uploading.com", "language", "1")
- req.cj.setCookie("uploading.com", "setlang", "en")
- req.cj.setCookie("uploading.com", "_lang", "en")
+ 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"})
+ post={'email': user, 'password': data['password'], 'remember': "on"})
diff --git a/pyload/plugins/account/UptoboxCom.py b/pyload/plugins/account/UptoboxCom.py
index 917663d63..d3fb4e559 100644
--- a/pyload/plugins/account/UptoboxCom.py
+++ b/pyload/plugins/account/UptoboxCom.py
@@ -1,17 +1,16 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class UptoboxCom(XFSPAccount):
- __name__ = "UptoboxCom"
- __type__ = "account"
- __version__ = "0.03"
+class UptoboxCom(XFSAccount):
+ __name__ = "UptoboxCom"
+ __type__ = "account"
+ __version__ = "0.06"
__description__ = """DDLStorage.com account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
+ __license__ = "GPLv3"
+ __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
- HOSTER_URL = "http://www.uptobox.com/"
-
- VALID_UNTIL_PATTERN = r'>Premium.[Aa]ccount expire: ([^<]+)</strong>'
+ HOSTER_DOMAIN = "uptobox.com"
diff --git a/pyload/plugins/account/VidPlayNet.py b/pyload/plugins/account/VidPlayNet.py
index a7e71365e..5bfc24963 100644
--- a/pyload/plugins/account/VidPlayNet.py
+++ b/pyload/plugins/account/VidPlayNet.py
@@ -1,15 +1,16 @@
# -*- coding: utf-8 -*-
-from pyload.plugins.internal.XFSPAccount import XFSPAccount
+from module.plugins.internal.XFSAccount import XFSAccount
-class VidPlayNet(XFSPAccount):
- __name__ = "VidPlayNet"
- __type__ = "account"
- __version__ = "0.01"
+class VidPlayNet(XFSAccount):
+ __name__ = "VidPlayNet"
+ __type__ = "account"
+ __version__ = "0.02"
__description__ = """VidPlay.net account plugin"""
- __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
+ __license__ = "GPLv3"
+ __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
- HOSTER_URL = "http://www.vidplay.net/"
+ HOSTER_DOMAIN = "vidplay.net"
diff --git a/pyload/plugins/account/YibaishiwuCom.py b/pyload/plugins/account/YibaishiwuCom.py
index e9fe0facf..d9a9f37ca 100644
--- a/pyload/plugins/account/YibaishiwuCom.py
+++ b/pyload/plugins/account/YibaishiwuCom.py
@@ -6,12 +6,13 @@ from pyload.plugins.base.Account import Account
class YibaishiwuCom(Account):
- __name__ = "YibaishiwuCom"
- __type__ = "account"
+ __name__ = "YibaishiwuCom"
+ __type__ = "account"
__version__ = "0.01"
__description__ = """115.com account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
+ __license__ = "GPLv3"
+ __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
ACCOUNT_INFO_PATTERN = r'var USER_PERMISSION = {(.*?)}'
@@ -26,6 +27,7 @@ class YibaishiwuCom(Account):
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/",
diff --git a/pyload/plugins/account/ZeveraCom.py b/pyload/plugins/account/ZeveraCom.py
index 17bfb114c..701198c84 100644
--- a/pyload/plugins/account/ZeveraCom.py
+++ b/pyload/plugins/account/ZeveraCom.py
@@ -6,12 +6,13 @@ from pyload.plugins.base.Account import Account
class ZeveraCom(Account):
- __name__ = "ZeveraCom"
- __type__ = "account"
+ __name__ = "ZeveraCom"
+ __type__ = "account"
__version__ = "0.21"
__description__ = """Zevera.com account plugin"""
- __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
+ __license__ = "GPLv3"
+ __authors__ = [("zoidberg", "zoidberg@mujmail.cz")]
def loadAccountInfo(self, user, req):
@@ -26,12 +27,14 @@ class ZeveraCom(Account):
}
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',
@@ -40,14 +43,14 @@ class ZeveraCom(Account):
}
get_data.update(kwargs)
- response = req.load("http://www.zevera.com/jDownloader.ashx", get=get_data,
+ res = req.load("http://www.zevera.com/jDownloader.ashx", get=get_data,
decode=True, just_header=just_header)
- self.logDebug(response)
+ self.logDebug(res)
- if ':' in response:
+ if ':' in res:
if not just_header:
- response = response.replace(',', '\n')
+ res = res.replace(',', '\n')
return dict((y.strip().lower(), z.strip()) for (y, z) in
- [x.split(':', 1) for x in response.splitlines() if ':' in x])
+ [x.split(':', 1) for x in res.splitlines() if ':' in x])
else:
- return response
+ return res