From c1d7111841330a5e18797e904194a3c71a2d2c97 Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Tue, 14 Jun 2016 00:13:01 -0400 Subject: [PATCH] webagg: store original 'source' value in cdx for properly mapping in WARC file resolver error handling: ensure 'last_exc' is a string --- webagg/app.py | 2 ++ webagg/responseloader.py | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/webagg/app.py b/webagg/app.py index cb5e8bb0..38177fa0 100644 --- a/webagg/app.py +++ b/webagg/app.py @@ -74,6 +74,8 @@ class ResAggApp(object): res = self.json_encode(res, out_headers) if errs: + if 'last_exc' in errs: + errs['last_exc'] = str(errs['last_exc']) out_headers['ResErrors'] = json.dumps(errs) start_response('200 OK', list(out_headers.items())) diff --git a/webagg/responseloader.py b/webagg/responseloader.py index 00f01069..5a8326b0 100644 --- a/webagg/responseloader.py +++ b/webagg/responseloader.py @@ -187,7 +187,8 @@ class WARCPathLoader(BaseLoader): if not cdx.get('filename') or cdx.get('offset') is None: return None - cdx._formatter = ParamFormatter(params, cdx.get('source')) + orig_source = cdx.get('source', '').split(':')[0] + cdx._formatter = ParamFormatter(params, orig_source) failed_files = [] headers, payload = (self.resolve_loader.