summaryrefslogtreecommitdiffstats
path: root/pyload/plugins/network
diff options
context:
space:
mode:
authorGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2014-04-21 19:26:53 +0200
committerGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2014-04-21 19:26:53 +0200
commitdb52fa001a481ab97100172bb9905fc144c8752d (patch)
treea0f9be62360ff7693c6478015a15f85bc9eb2462 /pyload/plugins/network
parentMoving new plugins from module to pyload (diff)
downloadpyload-db52fa001a481ab97100172bb9905fc144c8752d.tar.xz
updated bottle, fixed a header and referer bug
Diffstat (limited to 'pyload/plugins/network')
-rw-r--r--pyload/plugins/network/CurlRequest.py28
1 files changed, 19 insertions, 9 deletions
diff --git a/pyload/plugins/network/CurlRequest.py b/pyload/plugins/network/CurlRequest.py
index 03c049cf5..958aff466 100644
--- a/pyload/plugins/network/CurlRequest.py
+++ b/pyload/plugins/network/CurlRequest.py
@@ -42,6 +42,7 @@ bad_headers = range(400, 418) + range(500, 506)
pycurl.global_init(pycurl.GLOBAL_DEFAULT)
+
class CurlRequest(Request):
""" Request class based on libcurl """
@@ -56,6 +57,7 @@ class CurlRequest(Request):
self.rep = StringIO()
self.lastURL = None
self.lastEffectiveURL = None
+ self.header = ""
# cookiejar defines the context
self.cj = self.context
@@ -96,18 +98,20 @@ class CurlRequest(Request):
self.c.setopt(pycurl.COOKIEFILE, "")
self.c.setopt(pycurl.COOKIEJAR, "")
- #self.c.setopt(pycurl.VERBOSE, 1)
+ # self.c.setopt(pycurl.VERBOSE, 1)
self.c.setopt(pycurl.USERAGENT,
"Mozilla/5.0 (Windows NT 6.1; Win64; x64;en; rv:5.0) Gecko/20110619 Firefox/5.0")
if pycurl.version_info()[7]:
self.c.setopt(pycurl.ENCODING, "gzip, deflate")
- self.c.setopt(pycurl.HTTPHEADER, ["Accept: */*",
- "Accept-Language: en-US,en",
- "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7",
- "Connection: keep-alive",
- "Keep-Alive: 300",
- "Expect:"])
+
+ self.headers.update(
+ {"Accept": "*/*",
+ "Accept-Language": "en-US,en",
+ "Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
+ "Connection": "keep-alive",
+ "Keep-Alive": "300",
+ "Expect": ""})
def setInterface(self, options):
@@ -175,9 +179,9 @@ class CurlRequest(Request):
self.c.setopt(pycurl.POST, 0)
if referer and self.lastURL:
- self.c.setopt(pycurl.REFERER, str(self.lastURL))
+ self.headers["Referer"] = str(self.lastURL)
else:
- self.c.setopt(pycurl.HTTPHEADER, ["Referer:"])
+ self.headers["Referer"] = ""
if cookies:
for c in self.cj.output().splitlines():
@@ -190,6 +194,8 @@ class CurlRequest(Request):
if "auth" in self.options:
self.c.setopt(pycurl.USERPWD, str(self.options["auth"]))
+ self.c.setopt(pycurl.HTTPHEADER, self.headers.to_headerlist())
+
def load(self, url, get={}, post={}, referer=True, cookies=True, just_header=False, multipart=False, decode=False):
""" load and returns a given page """
@@ -199,6 +205,8 @@ class CurlRequest(Request):
self.header = ""
if "header" in self.options:
+ # TODO
+ print "custom header not implemented"
self.c.setopt(pycurl.HTTPHEADER, self.options["header"])
if just_header:
@@ -226,6 +234,8 @@ class CurlRequest(Request):
self.c.setopt(pycurl.POSTFIELDS, "")
self.lastURL = myquote(url)
self.lastEffectiveURL = self.c.getinfo(pycurl.EFFECTIVE_URL)
+ if self.lastEffectiveURL:
+ self.lastURL = self.lastEffectiveURL
self.code = self.verifyHeader()
if cookies: