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
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)
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)
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
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)
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)