#! /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 ------------------------------------