Mercurial > code > home > repos > href
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(), |