#!/usr/bin/env python # # "blogava" - blogger avatar fetch - MS-potilas 2.11.2011 # # fetch profile image from blogger user id. usage: # http://avafavico.appspot.com/?userid=01234567890 # # This is like my first python app, so it may not be too shiny... but it works # import cgi import re from google.appengine.api import images from google.appengine.api import urlfetch from google.appengine.api import memcache def getFavico(domain): # first check cache result = memcache.get(key=domain) if result is None: result = urlfetch.fetch("http://www.google.com/s2/favicons?domain=" + domain) memcache.add(key=domain, value=result, time=14400) return result def main(): form = cgi.FieldStorage(keep_blank_values = True) userid = form.getfirst("userid") if( userid == None ): print "Content-Type: html" print "Cache-Control: max-age=14400" print print 'BlogAvaApplication to return small icon from Blogger profile, by MS-potilas 2011. Usage: ?userid=USERID. See yabtb.blogspot.com.' return 0 if not re.match('^\d+$', userid): print "Content-Type: text" print print "invalid userid" return 1 # first check cache thedata = memcache.get(key=userid) if thedata is None: domain = "www.blogger.com" # fallback favico url = "http://www.blogger.com/profile/"+userid result = urlfetch.fetch(url) if result.status_code == 200: found = re.search('