comparison lookup.py @ 4:409da49c148d

partway though add Ignore-this: 330d1f3393bb91ca56267d2138e3bb22
author drewp@bigasterisk.com
date Sun, 17 Feb 2013 21:12:53 -0800
parents 80b11112c9e0
children f8c4c7ce5f4a
comparison
equal deleted inserted replaced
3:656583326f40 4:409da49c148d
4 4
5 /user 5 /user
6 /user/tag+tag+tag 6 /user/tag+tag+tag
7 7
8 """ 8 """
9 import pymongo, bottle, time, urllib 9 import pymongo, bottle, time, urllib, datetime
10 from urllib2 import urlparse 10 from urllib2 import urlparse
11 from dateutil.tz import tzlocal 11 from dateutil.tz import tzlocal
12 from bottle import static_file 12 from bottle import static_file
13 from jadestache import Renderer 13 from jadestache import Renderer
14 db = pymongo.Connection('bang', tz_aware=True)['href'] 14 db = pymongo.Connection('bang', tz_aware=True)['href']
40 out['stats'] = {'queryTimeMs' : round((time.time() - t1) * 1000, 2)} 40 out['stats'] = {'queryTimeMs' : round((time.time() - t1) * 1000, 2)}
41 return out 41 return out
42 42
43 def renderWithTime(name, data): 43 def renderWithTime(name, data):
44 t1 = time.time() 44 t1 = time.time()
45 rendered = renderer.render_name("links.jade", data) 45 rendered = renderer.render_name(name, data)
46 dt = (time.time() - t1) * 1000 46 dt = (time.time() - t1) * 1000
47 rendered = rendered.replace('TEMPLATETIME', "%.02f ms" % dt) 47 rendered = rendered.replace('TEMPLATETIME', "%.02f ms" % dt)
48 return rendered 48 return rendered
49
50 def getUser():
51 return 'drewpca' # logged in user
52
53 @bottle.route('/addLink')
54 def addLink():
55 out = {'toRoot': '.'}
56 out['user'] = getUser()
57 out['withKnockout'] = True
58 return renderWithTime('add.jade', out)
59
60 @bottle.route('/addOverlay')
61 def addOverlay():
62 p = bottle.request.params
63
64 return ""
65
66
67 proposal check existing links, get page title (stuff that in db), get tags from us and other serviecs. maybe the deferred ones ater
68
49 69
50 @bottle.route('/<user>/') 70 @bottle.route('/<user>/')
51 def userSlash(user): 71 def userSlash(user):
52 bottle.redirect("/%s" % urllib.quote(user)) 72 bottle.redirect("/%s" % urllib.quote(user))
53 73
54 @bottle.route('/<user>') 74 @bottle.route('/<user>', method='GET')
55 def userAll(user): 75 def userAll(user):
56 data = recentTags(user, tags=None) 76 data = recentTags(user, tags=None)
57 77
58 data['desc'] = "%s's recent links" % user 78 data['desc'] = "%s's recent links" % user
59 data['toRoot'] = "." 79 data['toRoot'] = "."
60 data['stats']['template'] = 'TEMPLATETIME' 80 data['stats']['template'] = 'TEMPLATETIME'
61 return renderWithTime('links.jade', data) 81 return renderWithTime('links.jade', data)
82
83 @bottle.route('/<user>', method='POST')
84 def userAddLink(user):
85 p = bottle.request.params
86 doc = dict(
87 user=user,
88 description=p.description,
89 extended=p.extended,
90 href=p.href,
91 #private=p.private, == checked,
92 #shared ??
93 tag=p.tag,
94 t=datetime.datetime.now(tzlocal()),
95 )
96 db['links'].insert(doc, safe=True)
97
98 bottle.redirect(user)
62 99
63 @bottle.route('/<user>/<tags>') 100 @bottle.route('/<user>/<tags>')
64 def userLinks(user, tags): 101 def userLinks(user, tags):
65 tags = tags.split('+') 102 tags = tags.split('+')
66 data = recentTags(user, tags) 103 data = recentTags(user, tags)