Merge branch 'devel' into 'master'

Update gravatar check to be easier and less error prone

See merge request oliver/ivatar!199
This commit is contained in:
Oliver Falk
2022-02-14 10:19:10 +00:00

View File

@@ -372,30 +372,28 @@ class GravatarProxyView(View):
# Check if the image returned by Gravatar is their default image, if so, # Check if the image returned by Gravatar is their default image, if so,
# redirect to our default instead. # redirect to our default instead.
gravatar_test_url = ( gravatar_test_url = (
"https://secure.gravatar.com/avatar/" + kwargs["digest"] + "?s=%i" % 50 "https://secure.gravatar.com/avatar/"
+ kwargs["digest"]
+ "?s=%i&d=%i" % (50, 404)
) )
if cache.get(gravatar_test_url) == "default": if cache.get(gravatar_test_url) == "default":
# DEBUG only # DEBUG only
# print("Cached Gravatar response: Default.") # print("Cached Gravatar response: Default.")
return redir_default(default) return redir_default(default)
try: try:
testdata = urlopen(gravatar_test_url, timeout=URL_TIMEOUT) urlopen(gravatar_test_url, timeout=URL_TIMEOUT)
data = BytesIO(testdata.read()) except HTTPError as exc:
if ( if exc.code == 404:
hashlib.md5(data.read()).hexdigest()
== "71bc262d627971d13fe6f3180b93062a"
):
cache.set(gravatar_test_url, "default", 60) cache.set(gravatar_test_url, "default", 60)
return redir_default(default) else:
except Exception as exc: # pylint: disable=broad-except print("Gravatar test url fetch failed: %s" % exc)
print("Gravatar test url fetch failed: %s" % exc) return redir_default(default)
gravatar_url = ( gravatar_url = (
"https://secure.gravatar.com/avatar/" "https://secure.gravatar.com/avatar/" + kwargs["digest"] + "?s=%i" % size
+ kwargs["digest"]
+ "?s=%i" % size
+ "&d=%s" % default
) )
if default:
gravatar_url += "&d=%s" % default
try: try:
if cache.get(gravatar_url) == "err": if cache.get(gravatar_url) == "err":