本文整理汇总了Python中pywb.framework.wbrequestresponse.WbResponse类的典型用法代码示例。如果您正苦于以下问题:Python WbResponse类的具体用法?Python WbResponse怎么用?Python WbResponse使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了WbResponse类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: handle_cert_install
def handle_cert_install(self, env):
if env['pywb.proxy_req_uri'] in ('/', '/index.html', '/index.html'):
available = (self.ca is not None)
if self.proxy_cert_dl_view:
return (self.proxy_cert_dl_view.
render_response(available=available,
pem_path=self.CERT_DL_PEM,
p12_path=self.CERT_DL_P12))
elif env['pywb.proxy_req_uri'] == self.CERT_DL_PEM:
if not self.ca:
return None
buff = ''
with open(self.ca.ca_file, 'rb') as fh:
buff = fh.read()
content_type = 'application/x-x509-ca-cert'
return WbResponse.text_response(buff,
content_type=content_type)
elif env['pywb.proxy_req_uri'] == self.CERT_DL_P12:
if not self.ca:
return None
buff = self.ca.get_root_PKCS12()
content_type = 'application/x-pkcs12'
return WbResponse.text_response(buff,
content_type=content_type)
开发者ID:robertknight,项目名称:pywb,代码行数:33,代码来源:proxy.py
示例2: _get_video_info
def _get_video_info(self, wbrequest, info_url=None, video_url=None):
if not video_url:
video_url = wbrequest.wb_url.url
if not info_url:
info_url = wbrequest.wb_url.url
cache_key = None
if self.recording:
cache_key = self._get_cache_key('v:', video_url)
info = self.live_fetcher.get_video_info(video_url)
if info is None: #pragma: no cover
msg = ('youtube-dl is not installed, pip install youtube-dl to ' +
'enable improved video proxy')
return WbResponse.text_response(text=msg, status='404 Not Found')
#if info and info.formats and len(info.formats) == 1:
content_type = self.YT_DL_TYPE
metadata = json.dumps(info)
if (self.recording and cache_key):
headers = self._live_request_headers(wbrequest)
headers['Content-Type'] = content_type
if info_url.startswith('https://'):
info_url = info_url.replace('https', 'http', 1)
response = self.live_fetcher.add_metadata(info_url, headers, metadata)
self._cache[cache_key] = '1'
return WbResponse.text_response(metadata, content_type=content_type)
开发者ID:Orbiter,项目名称:pywb,代码行数:35,代码来源:live_rewrite_handler.py
示例3: test_resp_2
def test_resp_2():
resp = vars(WbResponse.bin_stream([b'Test', b'Another'], content_type='text/plain; charset=utf-8', status='404'))
expected = {'body': [b'Test', b'Another'], 'status_headers': StatusAndHeaders(protocol = '', statusline = '404',
headers = [('Content-Type', 'text/plain; charset=utf-8')])}
assert(resp == expected)
开发者ID:chdorner,项目名称:pywb,代码行数:7,代码来源:test_wbrequestresponse.py
示例4: test_resp_1
def test_resp_1():
resp = vars(WbResponse.text_response('Test'))
expected = {'body': [b'Test'], 'status_headers': StatusAndHeaders(protocol = '', statusline = '200 OK',
headers = [('Content-Type', 'text/plain; charset=utf-8'), ('Content-Length', '4')])}
assert(resp == expected)
开发者ID:chdorner,项目名称:pywb,代码行数:7,代码来源:test_wbrequestresponse.py
示例5: __call__
def __call__(self, wbrequest):
url = wbrequest.wb_url_str.split('?')[0]
full_path = self.static_path + url
try:
data = self.block_loader.load(full_path)
data.seek(0, 2)
size = data.tell()
data.seek(0)
headers = [('Content-Length', str(size))]
if 'wsgi.file_wrapper' in wbrequest.env:
reader = wbrequest.env['wsgi.file_wrapper'](data)
else:
reader = iter(lambda: data.read(), '')
content_type = 'application/octet-stream'
guessed = mimetypes.guess_type(full_path)
if guessed[0]:
content_type = guessed[0]
return WbResponse.text_stream(reader,
content_type=content_type,
headers=headers)
except IOError:
raise NotFoundException('Static File Not Found: ' +
wbrequest.wb_url_str)
开发者ID:robertknight,项目名称:pywb,代码行数:30,代码来源:handlers.py
示例6: render_response
def render_response(self, status='200 OK', content_type='text/html; charset=utf-8', **template_kwargs):
template_context = dict(
template_kwargs,
status=status,
content_type=content_type)
template_result = loader.render_to_string(self.filename, template_context, request=self.fake_request)
return WbResponse.text_response(unicode(template_result), status=status, content_type=content_type)
开发者ID:ikreymer,项目名称:perma,代码行数:7,代码来源:pywb_config.py
示例7: render_response
def render_response(self, **kwargs):
template_result = self.render_to_string(**kwargs)
status = kwargs.get('status', '200 OK')
content_type = kwargs.get('content_type', 'text/html; charset=utf-8')
return WbResponse.text_response(template_result,
status=status,
content_type=content_type)
开发者ID:chdorner,项目名称:pywb,代码行数:7,代码来源:views.py
示例8: render_search_page
def render_search_page(self, wbrequest, **kwargs):
if self.search_view:
return self.search_view.render_response(wbrequest=wbrequest,
prefix=wbrequest.wb_prefix,
**kwargs)
else:
return WbResponse.text_response('No Lookup Url Specified')
开发者ID:jasonliw93,项目名称:recon,代码行数:7,代码来源:handlers.py
示例9: __call__
def __call__(self, wbrequest):
params = self.extract_params_from_wsgi_env(wbrequest.env)
cdx_iter = self.index_handler.load_cdx(wbrequest, params)
return WbResponse.text_stream(cdx_iter,
content_type='text/plain')
开发者ID:chdorner,项目名称:pywb,代码行数:7,代码来源:cdx_api_handler.py
示例10: __call__
def __call__(self, wbrequest):
"""
If someone requests a bare GUID url like /warc/1234-5678/, forward them to the submitted_url playback for that GUID.
"""
if wbrequest.wb_url_str == '/':
return WbResponse.redir_response("%s/%s/%s" % (settings.WARC_ROUTE, wbrequest.custom_params['guid'], wbrequest.custom_params['url']), status='301 Moved Permanently')
return super(PermaGUIDHandler, self).__call__(wbrequest)
开发者ID:ikreymer,项目名称:perma,代码行数:7,代码来源:pywb_config.py
示例11: render_response
def render_response(self, **kwargs):
template_result = self.render_to_string(**dict(kwargs,
STATIC_URL=settings.STATIC_URL,
DEBUG=settings.DEBUG))
status = kwargs.get('status', '200 OK')
content_type = kwargs.get('content_type', 'text/html; charset=utf-8')
return WbResponse.text_response(template_result.encode('utf-8'), status=status, content_type=content_type)
开发者ID:allmende,项目名称:perma,代码行数:7,代码来源:pywb_config.py
示例12: __call__
def __call__(self, wbrequest):
wb_url = wbrequest.wb_url
res = redis_client.get_all_embeds(wb_url)
return WbResponse.text_response(json.dumps(res),
content_type='application/json')
开发者ID:theletterf,项目名称:memento-reconstruct,代码行数:7,代码来源:mementohandler.py
示例13: make_cdx_response
def make_cdx_response(self, wbrequest, cdx_iter, output, **kwargs):
# if not text, the iterator is assumed to be CDXObjects
if output and output != 'text':
view = self.views.get(output)
if view:
return view.render_response(wbrequest, cdx_iter, **kwargs)
return WbResponse.text_stream(cdx_iter)
开发者ID:jcushman,项目名称:pywb,代码行数:8,代码来源:query_handler.py
示例14: test_resp_3
def test_resp_3():
resp = vars(WbResponse.redir_response('http://example.com/otherfile'))
expected = {'body': [], 'status_headers': StatusAndHeaders(protocol = '', statusline = '302 Redirect',
headers = [('Location', 'http://example.com/otherfile'), ('Content-Length', '0')])}
assert(resp == expected)
开发者ID:chdorner,项目名称:pywb,代码行数:8,代码来源:test_wbrequestresponse.py
示例15: make_redir_response
def make_redir_response(self, url, headers=None):
if not headers:
headers = []
if self.extra_headers:
for name, value in six.iteritems(self.extra_headers):
headers.append((name, value))
return WbResponse.redir_response(url, headers=headers)
开发者ID:eriknstr,项目名称:pywb,代码行数:9,代码来源:proxy_resolvers.py
示例16: __call__
def __call__(self, wbrequest):
params = self.extract_params_from_wsgi_env(wbrequest.env)
try:
cdx_iter = self.index_handler.load_cdx(wbrequest, params)
except NotFoundException:
msg = 'No Captures found for: ' + params.get('url')
if params.get('output') == 'json':
msg = json.dumps(dict(error=msg))
content_type='application/json'
else:
content_type='text/plain'
return WbResponse.text_response(msg, content_type=content_type,
status='404 Not Found')
return WbResponse.text_stream(cdx_iter,
content_type='text/plain')
开发者ID:daleathan,项目名称:pywb,代码行数:18,代码来源:cdx_api_handler.py
示例17: test_resp_4
def test_resp_4():
resp = vars(WbResponse.text_response('Test').add_range(10, 4, 100))
expected = {'body': [b'Test'], 'status_headers': StatusAndHeaders(protocol = '', statusline = '206 Partial Content',
headers = [ ('Content-Type', 'text/plain; charset=utf-8'),
('Content-Length', '4'),
('Content-Range', 'bytes 10-13/100'),
('Accept-Ranges', 'bytes')])}
assert(resp == expected)
开发者ID:chdorner,项目名称:pywb,代码行数:10,代码来源:test_wbrequestresponse.py
示例18: _get_video_info
def _get_video_info(self, wbrequest, info_url=None, video_url=None):
if not self.youtubedl:
self.youtubedl = YoutubeDLWrapper()
if not video_url:
video_url = wbrequest.wb_url.url
if not info_url:
info_url = wbrequest.wb_url.url
cache_key = None
if self.proxies:
cache_key = self._get_cache_key('v:', video_url)
info = self.youtubedl.extract_info(video_url)
if info is None: #pragma: no cover
msg = ('youtube-dl is not installed, pip install youtube-dl to ' +
'enable improved video proxy')
return WbResponse.text_response(text=msg, status='404 Not Found')
#if info and info.formats and len(info.formats) == 1:
content_type = self.YT_DL_TYPE
metadata = json.dumps(info)
if (self.proxies and cache_key):
headers = self._live_request_headers(wbrequest)
headers['Content-Type'] = content_type
info_url = HttpsUrlRewriter.remove_https(info_url)
response = requests.request(method='PUTMETA',
url=info_url,
data=metadata,
headers=headers,
proxies=self.proxies,
verify=False)
self._cache[cache_key] = '1'
return WbResponse.text_response(metadata, content_type=content_type)
开发者ID:robertknight,项目名称:pywb,代码行数:42,代码来源:live_rewrite_handler.py
示例19: check_single_url
def check_single_url(self, wbrequest, perms_checker):
urlkey = self.url_canon(wbrequest.wb_url.url)
if not perms_checker.allow_url_lookup(urlkey):
response_text = BLOCK
else:
response_text = ALLOW
#TODO: other types of checking
return WbResponse.text_response(response_text,
content_type=RESPONSE_TYPE)
开发者ID:Orbiter,项目名称:pywb,代码行数:11,代码来源:perms_handler.py
示例20: _make_response
def _make_response(self, wbrequest, status_headers, gen, is_rewritten):
# only redirect for non-identity and non-embeds
if not wbrequest.wb_url.is_embed and not wbrequest.wb_url.is_identity:
content_type = status_headers.get_header("Content-Type")
tpl_name = self.templates.get(content_type)
if tpl_name is not None:
tpl = env.get_template(tpl_name)
result = tpl.render(url=wbrequest.wb_url.url)
return WbResponse.text_response(result.encode("utf-8-sig"), content_type="text/html")
return super(TemplateRewriteHandler, self)._make_response(wbrequest, status_headers, gen, is_rewritten)
开发者ID:robertknight,项目名称:via,代码行数:12,代码来源:rewriter.py
注:本文中的pywb.framework.wbrequestresponse.WbResponse类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论