From 52d99aef57012e7687bffbf0f163515e0a6db76f Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Mon, 17 Mar 2014 17:35:10 -0700 Subject: [PATCH] misc fixes: RemoteCDXServer throws NotFoundException on 404 fix typo in handlers make WBHandler overridable in pywb_init make perms_policy optional in IndexReader --- pywb/cdx/cdxsource.py | 5 ++++- pywb/core/handlers.py | 2 +- pywb/core/indexreader.py | 2 +- pywb/core/pywb_init.py | 4 +++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/pywb/cdx/cdxsource.py b/pywb/cdx/cdxsource.py index ec63c1c8..04592c3e 100644 --- a/pywb/cdx/cdxsource.py +++ b/pywb/cdx/cdxsource.py @@ -1,7 +1,7 @@ from pywb.utils.binsearch import iter_range from pywb.utils.loaders import SeekableTextFileReader -from pywb.utils.wbexception import AccessException +from pywb.utils.wbexception import AccessException, NotFoundException from query import CDXQuery import urllib @@ -72,6 +72,9 @@ class RemoteCDXSource(CDXSource): else 'Excluded') raise AccessException(msg) + elif e.code == 404: + msg = 'No Captures found for: ' + query.url + raise NotFoundException(msg) else: raise diff --git a/pywb/core/handlers.py b/pywb/core/handlers.py index a3e2f077..6fa726a3 100644 --- a/pywb/core/handlers.py +++ b/pywb/core/handlers.py @@ -26,7 +26,7 @@ class WBHandler(WbUrlHandler): self.query_view = html_view if not self.query_view: - self.query_view = text_query_view + self.query_view = self.text_query_view self.search_view = search_view diff --git a/pywb/core/indexreader.py b/pywb/core/indexreader.py index e14f1d21..a605f479 100644 --- a/pywb/core/indexreader.py +++ b/pywb/core/indexreader.py @@ -12,7 +12,7 @@ class IndexReader(object): Creates an appropriate query based on wbrequest type info """ - def __init__(self, cdx_server, perms_policy): + def __init__(self, cdx_server, perms_policy=None): self.cdx_server = cdx_server self.perms_policy = perms_policy diff --git a/pywb/core/pywb_init.py b/pywb/core/pywb_init.py index 2485be00..1b3c28d4 100644 --- a/pywb/core/pywb_init.py +++ b/pywb/core/pywb_init.py @@ -106,7 +106,9 @@ def create_wb_handler(cdx_server, config, ds_rules_file=None): search_view = load_template_file(config.get('search_html'), 'Search Page') - wb_handler = WBHandler( + wb_handler_class = config.get('wb_handler_class', WBHandler) + + wb_handler = wb_handler_class( cdx_server, replayer, html_view=html_view,