diff --git a/progit/lib.py b/progit/lib.py index 77ed739..33f5105 100644 --- a/progit/lib.py +++ b/progit/lib.py @@ -850,3 +850,29 @@ def update_git_ticket(issue, repo, ticketfolder): # Remove the clone shutil.rmtree(newpath) + + +def avatar_url(username, size=64, default='retro'): + openid = "http://%s.id.fedoraproject.org/" % username + return avatar_url_from_openid(openid, size, default) + + +def avatar_url_from_openid(openid, size=64, default='retro', dns=False): + """ + Our own implementation since fas doesn't support this nicely yet. + """ + + if dns: # pragma: no cover + # This makes an extra DNS SRV query, which can slow down our webapps. + # It is necessary for libravatar federation, though. + import libravatar + return libravatar.libravatar_url( + openid=openid, + size=size, + default=default, + ) + else: + import urllib, hashlib + query = urllib.urlencode({'s': size, 'd': default}) + hash = hashlib.sha256(openid).hexdigest() + return "https://seccdn.libravatar.org/avatar/%s?%s" % (hash, query)