summaryrefslogtreecommitdiffstats
path: root/module
diff options
context:
space:
mode:
authorGravatar mkaay <mkaay@mkaay.de> 2010-06-30 17:23:57 +0200
committerGravatar mkaay <mkaay@mkaay.de> 2010-06-30 17:23:57 +0200
commitaee4d8d8907c2973019277c5e9a011d82181f95b (patch)
treeb6dea70c51a81f7f95123084569ccad71500ad9e /module
parentYouPorn name fix (diff)
downloadpyload-aee4d8d8907c2973019277c5e9a011d82181f95b.tar.xz
RapidshareCom premium fix
Diffstat (limited to 'module')
-rw-r--r--module/RequestFactory.py5
-rw-r--r--module/plugins/accounts/RapidshareCom.py24
-rw-r--r--module/plugins/hoster/RapidshareCom.py2
3 files changed, 23 insertions, 8 deletions
diff --git a/module/RequestFactory.py b/module/RequestFactory.py
index f66dfaf5d..975356254 100644
--- a/module/RequestFactory.py
+++ b/module/RequestFactory.py
@@ -21,6 +21,7 @@ from threading import Lock
from module.network.Request import Request
from module.network.XdccRequest import XdccRequest
from module.network.FtpRequest import FtpRequest
+from time import time
import pycurl
class RequestFactory():
@@ -81,3 +82,7 @@ class CookieJar():
def getCookie(self, name):
return self.parseCookie(name)
+
+ def setCookie(self, domain, name, value, path="/", exp=time()+3600*24*180):
+ s = ".%s TRUE %s FALSE %s %s %s" % (domain, path, exp, name, value)
+ self.cookies[name] = s
diff --git a/module/plugins/accounts/RapidshareCom.py b/module/plugins/accounts/RapidshareCom.py
index f494b17be..016c084c9 100644
--- a/module/plugins/accounts/RapidshareCom.py
+++ b/module/plugins/accounts/RapidshareCom.py
@@ -36,7 +36,7 @@ class RapidshareCom(Account):
if not data:
return
api_url_base = "http://api.rapidshare.com/cgi-bin/rsapi.cgi"
- api_param_prem = {"sub": "getaccountdetails_v1", "type": "prem", "login": data[0], "password": data[1]}
+ api_param_prem = {"sub": "getaccountdetails_v1", "type": "prem", "login": data[0], "password": data[1], "withcookie": 1}
src = req.load(api_url_base, cookies=False, get=api_param_prem)
if src.startswith("ERROR"):
return
@@ -47,16 +47,26 @@ class RapidshareCom(Account):
continue
k, v = t.split("=")
info[k] = v
- out = {"validuntil":int(info["validuntil"]), "login":str(info["accountid"]), "trafficleft":int(info["premkbleft"]), "type":self.__name__}
- if int(info["plustrafficmode"]) == 1 or int(info["plustrafficmode"]) == 3:
- out["trafficleft"] += int(info["bodkb"])
- if int(info["plustrafficmode"]) == 2 or int(info["plustrafficmode"]) == 3:
- out["trafficleft"] += 15*1024*int(info["ppoints"])
+ out = {"validuntil":None, "login":str(info["accountid"]), "trafficleft":int(info["tskb"]), "type":self.__name__}
+
return out
def login(self):
for account in self.accounts:
req = self.core.requestFactory.getRequest(self.__name__, account[0])
- html = req.load("https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi", post={"login":account[0], "password":account[1], "uselandingpage":1}, cookies=True)
+ api_url_base = "http://api.rapidshare.com/cgi-bin/rsapi.cgi"
+ api_param_prem = {"sub": "getaccountdetails_v1", "type": "prem", "login": account[0], "password": account[1], "withcookie": 1}
+ src = req.load(api_url_base, cookies=False, get=api_param_prem)
+ if src.startswith("ERROR"):
+ return
+ fields = src.split("\n")
+ info = {}
+ for t in fields:
+ if not t.strip():
+ continue
+ k, v = t.split("=")
+ info[k] = v
+ cj = self.core.requestFactory.getCookieJar(self.__name__, account[0])
+ cj.setCookie("rapidshare.com", "enc", info["cookie"])
diff --git a/module/plugins/hoster/RapidshareCom.py b/module/plugins/hoster/RapidshareCom.py
index 63058b044..062923ff6 100644
--- a/module/plugins/hoster/RapidshareCom.py
+++ b/module/plugins/hoster/RapidshareCom.py
@@ -52,7 +52,7 @@ class RapidshareCom(Hoster):
if self.usePremium:
info = self.account.getAccountInfo(self.account.getAccountData(self)[0])
- self.logger.info(_("%s: Use Premium Account (%sGB left)") % (self.__name__, info["trafficleft"]/1024/1024))
+ self.logger.info(_("%s: Use Premium Account (%sGB left)") % (self.__name__, info["trafficleft"]/1000/1000))
if self.api_data["size"] / 1024 > info["trafficleft"]:
self.logger.info(_("%s: Not enough traffic left" % self.__name__))
self.usePremium = False