summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2010-09-28 13:38:56 +0200
committerGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2010-09-28 13:38:56 +0200
commit7006ccacbc6d909d8f820b077ad855b0bbff78b2 (patch)
tree98a5e2af2716c211de183960a8890722b8f0d927
parentparser fix (diff)
downloadpyload-7006ccacbc6d909d8f820b077ad855b0bbff78b2.tar.xz
rs, check downloaded files
-rw-r--r--module/plugins/hoster/RapidshareCom.py37
1 files changed, 33 insertions, 4 deletions
diff --git a/module/plugins/hoster/RapidshareCom.py b/module/plugins/hoster/RapidshareCom.py
index b4e805228..f2fd3661c 100644
--- a/module/plugins/hoster/RapidshareCom.py
+++ b/module/plugins/hoster/RapidshareCom.py
@@ -3,6 +3,8 @@
# -*- coding: utf-8 -*-
import re
+from os import stat, remove
+from os.path import join
from module.network.Request import getURL
from module.plugins.Hoster import Hoster
@@ -45,7 +47,7 @@ class RapidshareCom(Hoster):
__name__ = "RapidshareCom"
__type__ = "hoster"
__pattern__ = r"http://[\w\.]*?rapidshare.com/(?:files/(?P<id>\d*?)/(?P<name>.+)|#!download\|(?:\d+)\|(?P<id_new>\d+)\|(?P<name_new>[^|]+))"
- __version__ = "0.22"
+ __version__ = "1.3"
__description__ = """Rapidshare.com Download Hoster"""
__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"]]
__author_name__ = ("spoob", "RaNaN", "mkaay")
@@ -56,6 +58,7 @@ class RapidshareCom(Hoster):
self.no_download = True
self.api_data = None
self.multiDL = False
+ self.offset = 0
self.id = None
self.name = None
@@ -114,7 +117,33 @@ class RapidshareCom(Hoster):
download = "http://%(host)s/cgi-bin/rsapi.cgi?sub=download_v1&editparentlocation=1&bin=1&fileid=%(id)s&filename=%(name)s&dlauth=%(auth)s#!download|%(server)s|%(id)s|%(name)s|%(size)s" % dl_dict
- self.download(download)
+ dl = self.download(download)
+
+ self.postCheck(dl)
+
+ def postCheck(self, dl):
+
+ size = stat(dl)
+ size = size.st_size
+
+ if (size < int(self.api_data["size"]) and size < 10000):
+ f = open(dl, "rb")
+ content = f.read()
+ f.close()
+ if "You need RapidPro to download more files from your IP address" in content:
+ remove(f)
+ self.setWait(60)
+ self.log.info(_("Already downloading from this ip address, waiting 60 seconds"))
+ self.wait()
+ self.handleFree()
+ elif "Download auth invalid" in content:
+ remove(f)
+ self.log.info(_("Invalid Auth Code, download will be restarted"))
+ self.offset += 5
+ self.handleFree()
+
+
+
def handlePremium(self):
info = self.account.getAccountInfo(self.account.getAccountData(self)[0])
@@ -189,11 +218,11 @@ class RapidshareCom(Hoster):
dl_dict = {"id": id,
"name": name,
"host": data[0],
- "auth": data[1].encode("utf8"),
+ "auth": data[1],
"server": self.api_data["serverid"],
"size": self.api_data["size"]
}
- self.setWait(int(data[2])+5)
+ self.setWait(int(data[2])+5+self.offset)
self.wait()
return dl_dict