-import sys, os, string, shutil
-from getopt import getopt
-
-import fladm
-
-
-def write(str):
- if private_level == 0: # Put in public all except private folder
- public_html.write(str)
- private_html.write(str)
-
-
-def unindent(old_level, new_level):
- while old_level > new_level:
- old_level = old_level - 1
- write(" "*old_level + "</DL><p>\n")
-
-
-def gen_html(bookmarks_db, show_pbar, report_stats):
- global pbar, record_no, urls_no, public_html, private_html, private_level
-
- shutil.copy("header", "public.html")
- shutil.copy("header", "private.html")
-
- public_html = open("public.html", 'a')
- private_html = open("private.html", 'a')
-
- record_no = 0
- urls_no = 0
-
- save_level = 0
- got_folder = 1 # Start as if we already have one folder
- private_level = 0
-
- for record in bookmarks_db:
- record_no = record_no + 1
-
- if show_pbar:
- pbar.display(record_no)
-
- level = string.atoi(record["Level"])
-
- if level == save_level:
- pass
- elif level == save_level + 1:
- if got_folder:
- write(" "*(level - 1) + "<DL><p>\n")
- else:
- raise ValueError, "indent without folder"
- elif level <= save_level - 1:
- unindent(save_level, level)
- else:
- raise ValueError, "new level (%d) too big; must be %d - %d" % (level, save_level-1, save_level+1)
-
- save_level = level
- got_folder = record.has_key("Folder") # Test here to save got_folder for next loop
-
- if private_level == save_level:
- private_level = 0 # We've returned to saved private level - private folder is over
-
- if record.has_key("URL"):
- write(" "*level + '<DT><A HREF="%s" ADD_DATE="%s" LAST_VISIT="%s" LAST_MODIFIED="%s">%s</A>\n' % (record["URL"], record["AddDate"], record["LastVisit"], record["LastModified"], record["Title"]))
- urls_no = urls_no + 1
-
- elif record.has_key("Folder"):
- # Dirty hacks here
- if (record["Folder"] == "Private links") and (private_level == 0):
- private_level = save_level # We found private folder - save its level
-
- if record["Folder"] == "All the rest - Unclassified":
- write(" "*level + '<DT><H3 NEWITEMHEADER ADD_DATE="%s">%s</H3>\n' % (record["AddDate"], record["Folder"]))
- else:
- write(" "*level + '<DT><H3 ADD_DATE="%s">%s</H3>\n' % (record["AddDate"], record["Folder"]))
-
- elif record.has_key("Ruler"):
- write(" "*level + "<HR>\n")
-
- else:
- raise KeyError, "neither \"URL\" nor \"Folder\" nor \"Ruler\" in record " + str(record)