diff --git a/pywb/warc/resolvingloader.py b/pywb/warc/resolvingloader.py index 393efc3e..3ec27e97 100644 --- a/pywb/warc/resolvingloader.py +++ b/pywb/warc/resolvingloader.py @@ -9,7 +9,7 @@ class ResolvingLoader: self.path_resolvers = make_best_resolvers(paths) self.record_loader = record_loader - def resolve_headers_and_payload(self, cdx, failed_files, cdx_loader): + def __call__(self, cdx, failed_files, cdx_loader, *args): """ Resolve headers and payload for a given capture In the simple case, headers and payload are in the same record. diff --git a/pywb/warc/test/test_loading.py b/pywb/warc/test/test_loading.py index 347a694e..79907e19 100644 --- a/pywb/warc/test/test_loading.py +++ b/pywb/warc/test/test_loading.py @@ -357,9 +357,7 @@ def load_from_cdx_test(cdx, revisit_func=load_orig_cdx, reraise=False, cdx = CDXObject(cdx) try: - (headers, stream) = resolve_loader.resolve_headers_and_payload(cdx, - failed_files, - revisit_func) + (headers, stream) = resolve_loader(cdx, failed_files, revisit_func) print headers sys.stdout.write(stream.readline()) sys.stdout.write(stream.readline()) diff --git a/pywb/webapp/handlers.py b/pywb/webapp/handlers.py index 7aa25e5d..3ad730ce 100644 --- a/pywb/webapp/handlers.py +++ b/pywb/webapp/handlers.py @@ -112,6 +112,12 @@ class WBHandler(SearchPageWbUrlHandler): create_template(config.get('not_found_html'), 'Not Found Error')) + self.replay = self._init_replay_view(config) + + self.fallback_handler = None + self.fallback_name = config.get('fallback') + + def _init_replay_view(self, config): cookie_maker = config.get('cookie_maker') record_loader = ArcWarcRecordLoader(cookie_maker=cookie_maker) @@ -120,10 +126,7 @@ class WBHandler(SearchPageWbUrlHandler): resolving_loader = ResolvingLoader(paths=paths, record_loader=record_loader) - self.replay = ReplayView(resolving_loader, config) - - self.fallback_handler = None - self.fallback_name = config.get('fallback') + return ReplayView(resolving_loader, config) def resolve_refs(self, handler_dict): if self.fallback_name: diff --git a/pywb/webapp/replay_views.py b/pywb/webapp/replay_views.py index 74a5ba6f..5fe22d26 100644 --- a/pywb/webapp/replay_views.py +++ b/pywb/webapp/replay_views.py @@ -1,4 +1,6 @@ import re +import logging + from io import BytesIO from urlparse import urlsplit @@ -87,8 +89,9 @@ class ReplayView(object): failed_files) except (CaptureException, ArchiveLoadFailed) as ce: - import traceback - traceback.print_exc() + #import traceback + #traceback.print_exc() + logging.debug(ce) last_e = ce pass @@ -131,10 +134,10 @@ class ReplayView(object): return response def replay_capture(self, wbrequest, cdx, cdx_loader, failed_files): - (status_headers, stream) = (self.content_loader. - resolve_headers_and_payload(cdx, - failed_files, - cdx_loader)) + (status_headers, stream) = (self.content_loader(cdx, + failed_files, + cdx_loader, + wbrequest)) # check and reject self-redirect self._reject_self_redirect(wbrequest, cdx, status_headers)