#! /usr/bin/python2.2
#------------------------------------------------------------------------
# name:
# author: J Skinner
# Date Written:
# Purpose:
# Notes
#------------------------------------------------------------------------
#------------------------ GLOBALS ------------------------------------
DEBUG_MAIN = 0
DEBUG = 0
IS_CGI = 1
IS_DB = 1
#------------------------ IMPORTS ------------------------------------
import string
import os
import sys
import cgi
import traceback
import access
#import cookie
from auth import Auth
from page import Page
from the_form import The_Form
from constants import *
#------------------------ GLOBALS ----------------------------------
HEADER_BLOCK = '''\
Content-type: text/html
%(cookie)s
'''
#------------------------ CODE ------------------------------------
def upload(db, auth, form_data):
if form_data.filename:
has_blob = 1
else:
has_blob = 0
the_id = db.put('document_info', {'pub_date':form_data.pub_date,
'title':form_data.title, 'short_desc':form_data.short_desc,
'long_desc':form_data.long_desc, 'has_blob':has_blob})
if type(form_data.authors) is not type([]):
db.put('doc_auth', {'document_id':str(the_id),
'author_id':str(form_data.authors)})
else:
for i in form_data.authors:
db.put('doc_auth', {'doc_id':str(the_id), 'author_id':str(i)})
# for i in [_i.strip() for _i in form_data.keywords.split(',')]:
# try:
# keyword_id = db.get('keywords', ['keyword_id'],
# where='keyword="%s"'%i)
# except db.NO_DATA:
# keyword_id = db.put('keywords', {'keyword':i})
# db.put('kw_doc', {'doc_id':the_id, 'keyword_id':keyword_id})
print 'content-type: text/html'
print
print form_data.filename_name
db.put('document_data', {'doc_id':the_id, 'the_doc':form_data.filename,
'filename':form_data.filename_name})
form_data.action = 'upload_success'
return 1, UPLOAD_SUCCESS
def get_xtra_info(form):
xtra_info = {}
for i in form.keys():
try:
xtra_info[i] = form[i].value
except:
print 'content-type: text/html'
print
print form[i]
print i
if xtra_info != {}:
return xtra_info
else:
return None
def main():
# print 'Content-type: text/html'
# print
db = access.Access(dbname='pysocks', user='crypt')
page_info = None
form = cgi.FieldStorage()
form_data = The_Form()
form_data.get_values_from_form(form)
auth = Auth(db, form_data)
#status, page_id = auth.login_check()
page_id = None
xtra_info = get_xtra_info(form)
if form_data.action == 'upload':
res, page_id = upload(db, auth, form_data)
elif form_data.action == 'download':
the_page = Page(1, db, auth, page_info, xtra_info)
return
if form_data.action == 'show_author':
page_id = 800
if form.has_key('page') or form.has_key('action'):
if page_id == None: page_id =form['page'].value
the_page = Page(page_id, db, auth, page_info, xtra_info)
else:
# render the default page
the_page = Page(1, db, auth, page_info, xtra_info)
# output the actual page
the_page.show()
#------------------------------------------------------------------------
if (DEBUG_MAIN):
try:
main()
except SystemExit:
pass
except:
# errMessage("an unkown error has occurred program terminating")
sys.stderr = sys.stdout
print '\n\n<PRE>'
traceback.print_exc()
else:
main()
#------------------------ END ------------------------------------