Gravatar support

This commit is contained in:
Colin Davis 2011-08-30 21:57:51 -04:00
parent aab3c87d8b
commit 3c1f8c7c17

View File

@ -10,11 +10,13 @@ import tornado.escape
import socket import socket
import re import re
import os import os
import md5
import pprint import pprint
import Image import Image
import hashlib import hashlib
import urllib import urllib
import random import random
import urllib2
from tornado.options import define, options from tornado.options import define, options
try: try:
from hashlib import md5 as md5_func from hashlib import md5 as md5_func
@ -220,7 +222,7 @@ class ImgHandler(tornado.web.RequestHandler):
#Create a hash for the string as given #Create a hash for the string as given
if string is None: if string is None:
string = self.request.remote_ip string = self.request.remote_ip
string = urllib.quote_plus(string) # string = urllib.quote_plus(string)
if "ignoreext" in self.request.arguments: if "ignoreext" in self.request.arguments:
client_ignoreext = tornado.escape.xhtml_escape(self.get_argument("ignoreext")) client_ignoreext = tornado.escape.xhtml_escape(self.get_argument("ignoreext"))
@ -256,8 +258,6 @@ class ImgHandler(tornado.web.RequestHandler):
sizex = 300 sizex = 300
sizey = 300 sizey = 300
if "size" in self.request.arguments: if "size" in self.request.arguments:
sizelist = self.get_argument("size").split(tornado.escape.xhtml_escape("x"),3) sizelist = self.get_argument("size").split(tornado.escape.xhtml_escape("x"),3)
@ -266,6 +266,23 @@ class ImgHandler(tornado.web.RequestHandler):
if ((int(sizelist[0]) > 0) and (int(sizelist[0]) < 4096)): if ((int(sizelist[0]) > 0) and (int(sizelist[0]) < 4096)):
sizey = int(sizelist[1]) sizey = int(sizelist[1])
if "gravatar" in self.request.arguments:
if tornado.escape.xhtml_escape(self.get_argument("gravatar")) == 'yes':
default = "404"
# construct the url
gravatar_url = "http://www.gravatar.com/avatar.php?"
gravatar_url += urllib.urlencode({'gravatar_id':hashlib.md5(string.lower()).hexdigest(), 'default':default, 'size':str(sizey)})
try:
f = urllib2.urlopen(urllib2.Request(gravatar_url))
self.redirect(gravatar_url, permanent=False)
return 0
except:
badGravatar = True
if "set" in self.request.arguments: if "set" in self.request.arguments:
if tornado.escape.xhtml_escape(self.get_argument("set")) == 'any': if tornado.escape.xhtml_escape(self.get_argument("set")) == 'any':
client_set = sets[r.hasharray[1] % len(sets) ] client_set = sets[r.hasharray[1] % len(sets) ]