# HG changeset patch # User Nicholas Jillings # Date 1464692671 -3600 # Node ID ad87b0d94fa99eb244b9ef90fee28b2c47d2b5b4 # Parent e4fcf54abcf5533473a96d8a42f2b5fb2bbd1a79 WIP for #68. Need to test some functions on 2.7. Then build the new XML. diff -r e4fcf54abcf5 -r ad87b0d94fa9 python/pythonServer.py --- a/python/pythonServer.py Sat May 28 10:29:03 2016 +0200 +++ b/python/pythonServer.py Tue May 31 12:04:31 2016 +0100 @@ -4,13 +4,12 @@ # http://stackoverflow.com/questions/9079036/detect-python-version-at-runtime import sys -from os import walk -from os import path -from os import listdir import inspect import os import pickle import datetime +import operator +import xml.etree.ElementTree as ET if sys.version_info[0] == 2: # Version 2.x @@ -28,14 +27,14 @@ PSEUDO_PATH = '../tests/' pseudo_files = [] -for filename in listdir(PSEUDO_PATH): +for filename in os.listdir(PSEUDO_PATH): print(filename) if filename.endswith('.xml'): pseudo_files.append(filename) curSaveIndex = 0; curFileName = 'test-0.xml' -while(path.isfile('../saves/'+curFileName)): +while(os.path.isfile('../saves/'+curFileName)): curSaveIndex += 1; curFileName = 'test-'+str(curSaveIndex)+'.xml' @@ -160,6 +159,36 @@ curSaveIndex += 1 curFileName = 'test-'+str(curSaveIndex)+'.xml' +def poolXML(s): + pool = ET.parse('../tests/pool.xml') + root = pool.getroot() + setupNode = root.find("setup"); + poolSize = setupNode.get("poolSize",0); + if (poolSize == 0): + s.path = s.path.split("/php",1)[0]+"/tests/pool/xml" + processFile(s) + return + # Set up the store will all the test page key nodes + pages = {}; + for page in root.iter("page"): + id = page.get("id") + print(id) + pages[id] = 0 + + # Read the saves and determine the completed pages + for filename in os.listdir("../saves/"): + if filename.endswith(".xml"): + print("../saves/"+filename) + save = ET.parse("../saves/"+filename) + save_root = save.getroot(); + if (save_root.get("url") == s.path): + for page in save_root.iter("page"): + id = page.get("id") + pages[id] = pages[id] + 1 + + # Sort the dictionary + pages = sorted(pages.items(), key=operator.itemgetter(1)) + def http_do_HEAD(s): s.send_response(200) s.send_header("Content-type", "text/html") @@ -171,6 +200,8 @@ send404(request) elif (request.path.split('?',1)[0] == "/php/keygen.php"): keygen(request); + elif (request.path.split('?',1)[0] == "/php/pool.php"): + poolXML(request); else: request.path = request.path.split('?',1)[0] if (request.path == '/'):