diff -r d3c1de4d929e -r 2781ac85b807 lib/dynamic.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/dynamic.py Fri Oct 24 17:04:29 2003 -0400 @@ -0,0 +1,35 @@ +#!/usr/bin/python + +from keywords import get_keywords, sort_keywords +from templates import Template + +def process_index(bk, kw, pref): + tmpl = Template("dynamic.tmpl", pref) + bk.sort(lambda x,y: cmp(x['name'],y['name'])) + tmpl.set("Bookmarks", bk) + kw = sort_keywords(kw, pref) + tmpl.set("Keywords", kw) + tmpl.set("curl", get_curl()) + tmpl.set("total", len(bk)) + print tmpl.process() + +def do_dynamic(db, prefs, form = []): + if form: + selection = get_keywords(form, 'sel') + exclusion = get_keywords(form, 'exc') + else: + selection = exclusion = [] + if len(selection) == 0: + keywords = set_selection(db, [], selection, exclusion) + exc = map(lambda e: int(e['id']), keywords[1:]) + bookmarks = db.select_bookmarks([0], exc) + else: + bookmarks = db.select_bookmarks(selection, exclusion) + keywords = set_selection(db, + map(lambda e: e[0], bookmarks), + selection, exclusion) + total = len(bookmarks) + if len(bookmarks) > 0: + bookmarks = db.get_bookmarks(map(lambda x: x[0], bookmarks)) + bookmarks = map(lambda bk: bk.dict(), bookmarks) + process_index(bookmarks, keywords[1:], prefs)