diff --git a/common.py b/common.py index 1067fab..5869d4c 100644 --- a/common.py +++ b/common.py @@ -102,13 +102,14 @@ def signed_post(url, **kwargs): return signed_request(util.requests_post, url, **kwargs) -def signed_request(fn, url, data=None, user=None, headers=None, **kwargs): +def signed_request(fn, url, data=None, log_data=True, user=None, headers=None, **kwargs): """Wraps requests.* and adds HTTP Signature. Args: fn: :func:`util.requests_get` or :func:`util.requests_get` url: str data: optional AS2 object + log_data: boolean, whether to log full data object user: optional :class:`User` to sign request with kwargs: passed through to requests @@ -122,7 +123,8 @@ def signed_request(fn, url, data=None, user=None, headers=None, **kwargs): user = default_signature_user() if data: - logging.info(f'Sending AS2 object: {json_dumps(data, indent=2)}') + if log_data: + logging.info(f'Sending AS2 object: {json_dumps(data, indent=2)}') data = kwargs['data'] = json_dumps(data).encode() headers = copy.deepcopy(headers) diff --git a/webmention.py b/webmention.py index 5dfd37e..2f4f22b 100644 --- a/webmention.py +++ b/webmention.py @@ -132,6 +132,7 @@ class Webmention(View): error = None last_success = None + log_data = True # TODO: collect by inbox, add 'to' fields, de-dupe inboxes and recipients @@ -180,12 +181,15 @@ class Webmention(View): last_follow=json_dumps(self.source_as2)) try: - last = common.signed_post(inbox, data=self.source_as2, user=self.user) + last = common.signed_post(inbox, data=self.source_as2, + log_data=log_data, user=self.user) activity.status = 'complete' last_success = last except BaseException as e: error = e activity.status = 'error' + finally: + log_data = False activity.put()