summaryrefslogtreecommitdiffstats
path: root/framed.py
diff options
context:
space:
mode:
Diffstat (limited to 'framed.py')
-rw-r--r--framed.py81
1 files changed, 45 insertions, 36 deletions
diff --git a/framed.py b/framed.py
index e754864..89f5e03 100644
--- a/framed.py
+++ b/framed.py
@@ -136,46 +136,55 @@ class Statistics(webapp.RequestHandler):
def get(self):
self.response.out.write("<html><head><title>Statistics</title></head><body><h2>Statistics</h2>")
query = Answer.all().order("title").order("frame")
+ total = query.count()
+ i = 0
lastTitle = None
lastFrame = -1
frameAnswers = []
for answer in query:
- if lastFrame != answer.frame or lastTitle == None or answer.title.key() != lastTitle.key():
- if len(frameAnswers) != 0:
- union = None
- intersection = None
- for frameAnswer in frameAnswers:
- if union == None:
- union = set(frameAnswer)
- else:
- union = union.union(set(frameAnswer))
- if intersection == None:
- intersection = set(frameAnswer)
- else:
- intersection = intersection.intersection(set(frameAnswer))
- self.response.out.write("<li>Frame %s with %s answers:" % (lastFrame, len(frameAnswers)))
- self.response.out.write("<ul><li>Union:<ul>")
- for index in union:
- if index == -1:
- self.response.out.write("<li><i>Nobody</i></li>")
- else:
- self.response.out.write("<li>%s as %s</li>" % (lastTitle.actors[index], lastTitle.characters[index]))
- self.response.out.write("</ul></li>")
- self.response.out.write("<li>Intersection:<ul>")
- for index in intersection:
- if index == -1:
- self.response.out.write("<li><i>Nobody</i></li>")
- else:
- self.response.out.write("<li>%s as %s</li>" % (lastTitle.actors[index], lastTitle.characters[index]))
- self.response.out.write("</ul></li></ul>")
- frameAnswers = []
- lastFrame = answer.frame
- frameAnswers.append(answer.answer)
- if lastTitle == None or answer.title.key() != lastTitle.key():
- if lastTitle != None:
- self.response.out.write("</ul></ul>")
- lastTitle = answer.title
- self.response.out.write("<ul><li>%s</li><ul>" % answer.title.title)
+ while True:
+ if lastFrame != answer.frame or lastTitle == None or answer.title.key() != lastTitle.key():
+ if len(frameAnswers) != 0:
+ union = None
+ intersection = None
+ for frameAnswer in frameAnswers:
+ if union == None:
+ union = set(frameAnswer)
+ else:
+ union = union.union(set(frameAnswer))
+ if intersection == None:
+ intersection = set(frameAnswer)
+ else:
+ intersection = intersection.intersection(set(frameAnswer))
+ self.response.out.write("<li>Frame %s with %s answers:" % (lastFrame, len(frameAnswers)))
+ self.response.out.write("<ul><li>Union:<ul>")
+ for index in union:
+ if index == -1:
+ self.response.out.write("<li><i>Nobody</i></li>")
+ else:
+ self.response.out.write("<li>%s as %s</li>" % (lastTitle.actors[index], lastTitle.characters[index]))
+ self.response.out.write("</ul></li>")
+ self.response.out.write("<li>Intersection:<ul>")
+ for index in intersection:
+ if index == -1:
+ self.response.out.write("<li><i>Nobody</i></li>")
+ else:
+ self.response.out.write("<li>%s as %s</li>" % (lastTitle.actors[index], lastTitle.characters[index]))
+ self.response.out.write("</ul></li></ul>")
+ frameAnswers = []
+ lastFrame = answer.frame
+ frameAnswers.append(answer.answer)
+ if lastTitle == None or answer.title.key() != lastTitle.key():
+ if lastTitle != None:
+ self.response.out.write("</ul></ul>")
+ lastTitle = answer.title
+ self.response.out.write("<ul><li>%s</li><ul>" % answer.title.title)
+ i += 1
+ if i == total:
+ answer = Answer()
+ answer.title = lastTitle
+ else:
+ break
self.response.out.write("</body></html>");
application = webapp.WSGIApplication(