mirror of
https://git.linux-kernel.at/oliver/ivatar.git
synced 2025-11-15 04:28:03 +00:00
Update gravatar check to be easier and less error prone
This commit is contained in:
@@ -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":
|
||||||
|
|||||||
Reference in New Issue
Block a user