mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-15 08:04:49 +01:00
live rewrite: proxy setup refactor: ignore_proxy flag, pass proxy during constructor only
This commit is contained in:
parent
b54e4c1c06
commit
a8b4041716
@ -22,11 +22,18 @@ from rewrite_content import RewriteContent
|
||||
|
||||
#=================================================================
|
||||
class LiveRewriter(object):
|
||||
def __init__(self, is_framed_replay=False, default_proxy=None):
|
||||
def __init__(self, is_framed_replay=False, proxies=None):
|
||||
self.rewriter = RewriteContent(is_framed_replay=is_framed_replay)
|
||||
self.default_proxy = default_proxy
|
||||
if self.default_proxy:
|
||||
logging.debug('Live Rewrite via proxy ' + self.default_proxy)
|
||||
|
||||
self.proxies = proxies
|
||||
|
||||
if self.proxies:
|
||||
logging.debug('Live Rewrite via proxy ' + str(proxies))
|
||||
|
||||
if isinstance(proxies, str):
|
||||
self.proxies = {'http': proxies,
|
||||
'https': proxies}
|
||||
|
||||
else:
|
||||
logging.debug('Live Rewrite Direct (no proxy)')
|
||||
|
||||
@ -86,16 +93,14 @@ class LiveRewriter(object):
|
||||
env=None,
|
||||
req_headers=None,
|
||||
follow_redirects=False,
|
||||
proxies=None):
|
||||
ignore_proxies=False):
|
||||
|
||||
method = 'GET'
|
||||
data = None
|
||||
|
||||
if proxies == False:
|
||||
proxies = None
|
||||
elif not proxies and self.default_proxy:
|
||||
proxies = {'http': self.default_proxy,
|
||||
'https': self.default_proxy}
|
||||
proxies = None
|
||||
if not ignore_proxies:
|
||||
proxies = self.proxies
|
||||
|
||||
if not req_headers:
|
||||
req_headers = {}
|
||||
@ -138,7 +143,7 @@ class LiveRewriter(object):
|
||||
req_headers={},
|
||||
timestamp=None,
|
||||
follow_redirects=False,
|
||||
proxies=None):
|
||||
ignore_proxies=False):
|
||||
|
||||
ts_err = url.split('///')
|
||||
|
||||
@ -153,7 +158,7 @@ class LiveRewriter(object):
|
||||
if is_http(url):
|
||||
(status_headers, stream) = self.fetch_http(url, env, req_headers,
|
||||
follow_redirects,
|
||||
proxies)
|
||||
ignore_proxies)
|
||||
else:
|
||||
(status_headers, stream) = self.fetch_local_file(url)
|
||||
|
||||
|
@ -28,21 +28,21 @@ class RewriteHandler(SearchPageWbUrlHandler):
|
||||
|
||||
LIVE_COOKIE = 'pywb.timestamp={0}; max-age=60'
|
||||
|
||||
YT_DL_TYPE = 'application/vnd.youtube-dl_formats+json'
|
||||
|
||||
youtubedl = None
|
||||
|
||||
def __init__(self, config):
|
||||
super(RewriteHandler, self).__init__(config)
|
||||
|
||||
self.default_proxy = config.get('proxyhostport')
|
||||
self.proxy = config.get('proxyhostport')
|
||||
self.rewriter = LiveRewriter(is_framed_replay=self.is_frame_mode,
|
||||
default_proxy=self.default_proxy)
|
||||
proxies=self.proxy)
|
||||
|
||||
self.head_insert_view = HeadInsertView.init_from_config(config)
|
||||
|
||||
self.live_cookie = config.get('live-cookie', self.LIVE_COOKIE)
|
||||
|
||||
self.no_proxy_range = config.get('no_proxy_range', True)
|
||||
|
||||
self.ydl = None
|
||||
|
||||
self._cache = None
|
||||
@ -74,14 +74,14 @@ class RewriteHandler(SearchPageWbUrlHandler):
|
||||
if ref_wburl_str:
|
||||
wbrequest.env['REL_REFERER'] = WbUrl(ref_wburl_str).url
|
||||
|
||||
proxies = None # default
|
||||
ignore_proxies = False
|
||||
use_206 = False
|
||||
url = None
|
||||
|
||||
readd_range = False
|
||||
cache_key = None
|
||||
|
||||
if self.default_proxy and self.no_proxy_range:
|
||||
if self.proxy:
|
||||
rangeres = wbrequest.extract_range()
|
||||
|
||||
if rangeres:
|
||||
@ -94,7 +94,7 @@ class RewriteHandler(SearchPageWbUrlHandler):
|
||||
readd_range = True
|
||||
else:
|
||||
# disables proxy
|
||||
proxies = False
|
||||
ignore_proxies = True
|
||||
|
||||
# sets cache_key only if not already cached
|
||||
cache_key = self._check_url_cache(url)
|
||||
@ -104,7 +104,7 @@ class RewriteHandler(SearchPageWbUrlHandler):
|
||||
head_insert_func=head_insert_func,
|
||||
req_headers=req_headers,
|
||||
env=wbrequest.env,
|
||||
proxies=proxies)
|
||||
ignore_proxies=ignore_proxies)
|
||||
|
||||
wbresponse = self._make_response(wbrequest, *result)
|
||||
|
||||
@ -150,8 +150,8 @@ class RewriteHandler(SearchPageWbUrlHandler):
|
||||
referrer = wbrequest.env.get('REL_REFERER')
|
||||
|
||||
def do_ping():
|
||||
proxies = {'http': self.default_proxy,
|
||||
'https': self.default_proxy}
|
||||
proxies = {'http': self.proxy,
|
||||
'https': self.proxy}
|
||||
|
||||
headers = self._live_request_headers(wbrequest)
|
||||
headers['Connection'] = 'close'
|
||||
@ -201,11 +201,11 @@ class RewriteHandler(SearchPageWbUrlHandler):
|
||||
|
||||
info = self.youtubedl.extract_info(video_url)
|
||||
|
||||
content_type = 'application/vnd.youtube-dl_formats+json'
|
||||
content_type = self.YT_DL_TYPE
|
||||
metadata = json.dumps(info)
|
||||
|
||||
if self.default_proxy:
|
||||
proxies = {'http': self.default_proxy}
|
||||
if self.proxy:
|
||||
proxies = {'http': self.proxy}
|
||||
|
||||
headers = self._live_request_headers(wbrequest)
|
||||
headers['Content-Type'] = content_type
|
||||
|
Loading…
x
Reference in New Issue
Block a user