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,