add_result.py
author fabien
Thu, 25 Sep 2003 11:02:05 -0400
branchxbelweb
changeset 15 574631f841c3
parent 13 7357230539d2
child 17 14bec94bbe89
permissions -rwxr-xr-x
[svn r1549] Add update/merge/delete keywords.

#!/usr/bin/python

import sys
import traceback
sys.path.insert(0, "/home/fabien/lib/python")
sys.path.insert(0, "./lib")
sys.stderr = sys.stdout

print "Content-type: text/html; charset=iso-8859-1;"
print

# import cgitb; cgitb.enable()
import cgi
from htmltmpl import TemplateManager, TemplateProcessor
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

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(','))
	else:
		return []

def main(bk, kw):
    tmpl = TemplateManager().prepare("add_result.tmpl")
    tproc = TemplateProcessor()
    tproc.set("url", bk.url)
    tproc.set("name", bk.name)
    tproc.set("added", bk.added)
    tproc.set("desc", bk.desc)
    tproc.set("Keywords", kw)
    print tproc.process(tmpl)

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:
	id = db.add_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)