view server.py @ 21:03c5651a371e

added banner image, uni-form, Attendees global
author Atul Varma <avarma@mozilla.com>
date Fri, 25 Jun 2010 16:00:15 -0700
parents 3197696debbe
children 1e7315233967
line wrap: on
line source

import os
import json
import datetime

from wsgiref.simple_server import make_server
from summitidp.static_file_serving import StaticFileApp
from summitidp.app import Server, TokenStore, ProfileStore
from summitidp.file_storage import FileStorage

CHALLENGE_TOKEN_LIFETIME = datetime.timedelta(days=1)
AUTH_TOKEN_LIFETIME = None

def ensure_dirs(*paths):
    for path in paths:
        if not os.path.exists(path):
            os.mkdir(path)

def send_email(email, token):
    print "Please send %s an email with the token %s." % (email, token)

def run_server(mydir, send_email=send_email):
    storage_dir = os.path.join(mydir, 'storage')
    emails_file = os.path.join(storage_dir, 'attendees.json')
    static_files_dir = os.path.join(mydir, 'static-files')
    challenge_dir = os.path.join(storage_dir, 'challenge-tokens')
    auth_dir = os.path.join(storage_dir, 'auth-tokens')
    profile_dir = os.path.join(storage_dir, 'profiles')

    ensure_dirs(storage_dir, challenge_dir, auth_dir, profile_dir)

    server = Server(
        emails=json.loads(open(emails_file).read()),
        send_email=send_email,
        delegate_404s=StaticFileApp(static_files_dir),
        challenge_tokens=TokenStore(lifetime=CHALLENGE_TOKEN_LIFETIME,
                                    mapping=FileStorage(challenge_dir)),
        auth_tokens=TokenStore(lifetime=AUTH_TOKEN_LIFETIME,
                               mapping=FileStorage(auth_dir)),
        profiles=ProfileStore(FileStorage(profile_dir))
        )

    port = 8000
    httpd = make_server('', port, server.wsgi_app)
    print 'serving on port %d' % port
    httpd.serve_forever()

if __name__ == '__main__':
    run_server(os.getcwd())