diff -r 69c1f93892dd -r f3a926c13ce0 lib/xbelimp.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/xbelimp.py Sat Sep 27 01:32:50 2003 -0400 @@ -0,0 +1,53 @@ +#!/usr/bin/python + +from xbel_handler import XBELHandler, bookmark +from xml.sax import saxexts +import bkmark + +def import_xbel(xbelfile): + xbel_handler = XBELHandler() + p=saxexts.XMLParserFactory.make_parser("xml.sax.drivers.drv_xmlproc") + p.setDocumentHandler( xbel_handler ) + p.parseFile( xbelfile ) + return xbel_handler.bms + +_keywords = {} + +def import_bookmarks(db, bms): + global _keywords + _keywords = {} + for elem in db.get_all_keywords(): + _keywords[elem[1]] = elem[0] + for folder in bms.folders: + import_folder(db,folder) + +def import_folder(db, folder, keywords = []): + global _keywords + kw = folder.title.strip() + if _keywords.has_key(kw): + id = _keywords[kw] + else: + #id = db.add_keyword(kw) + print "add keyword '" + kw + "'" + id = len(_keywords)+100 + _keywords[kw] = id + for child in folder.children: + if isinstance(child, bookmark.Bookmark): + import_bookmark(db, child, keywords+[id]) + else: + import_folder(db, child, keywords+[id]) + +def import_bookmark(db, bookmark, keywords): + bk = bkmark.Bookmark() + bk.name = bookmark.title + bk.url = bookmark.href + if has_attr(bookmark, 'desc'): + bk.desc = bookmark.desc + try: + print "add bookmark '" + bk.name + "'" + # id = db.add_bookmark(bk) + print "with keywords '" + join(',',keywords)[-1] + "'" + # db.update_keywords(id, keywords) + except: + pass +