Skip to content

Commit f4ff2b2

Browse files
committed
rapidgator.net, shareonline.biz - closed pyload#701
1 parent 1b494bc commit f4ff2b2

2 files changed

Lines changed: 32 additions & 13 deletions

File tree

module/plugins/hoster/RapidgatorNet.py

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class RapidgatorNet(SimpleHoster):
2929
__name__ = "RapidgatorNet"
3030
__type__ = "hoster"
3131
__pattern__ = r"http://(?:www\.)?(rapidgator.net)/file/(\d+)"
32-
__version__ = "0.11"
32+
__version__ = "0.12"
3333
__description__ = """rapidgator.net"""
3434
__author_name__ = ("zoidberg","chrox")
3535

@@ -43,31 +43,45 @@ class RapidgatorNet(SimpleHoster):
4343
RECAPTCHA_KEY_PATTERN = r'"http://api.recaptcha.net/challenge?k=(.*?)"'
4444
ADSCAPTCHA_SRC_PATTERN = r'(http://api.adscaptcha.com/Get.aspx[^"\']*)'
4545
SOLVEMEDIA_PATTERN = r'http:\/\/api\.solvemedia\.com\/papi\/challenge\.script\?k=(.*?)"'
46+
47+
def setup(self):
48+
self.resumeDownload = False
49+
self.multiDL = False
50+
self.sid = None
51+
self.chunkLimit = 1
52+
self.req.setOption("timeout", 120)
53+
54+
def process(self, pyfile):
55+
if self.account:
56+
self.sid = self.account.getAccountData(self.user).get('SID', None)
57+
58+
if self.sid:
59+
self.handlePremium()
60+
else:
61+
self.handleFree()
4662

4763
def getAPIResponse(self, cmd):
4864
try:
4965
json = self.load('%s/%s' % (self.API_URL, cmd),
50-
get = {'sid': self.account.getAccountData(self.user).get('SID'),
66+
get = {'sid': self.sid,
5167
'url': self.pyfile.url}, decode = True)
52-
self.logDebug('API:%s' % cmd, json)
68+
self.logDebug('API:%s' % cmd, json, "SID: %s" % self.sid)
5369
json = json_loads(json)
5470
status = json['response_status']
5571
msg = json['response_details']
5672
except BadHeader, e:
57-
self.logError('API:%s' % cmd, e)
73+
self.logError('API:%s' % cmd, e, "SID: %s" % self.sid)
5874
status = e.code
5975
msg = e
6076

6177
if status == 200:
6278
return json['response']
63-
elif status == 401:
64-
self.account.relogin(self.user)
65-
self.retry()
6679
elif status == 423:
6780
self.account.empty(self.user)
6881
self.retry()
6982
else:
70-
self.fail(msg)
83+
self.account.relogin(self.user)
84+
self.retry(wait_time=60)
7185

7286
def handlePremium(self):
7387
#self.logDebug("ACCOUNT_DATA", self.account.getAccountData(self.user))
@@ -76,9 +90,13 @@ def handlePremium(self):
7690
self.pyfile.name = self.api_data['filename']
7791
self.pyfile.size = self.api_data['size']
7892
url = self.getAPIResponse('download')['url']
93+
self.multiDL = True
7994
self.download(url)
8095

8196
def handleFree(self):
97+
self.html = self.load(self.pyfile.url, decode = True)
98+
self.getFileInfo()
99+
82100
if "You can download files up to 500 MB in free mode" in self.html \
83101
or "This file can be downloaded by premium only" in self.html:
84102
self.fail("Premium account needed for download")

module/plugins/hoster/ShareonlineBiz.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def getInfo(urls):
1717

1818
for chunk in chunks(urls, 90):
1919
api_param_file = {"links": "\n".join(x.replace("http://www.share-online.biz/dl/","").rstrip("/") for x in chunk)} #api only supports old style links
20-
src = getURL(api_url_base, post=api_param_file)
20+
src = getURL(api_url_base, post=api_param_file, decode=True)
2121
result = []
2222
for i, res in enumerate(src.split("\n")):
2323
if not res:
@@ -43,7 +43,7 @@ class ShareonlineBiz(Hoster):
4343
__name__ = "ShareonlineBiz"
4444
__type__ = "hoster"
4545
__pattern__ = r"http://[\w\.]*?(share\-online\.biz|egoshare\.com)/(download.php\?id\=|dl/)[\w]+"
46-
__version__ = "0.34"
46+
__version__ = "0.35"
4747
__description__ = """Shareonline.biz Download Hoster"""
4848
__author_name__ = ("spoob", "mkaay", "zoidberg")
4949
__author_mail__ = ("spoob@pyload.org", "mkaay@mkaay.de", "zoidberg@mujmail.cz")
@@ -57,7 +57,8 @@ def setup(self):
5757
self.file_id = re.search(r"(id\=|/dl/)([a-zA-Z0-9]+)", self.pyfile.url).group(2)
5858
self.pyfile.url = "http://www.share-online.biz/dl/" + self.file_id
5959

60-
self.resumeDownload = self.multiDL = self.premium
60+
self.resumeDownload = self.premium
61+
self.multiDL = False
6162
#self.chunkLimit = 1
6263

6364
self.check_data = None
@@ -84,7 +85,7 @@ def process(self, pyfile):
8485
def downloadAPIData(self):
8586
api_url_base = "http://api.share-online.biz/linkcheck.php?md5=1"
8687
api_param_file = {"links": self.pyfile.url.replace("http://www.share-online.biz/dl/","")} #api only supports old style links
87-
src = self.load(api_url_base, cookies=False, post=api_param_file)
88+
src = self.load(api_url_base, cookies=False, post=api_param_file, decode=True)
8889

8990
fields = src.split(";")
9091
self.api_data = {"fileid": fields[0],
@@ -139,7 +140,6 @@ def handleFree(self):
139140
self.retry(5, 60, "Cookie failure")
140141
elif check == "fail":
141142
self.retry(5, 300, "Download failed")
142-
143143

144144
def checkErrors(self):
145145
found = re.search(r"/failure/(.*?)/1", self.req.lastEffectiveURL)
@@ -182,6 +182,7 @@ def handleAPIPremium(self): #should be working better
182182
if dlLink == "server_under_maintenance":
183183
self.tempoffline()
184184
else:
185+
self.multiDL = True
185186
self.download(dlLink)
186187

187188
def checksum(self, local_file):

0 commit comments

Comments
 (0)