Example #1
0
def load_url_info(url_id):
  url_dict = None
  sql = 'select rowid, slug, full_url, clicks, ctime, atime from urls where rowid = ?'
  with q(sql, url_id) as c:
    result = c.fetchone()
    if result is not None:
      url_dict = make_url_dict(result)
  return url_dict
Example #2
0
def load_url_info(url_id):
    url_dict = None
    sql = 'select rowid, slug, full_url, clicks, ctime, atime from urls where rowid = ?'
    with q(sql, url_id) as c:
        result = c.fetchone()
        if result is not None:
            url_dict = make_url_dict(result)
    return url_dict
Example #3
0
def find():
  search = request.args.get('q')
  results = []
  if search is None:
    return 'Search filter cannot be empty!', 400
  else:
    sql = 'select rowid, slug, full_url, clicks, ctime, atime from urls where slug like ?'
    with q(sql, '%'+search+'%') as c:
      results = [make_url_dict(row) for row in c.fetchmany()]
      return render_template('list.html', results=results, search=search)
Example #4
0
def find():
    search = request.args.get('q')
    results = []
    if search is None:
        return 'Search filter cannot be empty!', 400
    else:
        sql = 'select rowid, slug, full_url, clicks, ctime, atime from urls where slug like ?'
        with q(sql, '%' + search + '%') as c:
            results = [make_url_dict(row) for row in c.fetchmany()]
            return render_template('list.html', results=results, search=search)
Example #5
0
def top_n_urls(order_by, limit=10):
  sql = '''
    select rowid, slug, full_url, clicks, ctime, atime
    from urls
    order by {} desc
  limit {}'''.format(order_by, limit)
  results = []

  with q(sql) as c:
    for row in c:
      url_dict = make_url_dict(row)
      results.append(url_dict)

  return results
Example #6
0
def top_n_urls(order_by, limit=10):
    sql = '''
    select rowid, slug, full_url, clicks, ctime, atime
    from urls
    order by {} desc
  limit {}'''.format(order_by, limit)
    results = []

    with q(sql) as c:
        for row in c:
            url_dict = make_url_dict(row)
            results.append(url_dict)

    return results
Example #7
0
def go(p):
  pieces = p.split('/')
  slug = pieces.pop(0)
  with q('select rowid, full_url from urls where slug = ?', slug) as c:
    result = c.fetchone()
    if result is None:
      return 'No such link ({}) found'.format(p), 404
    else:
      url_id, url_pattern = result
      num_vars = len(url_pattern.split('{}')) - 1
      gaps = num_vars - len(pieces)
      pieces += ([''] * gaps)
      full_url = url_pattern.format(*[str(p) for p in pieces])
      c.execute('''
        update urls set atime = current_timestamp,
        clicks = (clicks + 1) where rowid = ?
      ''', str(url_id))
      return redirect(full_url)
Example #8
0
def go(p):
    pieces = p.split('/')
    slug = pieces.pop(0)
    with q('select rowid, full_url from urls where slug = ?', slug) as c:
        result = c.fetchone()
        if result is None:
            return 'No such link ({}) found'.format(p), 404
        else:
            url_id, url_pattern = result
            num_vars = len(url_pattern.split('{}')) - 1
            gaps = num_vars - len(pieces)
            pieces += ([''] * gaps)
            full_url = url_pattern.format(*[str(p) for p in pieces])
            c.execute(
                '''
        update urls set atime = current_timestamp,
        clicks = (clicks + 1) where rowid = ?
      ''', str(url_id))
            return redirect(full_url)