#!/usr/bin/env python

# This program is in the public domain.

import sys, os, os.path, cgi, random

def mime_type(filename):
    types = {
        "png" : "image/png",
        "jpg" : "image/jpeg",
        "jpeg": "image/jpeg",
        "gif" : "image/gif",
    }
    extension = filename[filename.rfind(".")+1:]
    return types.get(extension, "application/octet-stream")

def error(s):
    print 'Content-Type: text/plain'
    print
    print 'Error:', s
    sys.exit()

if __name__ == '__main__':
    args = cgi.FieldStorage()

    if 'directory' not in args:
        error('You must specify the "directory" parameter.')

    dir = args.getfirst('directory')

    if not os.path.isdir(dir):
        error('"%s" is not a directory' % dir)

    try:
        files = [f for f in os.listdir(dir)
                if os.path.isfile(os.path.join(dir, f))]
        if not files:
            error('The "%s" directory does not contain any valid files.' % dir)
        filename = os.path.join(dir, random.choice(files))
    except Exception, e:
        error(e)

    try:
        image = file(filename).read()
    except:
        error(e)

    print 'Content-Type:', mime_type(filename)
    print
    print image
