Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/errors/127.0.0.1.2010-07-22.17-24-28.38ccea81-882e-4042-938b-efa671e3c7c8
blob: 46f3b0b7ca20982763801fb08eecebd61c27d380 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(dp1
S'output'
p2
S''
sS'layer'
p3
S'/home/jboisture/Desktop/google_appengine/turtleartsite/applications/turtlesite/controllers/default.py'
p4
sS'code'
p5
S'import os\nfrom gluon.tools import Service\nservice=Service(globals())\n\ndef sort_by_views(L):\n    if len(L) <= 1: return L\n    return sort_by_views( [ lt for lt in L[1:] if lt.views < L[0].views ] )  +  [ L[0] ]  +  sort_by_views( [ ge for ge in L[1:] if ge.views >= L[0].views ] )\n\ndef sort_by_id(L):\n    if len(L) <= 1: return L\n    return sort_by_id( [ lt for lt in L[1:] if lt.id < L[0].id ] )  +  [ L[0] ]  +  sort_by_id( [ ge for ge in L[1:] if ge.id >= L[0].id ] )\n\n\ndef admin():\n  import pdb\n  pdb.set_trace()\n\ndef index():\n  sorts = ["newest", "views"]\n  if "page" in request.vars.keys(): page = int(request.vars["page"]) - 1\n  else: page = 0\n  if "sort" in request.vars.keys(): sort = request.vars["sort"]\n  else: sort = \'newest\'\n  if sort not in sorts:\n      sort = "newest"\n  if "profile" in request.vars.keys(): profile = request.vars["profile"]\n  else: profile = None\n  table = []\n  raw_images = db().select(db.image.ALL)\n  i = 0\n  row = []\n  count = 0\n  images = []\n  c = 1\n  for image in raw_images:\n      if profile != None:\n          if image.creator == profile:\n              images.append(image)\n      else: images.append(image)\n  if sort == \'views\':\n      images = sort_by_views(images)\n      images.reverse()\n  if sort == \'newest\':\n      images.sort(cmp=lambda x,y:cmp(x.id,y.id))\n      images.reverse()\n  for image in images:\n      if count >= page * 12 and page*12+12 > count:\n          if i == 4:\n              table.append(row)\n              row = []\n              i = 0\n          i += 1\n          row.append(image)\n      count += 1\n  table.append(row)\n  pages = count / 12\n  if count%12 > 0: pages += 1\n  page += 1\n  return dict(images=table, pages=pages, page=page, sort=sort, profile=profile)\n\n\ndef upload():\n    upload_key = request.vars["upload_key"]\n    title = request.vars["title"]\n    form = SQLFORM(db.image, fields = [\'title\', \'file\', \'newimage\', \'description\',\'upload_key\'])\n    if form.accepts(request.vars):\n      keys = db().select(db.upload_key.ALL)\n      for key in keys:\n          if key.upload_key == upload_key:\n              db(db.image.upload_key==upload_key).update(creator = key.user)\n      query=(db.upload_key.upload_key==upload_key)\n      db(query).delete()\n    else:\n      import logging\n      logging.error("form not accepted")\n      raise HTTP(400,"failed to upload")\n    return dict(form=form)\n\n\n@service.xmlrpc\ndef login_remote(username,password):\n   logged_in = auth.login_bare(username,password)\n   if logged_in:\n      db.upload_key.insert(user=username)\n      keys = db().select(db.upload_key.ALL)\n      for key in keys:\n          if key.user == username:\n               return str(key.upload_key)\n      return False\n   else: return False\n\n\ndef image():\n   images = db().select(db.image.ALL)\n   image_id = int(request.vars["image"])\n   for image in images:\n       if image.id == image_id:\n           real_image = image\n   title=real_image.title\n   if real_image == None:\n       redirect(URL(r=request, f=\'index\'))\n   if auth.is_logged_in():\n       if auth.user.username != real_image.creator:\n           try:\n               views = int(real_image.views) + 1\n           except: views = 1\n           db(db.image.title==real_image.title).update(views = views)\n   form = SQLFORM(db.comment, fields = [\'body\'])\n   if form.accepts(request.vars, session):\n       db(db.comment.id==form.vars.id).update(author = auth.user.username)\n       db(db.comment.id==form.vars.id).update(image_id = real_image.id)\n   comments=db().select(db.comment.ALL)\n   image_comments = []\n   for comment in comments:\n       if comment.image_id == real_image.id:\n            image_comments.append(comment)\n   return dict(image = real_image, form= form,comments=image_comments)\n\n  \ndef testimage():\n\treturn db(db.image.title=="hellotest")\n\n\ndef user(): \n  return dict(form=auth())\n\n\ndef delete():\n   images = db().select(db.image.ALL)\n   image_id = int(request.vars["id"])\n   for image in images:\n       if image.id == image_id:\n           real_image = image\n   if auth.is_logged_in():\n       if auth.user.username == real_image.creator:\n           query=(db.image.id==real_image.id)\n           db(query).delete()\n   redirect(URL(r=request, f=\'index\')) \n\n\ndef download():\n  return response.download(request, db)\n\n\ndef call(): return service()\n\nresponse._vars=response._caller(admin)\n'
p6
sS'traceback'
p7
S'Traceback (most recent call last):\n  File "/home/jboisture/Desktop/google_appengine/turtleartsite/gluon/restricted.py", line 178, in restricted\n    exec ccode in environment\n  File "/home/jboisture/Desktop/google_appengine/turtleartsite/applications/turtlesite/controllers/default.py", line 147, in <module>\n    def call(): return service()\n  File "/home/jboisture/Desktop/google_appengine/turtleartsite/gluon/globals.py", line 96, in <lambda>\n    self._caller = lambda f: f()\n  File "/home/jboisture/Desktop/google_appengine/turtleartsite/applications/turtlesite/controllers/default.py", line 16, in admin\n    for user in users:\n  File "/usr/lib/python2.6/bdb.py", line 50, in trace_dispatch\n    return self.dispatch_return(frame, arg)\n  File "/usr/lib/python2.6/bdb.py", line 84, in dispatch_return\n    if self.quitting: raise BdbQuit\nBdbQuit\n'
p8
s.