--- /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
+