コード例 #1
0
ファイル: history.py プロジェクト: LeonardoXavier/f1
 def get(self):
     keys = session.get('account_keys', '').split(',')
     stmt = Session.query(Account.id).filter(Account.key.in_(keys)).subquery()
     data = Session.query(History, Account.domain, Account.username, Account.id).filter(
         Account.id == History.account_id).\
         filter(History.account_id.in_(stmt)).\
         order_by(History.published.desc()).\
         all()
     res = []
     for h, d, u, i in data:
         r = h.to_dict()
         r['domain'] = d
         r['username'] = u
         r['userid'] = i
         res.append(r)
     return res
コード例 #2
0
ファイル: links.py プロジェクト: LeonardoXavier/f1
 def get(self, id):
     num_id = int(id, 16)
     #print "ID is ", num_id
     link = Session.query(Link).filter_by(id = num_id).first()
     #import sys
     #print >> sys.stderr, link.to_dict()
     #print "LONG_URL = ", link.long_url
     resp = get_redirect_response(link.long_url,
                                  additional_headers=[
                                     ('x-shortened-by', link.userkey),
                                     ('x-shortened-for', link.audience),
                                     ])
     raise resp.exception
コード例 #3
0
ファイル: links.py プロジェクト: jrburke/f1
 def get_or_create(longurl, author=None):
     try:
         return Session.query(Link).filter_by(long_url=longurl).one()
     except NoResultFound:
         l = Link()
         l.long_url = longurl
         l.userkey = author
         Session.add(l)
         if asbool(config.get('test_shortener')):
             # add and commit to get the id, then shorten
             Session.commit()
             Session.flush()
         l.shorten()
         Session.commit()
         return l
コード例 #4
0
ファイル: account.py プロジェクト: LeonardoXavier/f1
 def _get_or_create_account(self, domain, userid, username):
     keys = [k for k in session.get('account_keys', '').split(',') if k]
     # Find or create an account
     try:
         acct = Session.query(Account).filter(and_(Account.domain==domain, Account.userid==userid)).one()
     except NoResultFound:
         acct = Account()
         acct.domain = domain
         acct.userid = userid
         acct.username = username
         Session.add(acct)
     if acct.key not in keys:
         keys.append(acct.key)
         session['account_keys'] = ','.join(keys)
         session[acct.key] = acct.to_dict()
         session.save()
     return acct
コード例 #5
0
ファイル: account.py プロジェクト: LeonardoXavier/f1
 def signout(self):
     domain = request.params.get('domain')
     username = request.params.get('username')
     userid = request.params.get('userid')
     if domain and username or userid:
         try:
             keys = [k for k in session.get('account_keys', '').split(',') if k]
             for k in keys:
                 session.pop(k)
             _and = [Account.domain==domain]
             if username:
                 _and.append(Account.username==username)
             if userid:
                 _and.append(Account.userid==userid)
             accts = Session.query(Account).filter(Account.key.in_(keys)).filter(not_(and_(*_and))).all()
             session['account_keys'] = ','.join([a.key for a in accts])
             for a in accts:
                 session[a.key] = a.to_dict()
         except:
             session.clear()
     else:
         session.clear()
     session.save()