Mercurial > hg > webaudioevaluationtool
changeset 2749:3bf85a38976f
Merge branch 'master' of https://github.com/BrechtDeMan/WebAudioEvaluationTool
author | www-data <www-data@sucuk.dcs.qmul.ac.uk> |
---|---|
date | Tue, 25 Apr 2017 10:25:25 +0100 |
parents | 65351fea74e7 (current diff) 4b004eb32738 (diff) |
children | ac4eb45fa4c6 |
files | |
diffstat | 2 files changed, 79 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/js/core.js Mon Apr 24 16:20:53 2017 +0100 +++ b/js/core.js Tue Apr 25 10:25:25 2017 +0100 @@ -1224,7 +1224,7 @@ // Now get the order of pages var fixed = []; pagePool.forEach(function (page) { - if (page.position !== null) { + if (page.position !== undefined) { fixed.push(page); var i = pagePool.indexOf(page); pagePool.splice(i, 1);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/python/commentquestion_parser.py Tue Apr 25 10:25:25 2017 +0100 @@ -0,0 +1,78 @@ +#!/usr/bin/python + +import xml.etree.ElementTree as ET +import os +import sys +import csv + +# COMMAND LINE ARGUMENTS + +assert len(sys.argv)<3, "commentquestion_parser takes at most 1 command line argument\nUse: python commentquestion_parser.py [rating_folder_location]" + +# XML results files location +if len(sys.argv) == 1: + folder_name = "../saves" # Looks in 'saves/' folder from 'scripts/' folder + print("Use: python commentquestion_parser.py [rating_folder_location]") + print("Using default path: " + folder_name) +elif len(sys.argv) == 2: + folder_name = sys.argv[1] # First command line argument is folder + +# check if folder_name exists +if not os.path.exists(folder_name): + #the file is not there + print("Folder '"+folder_name+"' does not exist.") + sys.exit() # terminate script execution +elif not os.access(os.path.dirname(folder_name), os.W_OK): + #the file does exist but write privileges are not given + print("No write privileges in folder '"+folder_name+"'.") + +# create folder 'ratings' if not yet created +if not os.path.exists(folder_name + '/comments'): + os.makedirs(folder_name + '/comments') + +pagestore = {} + +for filename in os.listdir(folder_name): + if (filename.endswith(".xml")): + tree = ET.parse(folder_name + '/' + filename) + root = tree.getroot() + + subject_id = root.get('key'); + + # get the list of pages + for page in root.findall("./page"): + pagename = page.get("ref") + if pagename is None: # ignore 'empty' audio_holders + print("WARNING: " + filename + " contains empty audio holder. (commentquestion_parser.py)") + break + + if page.get('state') != "complete": + print("WARNING: " + filename + " contains incomplete page " +pagename+ ". (commentquestion_parser.py)") + break + try: + questionStore = pagestore[pagename] + except KeyError: + questionStore = {} + pagestore[pagename] = questionStore + + for cq in page.findall("./comment"): + cqid = cq.get("id"); + response = cq.find("./response").text + try: + commentStore = questionStore[cqid] + except KeyError: + commentStore = []; + questionStore[cqid] = commentStore + commentStore.append({"subject": subject_id, "value": response}) + +for page in pagestore.keys(): + print page + pagedir = folder_name + '/comments/'+page + if not os.path.exists(pagedir): + os.makedirs(pagedir) + for comment in pagestore[page].keys(): + with open(pagedir+"/"+comment+".csv", "w") as csvfile: + filewriter = csv.writer(csvfile, delimiter=',') + filewriter.writerow(("save_id", "value")) + for entry in pagestore[page][comment]: + filewriter.writerow((entry["subject"], entry["value"])) \ No newline at end of file