2
2
import hashlib
3
3
4
4
# Third Party (PyPI) Imports
5
+ import requests
5
6
import six .moves .urllib as urllib
6
7
7
8
# Django Imports
11
12
# http://en.gravatar.com/site/implement/images/
12
13
GRAVATAR_URL_PROTOCOL = 'https' if settings .SECURE_SSL_HOST or settings .SECURE_SSL_REDIRECT else 'http'
13
14
GRAVATAR_URL_PREFIX = getattr (settings , 'GRAVATAR_URL_PREFIX' , '%s://%s' % (GRAVATAR_URL_PROTOCOL , 'www.gravatar.com' ,))
14
- GRAVATAR_DEFAULT_IMAGE = getattr (settings , 'GRAVATAR_DEFAULT_IMAGE' , 'mm ' )
15
+ GRAVATAR_DEFAULT_IMAGE = getattr (settings , 'GRAVATAR_DEFAULT_IMAGE' , 'mp ' )
15
16
GRAVATAR_DEFAULT_SIZE = 80
16
17
17
18
@@ -24,7 +25,11 @@ def get_gravatar_hash(email):
24
25
return gravatar_hash
25
26
26
27
27
- def get_gravatar_for_email (email , size = GRAVATAR_DEFAULT_SIZE ):
28
+ def get_gravatar_for_email (email , size = GRAVATAR_DEFAULT_SIZE , default = GRAVATAR_DEFAULT_IMAGE ):
29
+ return build_gravatar_url_for_email (email , size = GRAVATAR_DEFAULT_SIZE , default = GRAVATAR_DEFAULT_IMAGE )
30
+
31
+
32
+ def build_gravatar_url_for_email (email , size = GRAVATAR_DEFAULT_SIZE , default = GRAVATAR_DEFAULT_IMAGE ):
28
33
"""
29
34
https://en.gravatar.com/site/implement/images/
30
35
"""
@@ -40,7 +45,14 @@ def get_gravatar_for_email(email, size=GRAVATAR_DEFAULT_SIZE):
40
45
url += urllib .parse .urlencode (
41
46
{
42
47
's' : str (size ),
43
- 'default' : GRAVATAR_DEFAULT_IMAGE ,
48
+ 'default' : default ,
44
49
}
45
50
)
46
51
return url
52
+
53
+
54
+ def has_gravatar (email ):
55
+ url = get_gravatar_for_email (email , default = '404' )
56
+ response = requests .get (url )
57
+ has_gravatar = response .status_code == 200
58
+ return has_gravatar
0 commit comments