diff --git a/librefi/fxckers/_common.py b/librefi/fxckers/_common.py index 49cfcc3..ebbb830 100644 --- a/librefi/fxckers/_common.py +++ b/librefi/fxckers/_common.py @@ -14,7 +14,8 @@ class BaseFxcker: def FXCKER_KEY(self): return self.__class__.__name__[:-6] - def request(self, method, url, resource=None, **kwargs): + def request(self, method, url, resource=None, + follow_redirects=True, **kwargs): kwargs["cookies"] = self.cookie_jar if not kwargs.get("headers"): kwargs["headers"] = {} @@ -26,7 +27,11 @@ class BaseFxcker: resource if resource is not None else (str(method) + " " + str(url))) req = requests.request(method, url, **kwargs) - if req.headers.get("Location"): - return self.request(method, req.headers.get("Location"), - resource=resource, **kwargs) + if follow_redirects is True and req.headers.get("Location"): + kwargs["data"] = None + kwargs["headers"]["Referer"] = url + return self.request("GET", req.headers.get("Location"), + resource=resource, + follow_redirects=follow_redirects, + **kwargs) return req