add_result.py
changeset 58 004a32370ba5
parent 57 31271426f879
child 59 2c5e38748004
equal deleted inserted replaced
57:31271426f879 58:004a32370ba5
     1 #!/usr/bin/python
       
     2 
       
     3 import sys
       
     4 import traceback
       
     5 sys.path.insert(0, "/home/fabien/lib/python")
       
     6 sys.path.insert(0, "./lib")
       
     7 sys.stderr = sys.stdout
       
     8 
       
     9 print "Content-type: text/html; charset=iso-8859-1;"
       
    10 print
       
    11 
       
    12 # import cgitb; cgitb.enable()
       
    13 import cgi
       
    14 from templates import Template
       
    15 import time
       
    16 from utils import unique
       
    17 import my_db
       
    18 from add_confirm import get_bk_from_form, get_new_kw_from_form
       
    19 from webutils import load_index
       
    20 import os
       
    21 
       
    22 def add_new_keywords(db, newkw):
       
    23     kw = [0] # Default keyword, so that every bookmarks appears in
       
    24              # the bookmarks_keywords db.
       
    25     (ids, kws) = map(list,apply(zip, db.get_all_keywords()))
       
    26     for elem in unique(newkw):
       
    27     	if elem in kws:
       
    28 		kw.append(ids[kws.index(elem)])
       
    29 	else:
       
    30 		id = db.add_keyword(elem)
       
    31 		kw.append(id)
       
    32     return kw
       
    33 
       
    34 def main(bk, kw, prefs):
       
    35     tmpl = Template("add_result.tmpl", prefs)
       
    36     tmpl.set("url", bk.url)
       
    37     tmpl.set("name", bk.name)
       
    38     tmpl.set("added", bk.added)
       
    39     tmpl.set("desc", bk.desc)
       
    40     tmpl.set("Keywords", kw)
       
    41     print tmpl.process()
       
    42 
       
    43 if (__name__ == "__main__"):
       
    44     form = cgi.FieldStorage()
       
    45     db = my_db.connect(os.environ["REMOTE_USER"])
       
    46     prefs = db.get_preferences()
       
    47     action = form['action'].value
       
    48     if action == 'cancel':
       
    49       load_index(db, prefs)
       
    50     elif action == 'delete':
       
    51       db.remove_bookmark(int(form['id'].value))
       
    52       load_index(db, prefs)
       
    53     else:
       
    54       bk = get_bk_from_form(form)
       
    55       newkw = get_new_kw_from_form(form)
       
    56       kw = add_new_keywords(db, newkw)
       
    57       if bk.id == -1:
       
    58 	id = db.add_bookmark(bk)
       
    59       else:
       
    60 	db.update_bookmark(bk)
       
    61 	id = bk.id
       
    62       db.update_keywords(id, kw)
       
    63       kw = map(lambda e: { 'keyword': e[1] }, db.get_keywords([id])[1:])
       
    64       main(bk, kw, prefs)