--- a/add_result.py Fri Sep 26 11:03:02 2003 -0400
+++ b/add_result.py Fri Sep 26 11:04:15 2003 -0400
@@ -12,36 +12,23 @@
# import cgitb; cgitb.enable()
import cgi
from htmltmpl import TemplateManager, TemplateProcessor
+import time
+from utils import unique
import my_db
-import time
-from bkmark import Bookmark
-
-def get_bk_from_form(form):
- bk = Bookmark()
- bk.id = int(form['id'].value)
- bk.url = form['url'].value
- if form.has_key('name'):
- bk.name = form['name'].value
- if form.has_key('desc'):
- bk.desc = form['desc'].value
- return bk
+from add_confirm import get_bk_from_form, get_new_kw_from_form
+from index import load_index
-def get_kw_from_form(form):
- kw = form.getvalue("kw")
- if not isinstance(kw, type([])):
- if kw:
- kw = [kw]
- else:
- kw = []
- kw = map(int, kw)
- return kw
-
-def get_new_kw_from_form(form):
- if form.has_key('newkw'):
- return map(lambda e: e.strip(),
- form['newkw'].value.split(','))
+def add_new_keywords(db, newkw):
+ kw = [0] # Default keyword, so that every bookmarks appears in
+ # the bookmarks_keywords db.
+ (ids, kws, cnt) = map(list,apply(zip, db.get_all_keywords()))
+ for elem in unique(newkw):
+ if elem in kws:
+ kw.append(ids[kws.index(elem)])
else:
- return []
+ id = db.add_keyword(elem)
+ kw.append(id)
+ return kw
def main(bk, kw):
tmpl = TemplateManager().prepare("add_result.tmpl")
@@ -56,21 +43,21 @@
if (__name__ == "__main__"):
form = cgi.FieldStorage()
db = my_db.connect()
- bk = get_bk_from_form(form)
- kw = get_kw_from_form(form)
- newkw = get_new_kw_from_form(form)
- (ids, kws, cnt) = map(list,apply(zip, db.get_all_keywords()))
- for elem in newkw:
- if elem in kws:
- kw.append(ids[kws.index(elem)])
- else:
- id = db.add_keyword(elem)
- kw.append(id)
- if bk.id == -1:
+ action = form['action'].value
+ if action == 'cancel':
+ load_index(db)
+ elif action == 'delete':
+ db.remove_bookmark(int(form['id'].value))
+ load_index(db)
+ else:
+ bk = get_bk_from_form(form)
+ newkw = get_new_kw_from_form(form)
+ kw = add_new_keywords(db, newkw)
+ if bk.id == -1:
id = db.add_bookmark(bk)
- else:
- db.update_bookmark(bk)
+ else:
+ db.update_bookmark(bk)
id = bk.id
- db.update_keywords(id, kw)
- kw = map(lambda e: { 'keyword': e[1] }, db.get_keywords(id)[1:])
- main(bk, kw)
+ db.update_keywords(id, kw)
+ kw = map(lambda e: { 'keyword': e[1] }, db.get_keywords(id)[1:])
+ main(bk, kw)