3 Convert a bkmk database back to bookmarks.html (or other format defined by writer)
5 Written by Broytman, Mar 2000 - Aug 2002. Copyright (C) 2000-2002 PhiloSoft Design
13 from getopt import getopt
14 optlist, args = getopt(sys.argv[1:], "sp:o:t:r")
19 from writers import writer
20 output_filename = writer.filename
23 transl_name = "" # dictionary translation; default is no translation
25 for _opt, _arg in optlist:
31 output_filename = _arg
43 sys.stderr.write("db2bkmk: too many arguments\n")
44 sys.stderr.write("Usage: db2bkmk [-s] [-p prune_folder] [-o filename] [-t trans] [-r]\n")
47 from storage import storage
51 sys.stdout.write("Loading %s: " % storage.filename)
54 root_folder = storage.load()
58 sys.stdout.write("Writing %s: " % output_filename)
66 from m_lib.flad import fladm
67 transl_db = fladm.load_from_file(transl_name, fladm.check_record, ["URL1", "URL2"], [""])
68 # This prevents any other key to appear in transl_db ^
70 # Generate translation dictionary (hash table)
72 for record in transl_db:
73 transl_d[record["URL1"]] = record["URL2"]
75 for record in transl_db:
76 transl_d[record["URL2"]] = record["URL1"]
78 raise ValueError, "transl (%d) must be 1 or 2" % transl
80 del transl_db # Save few bytes of memory
82 from bkmk_objects import Walker
84 def __init__(self, transl_d):
85 self.transl_d = transl_d
87 def bookmark(self, b, level):
89 transl_d = self.transl_d
91 if transl_d.has_key(href):
92 b.href = transl_d[href]
94 root_folder.walk_depth(Transl(transl_d))
97 outfile = open(output_filename, 'w')
98 root_folder.walk_depth(writer(outfile, prune))
105 if __name__ == '__main__':