#!/usr/bin/python import cgi, os, os.path, sys, time import parseGuildData import cgitb; cgitb.enable(1, '/home/gregstoll/public_html/gwyddentelaid/data/') # http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/146306 # http://python.active-venture.com/lib/node403.html # http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/273844 from logging import getLogger, shutdown, Logger, Formatter, CRITICAL, ERROR, WARNING, INFO, DEBUG, NOTSET from logging.handlers import RotatingFileHandler recordFiles = False lockFileName = 'data/datalock' form = cgi.FieldStorage() fileitem = form['file'] log = getLogger('receiveGuildData') filename = 'data/receiveGuildData.log' recorder = RotatingFileHandler(filename, 'a', 50000, 5) formatter = Formatter('%(asctime)s, %(levelname)-8s, %(message)s') recorder.setLevel(DEBUG) recorder.setFormatter(formatter) log.addHandler(recorder) log.setLevel(DEBUG) if (fileitem.file): lockFileHandle = open(lockFileName, 'w') lockFileHandle.write('locked') lockFileHandle.close() try: #print "Content-type: text/plain\n\n" #print "Got file:\n" #for line in fileitem.file.readlines(): # print line if (recordFiles): log.info("Recording file") recordFilename = 'data/recordedfile%d.lua' % (int(time.mktime(time.localtime()))) recordedFile = open(recordFilename, 'w') for line in fileitem.file.readlines(): recordedFile.write(line) recordedFile.close() log.info("about to parse file") parseGuildData.updateGuildFile(fileitem.file, 'utf_7') log.info("OK") except: os.remove(lockFileName) log.info("Got an exception!") print "Content-type: text/plain\n\n" print "An error occurred" #sys.exit(1) raise os.remove(lockFileName) print "Content-type: text/plain\n\n" print "OK"