comparison 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
comparison
equal deleted inserted replaced
20:a8887fb93676 21:8008ec2fd763
35 35
36 @bottle.route('/static/<path:path>') 36 @bottle.route('/static/<path:path>')
37 def server_static(path): 37 def server_static(path):
38 return static_file(path, root='static') 38 return static_file(path, root='static')
39 39
40 def recentTags(user, tags=None): 40 def recentLinks(user, tags=None):
41 out = {'links':[]} 41 out = {'links':[]}
42 t1 = time.time() 42 t1 = time.time()
43 spec = {'user':user} 43 spec = {'user':user}
44 if tags: 44 if tags:
45 spec['extracted.tags'] = {'$all' : tags} 45 spec['extracted.tags'] = {'$all' : tags}
123 withTags=haveTags)]} 123 withTags=haveTags)]}
124 124
125 @bottle.route('/<user>/') 125 @bottle.route('/<user>/')
126 def userSlash(user): 126 def userSlash(user):
127 bottle.redirect("/%s" % urllib.quote(user)) 127 bottle.redirect("/%s" % urllib.quote(user))
128
129 @bottle.route('/<user>.json', method='GET')
130 def userAllJson(user):
131 data = recentLinks(user, [])
132 data['toRoot'] = "."
133 return json.dumps(data)
128 134
129 @bottle.route('/<user>', method='GET') 135 @bottle.route('/<user>', method='GET')
130 def userAll(user): 136 def userAll(user):
131 return userLinks(user, "", toRoot=".") 137 return userLinks(user, "", toRoot=".")
132 138
139
133 @bottle.route('/<user>', method='POST') 140 @bottle.route('/<user>', method='POST')
134 def userAddLink(user): 141 def userAddLink(user):
135 if getUser()[0] != user: 142 if getUser()[0] != user:
136 raise ValueError("not logged in as %s" % user) 143 raise ValueError("not logged in as %s" % user)
137 print repr(bottle.request.params.__dict__) 144 print repr(bottle.request.params.__dict__)
141 links.insertOrUpdate(doc) 148 links.insertOrUpdate(doc)
142 149
143 print "notify about sharing to", repr(doc['shareWith']) 150 print "notify about sharing to", repr(doc['shareWith'])
144 151
145 bottle.redirect(siteRoot + '/' + user) 152 bottle.redirect(siteRoot + '/' + user)
153
154 def parseTags(tagComponent):
155 # the %20 is coming from davis.js, not me :(
156 return filter(None, tagComponent.replace("%20", "+").split('+'))
157
158 @bottle.route('/<user>/<tags:re:.*>.json')
159 def userLinksJson(user, tags):
160 tags = parseTags(tags)
161 data = recentLinks(user, tags)
162 data['toRoot'] = ".."
163 return json.dumps(data)
164
146 165
147 @bottle.route('/<user>/<tags>') 166 @bottle.route('/<user>/<tags>')
148 def userLinks(user, tags, toRoot=".."): 167 def userLinks(user, tags, toRoot=".."):
149 tags = filter(None, tags.split('+')) 168 tags = parseTags(tags)
150 data = recentTags(user, tags) 169 data = recentLinks(user, tags)
151 data['loginBar'] = getLoginBar() 170 data['loginBar'] = getLoginBar()
152 data['desc'] = ("%s's recent links" % user) + (" tagged %s" % (tags,) if tags else "") 171 data['desc'] = ("%s's recent links" % user) + (" tagged %s" % (tags,) if tags else "")
153 data['toRoot'] = toRoot 172 data['toRoot'] = toRoot
154 data['allTags'] = allTags(user) 173 data['allTags'] = allTags(user)
155 data['user'] = user 174 data['user'] = user
156 data['showPrivateData'] = (user == getUser()[0]) 175 data['showPrivateData'] = (user == getUser()[0])
157 176
158 data['pageTags'] = [{"word":t} for t in tags] 177 data['pageTags'] = [{"word":t} for t in tags]
159 data['stats']['template'] = 'TEMPLATETIME' 178 data['stats']['template'] = 'TEMPLATETIME'
160 return renderWithTime('links.jade', data) 179 return renderWithTime('links.jade', data)
180
181 @bottle.route('/templates')
182 def templates():
183 return json.dumps({'linklist': renderer.load_template("linklist.jade")})
161 184
162 @bottle.route('/') 185 @bottle.route('/')
163 def root(): 186 def root():
164 data = { 187 data = {
165 'loginBar': getLoginBar(), 188 'loginBar': getLoginBar(),