gyorgy@0: gyorgy@0: import cherrypy, os, random, smtplib, string gyorgy@0: from cherrypy.lib.static import serve_file gyorgy@0: from templates import * gyorgy@0: gyorgy@0: from DirectorySession import DirectorySession gyorgy@0: from ServerWrapper import ServerWrapper as CherryPyServer gyorgy@0: from ServerWrapper import Config as ServerConfig gyorgy@0: gyorgy@0: from email.MIMEBase import MIMEBase gyorgy@0: from email.MIMEText import MIMEText gyorgy@0: from email.MIMEMultipart import MIMEMultipart gyorgy@0: from email.Utils import COMMASPACE, formatdate gyorgy@0: from email import Encoders gyorgy@0: gyorgy@0: from pprint import pprint gyorgy@0: gyorgy@0: PATH = os.path.abspath(os.path.dirname(__file__)) gyorgy@0: gyorgy@0: #audiodir = './audio' gyorgy@0: #cherrypy.session['fxs'] = [cherrypy.session['f'] for cherrypy.session['f'] in os.listdir(audiodir) if os.path.isdir(os.path.join(audiodir, cherrypy.session['f']))] gyorgy@0: #cherrypy.session['fxs'].remove('dry') gyorgy@0: #print cherrypy.session['fxs'] gyorgy@0: gyorgy@0: class Root(object): pass gyorgy@0: gyorgy@0: gyorgy@0: class HomePage: gyorgy@0: def index(self): gyorgy@0: gyorgy@0: return "move along, nothing to see here!" gyorgy@0: gyorgy@0: index.exposed = True gyorgy@0: gyorgy@0: gyorgy@0: gyorgy@0: class TestPage: gyorgy@0: gyorgy@0: def getFiles(self): gyorgy@0: audiodir = './audio' gyorgy@0: cherrypy.session['fxs'] = [cherrypy.session['f'] for cherrypy.session['f'] in os.listdir(audiodir) if os.path.isdir(os.path.join(audiodir, cherrypy.session['f']))] gyorgy@0: cherrypy.session['fxs'].remove('dry') gyorgy@0: print cherrypy.session['fxs'] gyorgy@0: gyorgy@0: def index(self): gyorgy@0: TestPage.getFiles(self) gyorgy@0: cherrypy.session['sid'] = None gyorgy@0: gyorgy@0: cherrypy.session['sid_filename'] = None gyorgy@0: gyorgy@0: gyorgy@0: if cherrypy.request.headers.has_key("X-Forwarded-For"): gyorgy@0: cherrypy.session['ip'] = cherrypy.request.headers["X-Forwarded-For"] gyorgy@0: elif cherrypy.request.headers.has_key("Remote-Addr"): gyorgy@0: cherrypy.session['ip'] = cherrypy.request.headers["Remote-Addr"] gyorgy@0: else : gyorgy@0: cherrypy.session['ip'] = None gyorgy@0: gyorgy@0: cherrypy.session['test'] = None gyorgy@0: cherrypy.session['results'] = None gyorgy@0: cherrypy.session['tests'] = None gyorgy@0: cherrypy.session['test_nr'] = None gyorgy@0: cherrypy.session['audio_pairs'] = None gyorgy@0: cherrypy.session['page'] = 0 gyorgy@0: cherrypy.session['pages'] = 6 gyorgy@0: cherrypy.session['userinfobox'] = None gyorgy@0: cherrypy.session['ts'] = None gyorgy@0: #return ''' gyorgy@0: #

gyorgy@0: # start test gyorgy@0: #

''' gyorgy@0: gyorgy@0: #take 2 examples for each effect gyorgy@0: gyorgy@0: cherrypy.session['audio_pairs'] = [] gyorgy@0: gyorgy@0: # get effected files: gyorgy@0: gyorgy@0: for cherrypy.session['fx'] in cherrypy.session['fxs']: gyorgy@0: cherrypy.session['dirlist'] = os.listdir('./audio/%s/'%cherrypy.session['fx']) gyorgy@0: cherrypy.session['filelist'] = [] gyorgy@0: for cherrypy.session['item'] in cherrypy.session['dirlist']: gyorgy@0: if cherrypy.session['item'].split('.')[-1] == 'mp3': gyorgy@0: cherrypy.session['filelist'].append(cherrypy.session['item'].split('.')[0]) gyorgy@0: gyorgy@0: # create audio pairs for this fx gyorgy@0: gyorgy@0: cherrypy.session['first'] = cherrypy.session['second'] = random.choice(cherrypy.session['filelist']) gyorgy@0: while cherrypy.session['first'] == cherrypy.session['second']: gyorgy@0: cherrypy.session['second'] = random.choice(cherrypy.session['filelist']) gyorgy@0: gyorgy@0: cherrypy.session['dry1'] = 'dry/%s' %cherrypy.session['first'].split('_%s'%cherrypy.session['fx'])[0] gyorgy@0: cherrypy.session['fx1'] = '%s/%s' %(cherrypy.session['fx'], cherrypy.session['first']) gyorgy@0: cherrypy.session['dry2'] = 'dry/%s' %cherrypy.session['second'].split('_%s'%cherrypy.session['fx'])[0] gyorgy@0: cherrypy.session['fx2'] = '%s/%s' %(cherrypy.session['fx'], cherrypy.session['second']) gyorgy@0: cherrypy.session['audio_pairs'].append([cherrypy.session['fx'], cherrypy.session['dry1'], cherrypy.session['fx1']]) gyorgy@0: cherrypy.session['audio_pairs'].append([cherrypy.session['fx'], cherrypy.session['dry2'], cherrypy.session['fx2']]) gyorgy@0: gyorgy@0: #print TestPage.audio_pairs gyorgy@0: random.shuffle(cherrypy.session['audio_pairs']) gyorgy@0: gyorgy@0: print "NUMBER OF TESTS:" gyorgy@0: print len(cherrypy.session['audio_pairs']) gyorgy@0: gyorgy@0: cherrypy.session['sid'] = cherrypy.session.get_session_path().split('/')[1] gyorgy@0: print cherrypy.session['sid'] gyorgy@0: gyorgy@0: #print cherrypy.session['audio_pairs'] gyorgy@0: pprint(cherrypy.session['audio_pairs']) gyorgy@0: gyorgy@0: return welcome_templ %cherrypy.session['sid'] gyorgy@0: gyorgy@0: gyorgy@0: def doStart(self, pageId, sessionId, startButton, uinfo00=None, uinfo01=None, uinfo02=None, info1=None, info2=None, info3=None, info4=None, info5=None): gyorgy@0: gyorgy@0: gyorgy@0: if cherrypy.session['page'] != int(pageId): gyorgy@0: print "################################# BACK BUTTON PRESSED #################################" gyorgy@0: gyorgy@0: gyorgy@0: if cherrypy.session['sid'] != str(sessionId): gyorgy@0: return TestPage.sessionError(self) gyorgy@0: #cherrypy.session['page'] = int(pageId) gyorgy@0: gyorgy@0: gyorgy@0: gyorgy@0: gyorgy@0: cherrypy.session['userinfobox'] = str([str(uinfo00), str(uinfo01), str(uinfo02), int(info1), int(info2), int(info3), int(info4), int(info5)]) + '\n' gyorgy@0: cherrypy.session['sessionId'] = sessionId gyorgy@0: #print "sid:" gyorgy@0: #print TestPage.sid gyorgy@0: #print sessionId gyorgy@0: if cherrypy.session['sid'] != str(cherrypy.session['sessionId']): gyorgy@0: return TestPage.sessionError(self) gyorgy@0: else: gyorgy@0: return TestPage.index2(self) gyorgy@0: gyorgy@0: gyorgy@0: gyorgy@0: def index2(self): gyorgy@0: #try: print testvar gyorgy@0: #except: pass gyorgy@0: gyorgy@0: cherrypy.session['page'] = 1 gyorgy@0: cherrypy.session['pages'] = 7 gyorgy@0: cherrypy.session['tests'] = len(cherrypy.session['audio_pairs']) #should be 66 #10 * cherrypy.session['pages'] gyorgy@0: cherrypy.session['results'] = [] gyorgy@0: for cherrypy.session['n'] in xrange(cherrypy.session['tests']): cherrypy.session['results'].append([None,0,0,0,0]) gyorgy@0: gyorgy@0: # create tuple to fill template gyorgy@0: cherrypy.session['ts'] = [] gyorgy@0: for cherrypy.session['k'] in xrange(40): gyorgy@0: cherrypy.session['ts'].append(0) gyorgy@0: gyorgy@0: return audiotempl%TestPage.makeTuple(self, 10) gyorgy@0: gyorgy@0: def doAttrib(self, pageId, sessionId, submitButton, attribute1_1=None, attribute1_2=None, attribute1_3=None, attribute1_4=None, attribute2_1=None, attribute2_2=None, attribute2_3=None, attribute2_4=None, attribute3_1=None, attribute3_2=None, attribute3_3=None, attribute3_4=None, attribute4_1=None, attribute4_2=None, attribute4_3=None, attribute4_4=None, attribute5_1=None, attribute5_2=None, attribute5_3=None, attribute5_4=None, attribute6_1=None, attribute6_2=None, attribute6_3=None, attribute6_4=None, attribute7_1=None, attribute7_2=None, attribute7_3=None, attribute7_4=None, attribute8_1=None, attribute8_2=None, attribute8_3=None, attribute8_4=None, attribute9_1=None, attribute9_2=None, attribute9_3=None, attribute9_4=None, attribute10_1=None, attribute10_2=None, attribute10_3=None, attribute10_4=None): gyorgy@0: #print attribute1 + ' ' + attribute2 gyorgy@0: # Error check gyorgy@0: gyorgy@0: print "################################# %s" %pageId gyorgy@0: #_pageId = int(pageId) - 1 gyorgy@0: gyorgy@0: if cherrypy.session['page'] != int(pageId): gyorgy@0: print "################################# BACK BUTTON PRESSED #################################" gyorgy@0: gyorgy@0: cherrypy.session['page'] = int(pageId) gyorgy@0: gyorgy@0: if cherrypy.session['sid'] != str(sessionId): gyorgy@0: return TestPage.sessionError(self) gyorgy@0: gyorgy@0: #store results gyorgy@0: gyorgy@0: cherrypy.session['pos'] = 10 * (cherrypy.session['page'] - 1) gyorgy@0: gyorgy@0: cherrypy.session['results'][cherrypy.session['pos']] = [cherrypy.session['audio_pairs'][cherrypy.session['pos']][2].split('/')[-1], int(attribute1_1), int(attribute1_2), int(attribute1_3), int(attribute1_4)] gyorgy@0: cherrypy.session['results'][cherrypy.session['pos']+1] = [cherrypy.session['audio_pairs'][cherrypy.session['pos']+1][2].split('/')[-1], int(attribute2_1), int(attribute2_2), int(attribute2_3), int(attribute2_4)] gyorgy@0: cherrypy.session['results'][cherrypy.session['pos']+2] = [cherrypy.session['audio_pairs'][cherrypy.session['pos']+2][2].split('/')[-1], int(attribute3_1), int(attribute3_2), int(attribute3_3), int(attribute3_4)] gyorgy@0: cherrypy.session['results'][cherrypy.session['pos']+3] = [cherrypy.session['audio_pairs'][cherrypy.session['pos']+3][2].split('/')[-1], int(attribute4_1), int(attribute4_2), int(attribute4_3), int(attribute4_4)] gyorgy@0: cherrypy.session['results'][cherrypy.session['pos']+4] = [cherrypy.session['audio_pairs'][cherrypy.session['pos']+4][2].split('/')[-1], int(attribute5_1), int(attribute5_2), int(attribute5_3), int(attribute5_4)] gyorgy@0: cherrypy.session['results'][cherrypy.session['pos']+5] = [cherrypy.session['audio_pairs'][cherrypy.session['pos']+5][2].split('/')[-1], int(attribute6_1), int(attribute6_2), int(attribute6_3), int(attribute6_4)] gyorgy@0: cherrypy.session['results'][cherrypy.session['pos']+6] = [cherrypy.session['audio_pairs'][cherrypy.session['pos']+6][2].split('/')[-1], int(attribute7_1), int(attribute7_2), int(attribute7_3), int(attribute7_4)] gyorgy@0: cherrypy.session['results'][cherrypy.session['pos']+7] = [cherrypy.session['audio_pairs'][cherrypy.session['pos']+7][2].split('/')[-1], int(attribute8_1), int(attribute8_2), int(attribute8_3), int(attribute8_4)] gyorgy@0: cherrypy.session['results'][cherrypy.session['pos']+8] = [cherrypy.session['audio_pairs'][cherrypy.session['pos']+8][2].split('/')[-1], int(attribute9_1), int(attribute9_2), int(attribute9_3), int(attribute9_4)] gyorgy@0: cherrypy.session['results'][cherrypy.session['pos']+9] = [cherrypy.session['audio_pairs'][cherrypy.session['pos']+9][2].split('/')[-1], int(attribute10_1), int(attribute10_2), int(attribute10_3), int(attribute10_4)] gyorgy@0: gyorgy@0: gyorgy@0: resString = cherrypy.session['ip'] + '\n' + cherrypy.session['sid'] + '\n' + cherrypy.session['userinfobox'] + '\n' + ',\n'.join(str(x) for x in cherrypy.session['results']) gyorgy@0: gyorgy@0: #f = open(TestPage.sid_filename, 'w') gyorgy@0: #f.write(resString) gyorgy@0: #f.close() gyorgy@0: gyorgy@0: cherrypy.session.write_data(resString,'%s.txt'%cherrypy.session['sid']) gyorgy@0: gyorgy@0: #if cherrypy.session['page'] < cherrypy.session['pages'] - 1: gyorgy@0: cherrypy.session['page'] += 1 gyorgy@0: # create tuple to fill template gyorgy@0: cherrypy.session['ts'] = [] gyorgy@0: cherrypy.session['npos'] = cherrypy.session['pos'] + 10 gyorgy@0: gyorgy@0: if cherrypy.session['page'] < cherrypy.session['pages']: gyorgy@0: cherrypy.session['m'] = 10 gyorgy@0: else: gyorgy@0: cherrypy.session['m'] = 6 gyorgy@0: gyorgy@0: for cherrypy.session['k'] in xrange(cherrypy.session['m']): gyorgy@0: for cherrypy.session['i'] in xrange(4): gyorgy@0: #print cherrypy.session['k'] gyorgy@0: #print cherrypy.session['i'] gyorgy@0: cherrypy.session['ts'].append(cherrypy.session['results'][cherrypy.session['npos']+cherrypy.session['k']][cherrypy.session['i']+1]) gyorgy@0: gyorgy@0: if cherrypy.session['page'] < cherrypy.session['pages']: gyorgy@0: return audiotempl%TestPage.makeTuple(self, cherrypy.session['m']) gyorgy@0: else: gyorgy@0: return audiotemplast%TestPage.makeTuple(self, cherrypy.session['m']) gyorgy@0: gyorgy@0: gyorgy@0: index.exposed = True gyorgy@0: doAttrib.exposed = True gyorgy@0: index2.exposed = True gyorgy@0: doStart.exposed = True gyorgy@0: gyorgy@0: gyorgy@0: def doAttrib2(self, pageId, sessionId, submitButton, attribute1_1=None, attribute1_2=None, attribute1_3=None, attribute1_4=None, attribute2_1=None, attribute2_2=None, attribute2_3=None, attribute2_4=None, attribute3_1=None, attribute3_2=None, attribute3_3=None, attribute3_4=None, attribute4_1=None, attribute4_2=None, attribute4_3=None, attribute4_4=None, attribute5_1=None, attribute5_2=None, attribute5_3=None, attribute5_4=None, attribute6_1=None, attribute6_2=None, attribute6_3=None, attribute6_4=None): gyorgy@0: #print attribute1 + ' ' + attribute2 gyorgy@0: # Error check gyorgy@0: gyorgy@0: print "################################# %s" %pageId gyorgy@0: #_pageId = int(pageId) - 1 gyorgy@0: gyorgy@0: if cherrypy.session['page'] != int(pageId): gyorgy@0: print "################################# BACK BUTTON PRESSED #################################" gyorgy@0: gyorgy@0: cherrypy.session['page'] = int(pageId) gyorgy@0: gyorgy@0: if cherrypy.session['sid'] != str(sessionId): gyorgy@0: return TestPage.sessionError(self) gyorgy@0: gyorgy@0: #store results gyorgy@0: gyorgy@0: cherrypy.session['pos'] = 10 * (cherrypy.session['page'] - 1) gyorgy@0: gyorgy@0: cherrypy.session['results'][cherrypy.session['pos']] = [cherrypy.session['audio_pairs'][cherrypy.session['pos']][2].split('/')[-1], int(attribute1_1), int(attribute1_2), int(attribute1_3), int(attribute1_4)] gyorgy@0: cherrypy.session['results'][cherrypy.session['pos']+1] = [cherrypy.session['audio_pairs'][cherrypy.session['pos']+1][2].split('/')[-1], int(attribute2_1), int(attribute2_2), int(attribute2_3), int(attribute2_4)] gyorgy@0: cherrypy.session['results'][cherrypy.session['pos']+2] = [cherrypy.session['audio_pairs'][cherrypy.session['pos']+2][2].split('/')[-1], int(attribute3_1), int(attribute3_2), int(attribute3_3), int(attribute3_4)] gyorgy@0: cherrypy.session['results'][cherrypy.session['pos']+3] = [cherrypy.session['audio_pairs'][cherrypy.session['pos']+3][2].split('/')[-1], int(attribute4_1), int(attribute4_2), int(attribute4_3), int(attribute4_4)] gyorgy@0: cherrypy.session['results'][cherrypy.session['pos']+4] = [cherrypy.session['audio_pairs'][cherrypy.session['pos']+4][2].split('/')[-1], int(attribute5_1), int(attribute5_2), int(attribute5_3), int(attribute5_4)] gyorgy@0: cherrypy.session['results'][cherrypy.session['pos']+5] = [cherrypy.session['audio_pairs'][cherrypy.session['pos']+5][2].split('/')[-1], int(attribute6_1), int(attribute6_2), int(attribute6_3), int(attribute6_4)] gyorgy@0: gyorgy@0: gyorgy@0: gyorgy@0: resString = cherrypy.session['ip'] + '\n' + cherrypy.session['sid'] + '\n' + cherrypy.session['userinfobox'] + '\n' + ',\n'.join(str(x) for x in cherrypy.session['results']) gyorgy@0: gyorgy@0: #f = open(TestPage.sid_filename, 'w') gyorgy@0: #f.write(resString) gyorgy@0: #f.close() gyorgy@0: gyorgy@0: cherrypy.session.write_data(resString,'%s.txt'%cherrypy.session['sid']) gyorgy@0: gyorgy@0: gyorgy@0: print cherrypy.session['results'] gyorgy@0: #_results = [] gyorgy@0: gyorgy@0: cherrypy.session['templ'] = '' gyorgy@0: for cherrypy.session['n'] in xrange(cherrypy.session['tests']): gyorgy@0: #print ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" gyorgy@0: #print cherrypy.session['n'] gyorgy@0: cherrypy.session['_templ'] = endtempl2 %(cherrypy.session['results'][cherrypy.session['n']][0], cherrypy.session['results'][cherrypy.session['n']][1], cherrypy.session['results'][cherrypy.session['n']][2], cherrypy.session['results'][cherrypy.session['n']][3], cherrypy.session['results'][cherrypy.session['n']][4]) gyorgy@0: cherrypy.session['templ'] += cherrypy.session['_templ'] gyorgy@0: gyorgy@0: #TestPage.pageComplete += 1 gyorgy@0: try: gyorgy@0: #print 'skipping email' gyorgy@0: TestPage.sendMail(self) gyorgy@0: except: gyorgy@0: print "WARNING: COULD NOT SEND RESULTS" gyorgy@0: pass gyorgy@0: cherrypy.session['sid'] = None gyorgy@0: return endtempl%cherrypy.session['templ'] gyorgy@0: #return lastpage gyorgy@0: gyorgy@0: gyorgy@0: index.exposed = True gyorgy@0: doAttrib.exposed = True gyorgy@0: doAttrib2.exposed = True gyorgy@0: index2.exposed = True gyorgy@0: doStart.exposed = True gyorgy@0: gyorgy@0: gyorgy@0: def makeTuple(TestPage, nr): gyorgy@0: cherrypy.session['nr'] = nr gyorgy@0: cherrypy.session['ts'].append(cherrypy.session['page']) gyorgy@0: cherrypy.session['ts'].append(cherrypy.session['pages']) gyorgy@0: for cherrypy.session['k'] in xrange(cherrypy.session['nr']): gyorgy@0: pos = 10 * (cherrypy.session['page'] - 1) + cherrypy.session['k'] gyorgy@0: #print pos gyorgy@0: for n in xrange(3): cherrypy.session['ts'].append(cherrypy.session['audio_pairs'][pos][1]) gyorgy@0: for n in xrange(3): cherrypy.session['ts'].append(cherrypy.session['audio_pairs'][pos][2]) gyorgy@0: cherrypy.session['ts'].append(cherrypy.session['page']) gyorgy@0: cherrypy.session['ts'].append(cherrypy.session['sid']) gyorgy@0: cherrypy.session['ts'] = tuple(cherrypy.session['ts']) gyorgy@0: print cherrypy.session['ts'] gyorgy@0: return cherrypy.session['ts'] gyorgy@0: gyorgy@0: def sessionError(TestPage): gyorgy@0: print "################################# SESSION ERROR #################################" gyorgy@0: cherrypy.session['resString'] = cherrypy.session['ip'] + '\n' + str(cherrypy.session['sid']) + '\n' + cherrypy.session['userinfobox'] + '\n' + ',\n'.join(str(x) for x in cherrypy.session['results']) gyorgy@0: cherrypy.session['resString'] += '\n\nERROR: SESSION CONFUSION' gyorgy@0: #f = open(TestPage.sid_filename, 'w') gyorgy@0: #f.write(resString) gyorgy@0: #f.close() gyorgy@0: cherrypy.session.write_data(cherrypy.session['resString'],'%s.txt'%cherrypy.session['sid']) gyorgy@0: gyorgy@0: return ''' gyorgy@0:

gyorgy@0: oh noes! there is something wrong with your session, please start again or go for a coffee! gyorgy@0:

''' gyorgy@0: gyorgy@0: gyorgy@0: def sendMail(TestPage): gyorgy@0: cherrypy.session['file'] = './sessions/%s/%s.txt'%(cherrypy.session['sid'], cherrypy.session['sid']) gyorgy@0: username = 'eecsqmul@gmail.com' gyorgy@0: password = 'perceptual' gyorgy@0: fro = 'FX-Test ' gyorgy@0: to = ['thomas.wilmering@eecs.qmul.ac.uk', 'gyorgy.fazekas@eecs.qmul.ac.uk'] gyorgy@0: msg = MIMEMultipart() gyorgy@0: msg['From'] = fro gyorgy@0: msg['To'] = COMMASPACE.join(to) gyorgy@0: msg['Date'] = formatdate(localtime=True) gyorgy@0: msg['Subject'] = 'fx perceptual listening test' gyorgy@0: msg.attach( MIMEText('Attached are new results from the listening test.')) gyorgy@0: part = MIMEBase('application', "octet-stream") gyorgy@0: part.set_payload( open(cherrypy.session['file'],"rb").read() ) gyorgy@0: Encoders.encode_base64(part) gyorgy@0: part.add_header('Content-Disposition', 'attachment; filename="%s"' % cherrypy.session['file']) gyorgy@0: msg.attach(part) gyorgy@0: server = smtplib.SMTP('smtp.gmail.com:587') gyorgy@0: server.starttls() gyorgy@0: server.login(username,password) gyorgy@0: server.sendmail(fro, to, msg.as_string() ) gyorgy@0: server.close() gyorgy@0: gyorgy@0: gyorgy@0: class OutPage: gyorgy@0: def index(self): gyorgy@0: return ''' gyorgy@0: gyorgy@0: gyorgy@0:
gyorgy@0: gyorgy@0:
gyorgy@0: gyorgy@0: gyorgy@0: gyorgy@0: ''' gyorgy@0: index.exposed = True gyorgy@0: gyorgy@0: gyorgy@0: # # Of course we can also mount request handler objects right here! gyorgy@0: # root = HomePage() gyorgy@0: # root.test = TestPage() gyorgy@0: # root.out = OutPage() gyorgy@0: # #root = TestPage() gyorgy@0: # gyorgy@0: # tutconf = os.path.join(os.path.dirname(__file__), 'conf.conf') gyorgy@0: gyorgy@0: gyorgy@0: def startFxTest(args): gyorgy@0: gyorgy@0: # check local switch gyorgy@0: if args.count('-local') : gyorgy@0: local = True; args.remove('-local'); gyorgy@0: print 'Startup: Local mode.' gyorgy@0: conf = os.path.join(os.path.dirname(__file__), 'local.conf') gyorgy@0: else: gyorgy@0: conf = os.path.join(os.path.dirname(__file__), 'server.conf') gyorgy@0: local = False gyorgy@0: gyorgy@0: # check string encoding gyorgy@0: print "Startup: String encoding = '%s'" %(str(sys.getdefaultencoding())) gyorgy@0: gyorgy@0: # check ip switch gyorgy@0: ip = '' gyorgy@0: if args.count('-ip') : gyorgy@0: try : gyorgy@0: # here we just see if it's numeric, parsing is done by the server wrapper gyorgy@0: if args[args.index('-ip')+1].replace('.','').replace(':','').isdigit() : gyorgy@0: ip = args[args.index('-ip')+1] gyorgy@0: else : gyorgy@0: print "Startup: Invalid service IP address. Use format: sawa.py -ip 127.0.0.1:8080" gyorgy@0: os._exit(-1) gyorgy@0: except : gyorgy@0: print "Startup: Invalid service IP address. (Insufficient arguments.) Use format: cherryFxTest.py -ip 127.0.0.1:8080" gyorgy@0: os._exit(-1) gyorgy@0: args.remove(args[args.index('-ip')+1]); gyorgy@0: args.remove('-ip') gyorgy@0: gyorgy@0: gyorgy@0: # old command: gyorgy@0: # cherrypy.quickstart(root, config=conf) gyorgy@0: gyorgy@0: # Of course we can also mount request handler objects right here! gyorgy@0: root = HomePage() gyorgy@0: root.test = TestPage() gyorgy@0: root.out = OutPage() gyorgy@0: #root = TestPage() gyorgy@0: gyorgy@0: server = CherryPyServer(ServerConfig(root=root,local=local,conf=conf)) gyorgy@0: # if local : gyorgy@0: # server = CherryPyServer(ServerConfig(root=root,local=local,conf=conf)) gyorgy@0: # else : gyorgy@0: # server = CherryPyServer(ServerConfig(root=False,local=local,conf=conf)) gyorgy@0: server.mount(root,path_name='') gyorgy@0: server.quickstart(ip) gyorgy@0: gyorgy@0: gyorgy@0: if __name__ == '__main__': gyorgy@0: # CherryPy always starts with app.root when trying to map request URIs gyorgy@0: # to objects, so we need to mount a request handler root. A request gyorgy@0: # to '/' will be mapped to HelloWorld().index(). gyorgy@0: # cherrypy.quickstart(root, config=tutconf) gyorgy@0: import sys gyorgy@0: startFxTest(sys.argv[1:]) gyorgy@0: else: gyorgy@0: # This branch is for the test suite; you can ignore it. gyorgy@0: cherrypy.tree.mount(root, config=tutconf) gyorgy@0: