'
ret = ret + '\n'
return ret
def footer(environ,start_response):
#sess = environ['session_data']
ret = '
'
ret = ret + ''
ret = ret + ''
ret = ret + ''
return ret
def envir(dict):
ret = '\n'
#keys = dict.keys()
keys = ['HTTP_REFERER','HTTP_COOKIE','PATH_INFO']
for i in keys:
ret = ret + '
\n'
ret = ret + i + ' : '
if dict.has_key(i):
ret = ret + str(dict[i])
else:
ret = ret + 'EMPTY'
ret = ret + '
\n'
ret = ret + '\n'
return ret
def from_blender(environ,start_response):
start_response("200 OK", [('Content-Type','text/plain')])
q = environ['PATH_INFO']
tmp = string.split(q,'/')
i = tmp[-1:][0]
current_thing = index.get_uuid(i)
index.load_thing(current_thing)
#rr = str(current_thing.name) + ',' + str(current_thing.uuid) + '\n'
rr = ''
if 'download' in current_thing.children:
for i in current_thing.children['download']:
rr = rr + str(i.uuid) + ',' + str(i.name) +'\n'
return rr
sections = {
'':base,
'uuid':show_uuid,
'userlist':userlist,
'user':user,
'chunk':chunker,
'get':get,
'chomp':chomp_chunk,
}
def primary(environ,start_response):
path = environ['PATH_INFO']
if path.startswith('/blend/'):
ret = from_blender(environ,start_response)
return [ret]
if path.startswith('/thumb/'):
ret = thumb(environ,start_response)
return [ret]
if path.startswith('/get/'):
ret = get(environ,start_response)
return [ret]
if path.startswith('/style.css'):
ret = style(environ,start_response)
start_response("200 OK", [('Content-Type','text/css')])
return [ret]
if environ.has_key('HTTP_COOKIE') == 0:
" no cookie ! ! "
C = Cookie.BaseCookie()
C['_id_'] = str(uuid.uuid4())
C['_id_']['path'] = '/'
sessions[C['_id_'].value] = session_data()
for i in C.items():
headers.append(('Set-Cookie',str(i[0])+'='+str(i[1].value)))
else:
C = Cookie.BaseCookie()
C.load(environ['HTTP_COOKIE'])
id = C['_id_'].value
if sessions.has_key(id):
environ['session_data'] = sessions[id]
else:
" expired session "
#sessions[id] = session_data()
#environ['session_data'] = sessions[id]
C = Cookie.BaseCookie()
C['_id_'] = str(uuid.uuid4())
C['_id_']['path'] = '/'
sessions[C['_id_'].value] = session_data()
for i in C.items():
headers.append(('Set-Cookie',str(i[0])+'='+str(i[1].value)))
ret = header(environ,start_response)
tmp = string.split(path,'/')
if sections.has_key(tmp[1]):
ret = ret + sections[tmp[1]](environ,start_response)
if environ.has_key('session_data'):
sess = environ['session_data']
ret = ret + ''
ret = ret + ''
#ret = ret + envir(environ)
#ret = ret + str(sess.marked.keys())
ret = ret + str(sessions)
ret = ret + footer(environ,start_response)
return [ret]
else:
start_response("404 NOT FOUND",headers)
return ['not found']
httpd = make_server('', 8000, primary)
print "Serving HTTP on port 8000..."
# Respond to requests until process is killed
httpd.serve_forever()