#!/usr/bin/env python
#
# Copyright 2011 Pluric
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
import tornado.escape
import socket
import re
import os
import pprint
import Image
import random
try:
from hashlib import md5 as md5_func
except ImportError:
from md5 import new as md5_func
def getPNG(path):
completelist = []
locallist = []
for ls in os.listdir(path):
if not ls.startswith("."):
if os.path.isdir(path + "/" + ls):
subfiles = getPNG(path + "/" + ls)
if subfiles is not None:
completelist = completelist + subfiles
else:
locallist.append( path + "/" + ls)
if len(locallist) > 0:
luckyelement = locallist[random.randrange(0,len(locallist))]
locallist = []
locallist.append(luckyelement)
completelist = completelist + locallist
return completelist
class MainHandler(tornado.web.RequestHandler):
def get(self):
#Generate a robohash-
hashlist = getPNG(random.choice(['blue','brown','green','orange','grey','pink','purple','red','white','yellow']))
hashlist.sort()
robohash = Image.open(hashlist[0])
for png in hashlist:
img = Image.open(png)
robohash.paste(img,(0,0),img)
robohash.save("/opt/robohash/static/images/out.png")
self.write("Running in Random mode:
")
self.write("
")
application = tornado.web.Application([
(r"/", MainHandler),
(r"/images/(.*)", tornado.web.StaticFileHandler, {"path": os.path.join(os.path.dirname(__file__),
"static/images")}),
])
if __name__ == "__main__":
application.listen(8080)
tornado.ioloop.IOLoop.instance().start()