diff lookup.py @ 21:8008ec2fd763

fix up link page reloading. tried davisjs; may not need it Ignore-this: d0021609f019f0734e779a61e3e73b62
author Drew Perttula <drewp@bigasterisk.com>
date Thu, 11 Jul 2013 00:45:55 -0700
parents a8887fb93676
children fa55f4439977
line wrap: on
line diff
--- a/lookup.py	Sun Mar 17 01:03:43 2013 -0700
+++ b/lookup.py	Thu Jul 11 00:45:55 2013 -0700
@@ -37,7 +37,7 @@
 def server_static(path):
     return static_file(path, root='static')
 
-def recentTags(user, tags=None):
+def recentLinks(user, tags=None):
     out = {'links':[]}
     t1 = time.time()
     spec = {'user':user}
@@ -125,11 +125,18 @@
 @bottle.route('/<user>/')
 def userSlash(user):
     bottle.redirect("/%s" % urllib.quote(user))
+
+@bottle.route('/<user>.json', method='GET')
+def userAllJson(user):
+    data = recentLinks(user, [])
+    data['toRoot'] = "."
+    return json.dumps(data)
     
 @bottle.route('/<user>', method='GET')
 def userAll(user):
     return userLinks(user, "", toRoot=".")
-
+    
+   
 @bottle.route('/<user>', method='POST')
 def userAddLink(user):
     if getUser()[0] != user:
@@ -143,11 +150,23 @@
     print "notify about sharing to", repr(doc['shareWith'])
         
     bottle.redirect(siteRoot + '/' + user)
+
+def parseTags(tagComponent):
+    # the %20 is coming from davis.js, not me :(
+    return filter(None, tagComponent.replace("%20", "+").split('+'))
+    
+@bottle.route('/<user>/<tags:re:.*>.json')
+def userLinksJson(user, tags):
+    tags = parseTags(tags)
+    data = recentLinks(user, tags)
+    data['toRoot'] = ".."
+    return json.dumps(data)
+
     
 @bottle.route('/<user>/<tags>')
 def userLinks(user, tags, toRoot=".."):
-    tags = filter(None, tags.split('+'))
-    data = recentTags(user, tags)
+    tags = parseTags(tags)
+    data = recentLinks(user, tags)
     data['loginBar'] = getLoginBar()
     data['desc'] = ("%s's recent links" % user) + (" tagged %s"  % (tags,) if tags else "")
     data['toRoot'] = toRoot
@@ -158,6 +177,10 @@
     data['pageTags'] = [{"word":t} for t in tags]
     data['stats']['template'] = 'TEMPLATETIME'
     return renderWithTime('links.jade', data)
+
+@bottle.route('/templates')
+def templates():
+    return json.dumps({'linklist': renderer.load_template("linklist.jade")})
     
 @bottle.route('/')
 def root():