summaryrefslogtreecommitdiffstats
path: root/module/plugins/hoster/RapidshareCom.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/hoster/RapidshareCom.py')
-rw-r--r--module/plugins/hoster/RapidshareCom.py39
1 files changed, 22 insertions, 17 deletions
diff --git a/module/plugins/hoster/RapidshareCom.py b/module/plugins/hoster/RapidshareCom.py
index 19d6cf772..4ec5af67a 100644
--- a/module/plugins/hoster/RapidshareCom.py
+++ b/module/plugins/hoster/RapidshareCom.py
@@ -42,18 +42,17 @@ def getInfo(urls):
class RapidshareCom(Hoster):
- __name__ = "RapidshareCom"
- __type__ = "hoster"
- __version__ = "1.39"
+ __name__ = "RapidshareCom"
+ __type__ = "hoster"
+ __version__ = "1.40"
- __pattern__ = r'https?://(?:www\.)?rapidshare.com/(?:files/(?P<id>\d*?)/(?P<name>[^?]+)|#!download\|(?:\w+)\|(?P<id_new>\d+)\|(?P<name_new>[^|]+))'
- __config__ = [("server",
- "Cogent;Deutsche Telekom;Level(3);Level(3) #2;GlobalCrossing;Level(3) #3;Teleglobe;GlobalCrossing #2;TeliaSonera #2;Teleglobe #2;TeliaSonera #3;TeliaSonera",
- "Preferred Server", "None")]
+ __pattern__ = r'https?://(?:www\.)?rapidshare\.com/(?:files/(?P<id>\d+)/(?P<name>[^?]+)|#!download\|(?:\w+)\|(?P<id_new>\d+)\|(?P<name_new>[^|]+))'
__description__ = """Rapidshare.com hoster plugin"""
- __author_name__ = ("spoob", "RaNaN", "mkaay")
- __author_mail__ = ("spoob@pyload.org", "ranan@pyload.org", "mkaay@mkaay.de")
+ __license__ = "GPLv3"
+ __authors__ = [("spoob", "spoob@pyload.org"),
+ ("RaNaN", "ranan@pyload.org"),
+ ("mkaay", "mkaay@mkaay.de")]
def setup(self):
@@ -68,10 +67,12 @@ class RapidshareCom(Hoster):
self.chunkLimit = -1 if self.premium else 1
self.multiDL = self.resumeDownload = self.premium
+
def process(self, pyfile):
self.url = pyfile.url
self.prepare()
+
def prepare(self):
m = re.match(self.__pattern__, self.url)
@@ -102,7 +103,8 @@ class RapidshareCom(Hoster):
elif self.api_data['status'] == "3":
self.tempOffline()
else:
- self.fail("Unknown response code.")
+ self.error(_("Unknown response code"))
+
def handleFree(self):
while self.no_download:
@@ -126,12 +128,14 @@ class RapidshareCom(Hoster):
self.offset += 5
self.handleFree()
+
def handlePremium(self):
info = self.account.getAccountInfo(self.user, True)
- self.logDebug("%s: Use Premium Account" % self.__name__)
+ self.logDebug("Use Premium Account")
url = self.api_data['mirror']
self.download(url, get={"directstart": 1})
+
def download_api_data(self, force=False):
"""
http://images.rapidshare.com/apidoc.txt
@@ -140,11 +144,11 @@ class RapidshareCom(Hoster):
return
api_url_base = "http://api.rapidshare.com/cgi-bin/rsapi.cgi"
api_param_file = {"sub": "checkfiles", "incmd5": "1", "files": self.id, "filenames": self.name}
- src = self.load(api_url_base, cookies=False, get=api_param_file).strip()
- self.logDebug("RS INFO API: %s" % src)
- if src.startswith("ERROR"):
+ html = self.load(api_url_base, cookies=False, get=api_param_file).strip()
+ self.logDebug("RS INFO API: %s" % html)
+ if html.startswith("ERROR"):
return
- fields = src.split(",")
+ fields = html.split(",")
# status codes:
# 0=File not found
@@ -166,6 +170,7 @@ class RapidshareCom(Hoster):
self.api_data['mirror'] = "http://rs%(serverid)s%(shorthost)s.rapidshare.com/files/%(fileid)s/%(filename)s" % self.api_data
+
def freeWait(self):
"""downloads html with the important information
"""
@@ -197,8 +202,7 @@ class RapidshareCom(Hoster):
elif "Filename invalid." in result:
self.fail(_("Filename reported invalid"))
elif between_wait:
- self.setWait(int(between_wait.group(1)))
- self.wantReconnect = True
+ self.setWait(int(between_wait.group(1)), True)
self.wait()
else:
self.no_download = False
@@ -217,6 +221,7 @@ class RapidshareCom(Hoster):
return dl_dict
+
def get_file_name(self):
if self.api_data['filename']:
return self.api_data['filename']