From ae5009c9eff1ee57ae0c73873e4ea08ee4a5b9fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Fri, 3 Mar 2017 14:42:13 +0100 Subject: [PATCH] Python 3.6: Fixed issue with gravatar function Hashing of string object doesn't work. Also added a deprecation warning that pillar.api.utils.gravatar should be used; pillar.web.utils.gravatar is just a copy. --- pillar/api/utils/__init__.py | 4 ++-- pillar/web/utils/__init__.py | 12 +++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/pillar/api/utils/__init__.py b/pillar/api/utils/__init__.py index 77fdc19c..81411445 100644 --- a/pillar/api/utils/__init__.py +++ b/pillar/api/utils/__init__.py @@ -141,10 +141,10 @@ def str2id(document_id): raise wz_exceptions.BadRequest('Invalid object ID %r' % document_id) -def gravatar(email, size=64): +def gravatar(email: str, size=64): parameters = {'s': str(size), 'd': 'mm'} return "https://www.gravatar.com/avatar/" + \ - hashlib.md5(str(email)).hexdigest() + \ + hashlib.md5(email.encode()).hexdigest() + \ "?" + urllib.parse.urlencode(parameters) diff --git a/pillar/web/utils/__init__.py b/pillar/web/utils/__init__.py index 67da2fb9..e40aa5f5 100644 --- a/pillar/web/utils/__init__.py +++ b/pillar/web/utils/__init__.py @@ -49,11 +49,13 @@ def attach_project_pictures(project, api): project.picture_header = get_file(project.picture_header, api=api) -def gravatar(email, size=64): - parameters = {'s': str(size), 'd': 'mm'} - return "https://www.gravatar.com/avatar/" + \ - hashlib.md5(str(email)).hexdigest() + \ - "?" + urllib.parse.urlencode(parameters) +def gravatar(email: str, size=64): + import warnings + warnings.warn("the pillar.web.gravatar function is deprecated; use hashlib instead", + DeprecationWarning, 2) + + from pillar.api.utils import gravatar as api_gravatar + return api_gravatar(email, size) def datetime_now():