]> git.phdru.name Git - bookmarks_db.git/blobdiff - Writers/bkmk_wflad.py
Fix: convert unicode icon URLs to utf-8
[bookmarks_db.git] / Writers / bkmk_wflad.py
index 0ba70751cfa7693c26f5b965f4f2ef4dbfa9d40f..999872b1e488a93c062a3caa3514f0281da33439 100644 (file)
@@ -1,9 +1,14 @@
-"""
-   Dump bookmarks db to a more readable FLAD after check_urls
+"""Dump bookmarks db to a more readable FLat Ascii Database
 
-   Written by BroytMann, Apr 2000 - Sep 2007. Copyright (C) 2000-2007 PhiloSoft Design
+This file is a part of Bookmarks database and Internet robot.
 """
 
+__author__ = "Oleg Broytman <phd@phdru.name>"
+__copyright__ = "Copyright (C) 2000-2012 PhiloSoft Design"
+__license__ = "GNU GPL"
+
+__all__ = ['writer_flad']
+
 
 import time
 from bkmk_objects import Writer
@@ -12,7 +17,7 @@ from bkmk_objects import Writer
 def strftime(s):
    try:
       return time.strftime("%a %d %b %Y %T", time.localtime(int(s)))
-   except ValueError: # s is already formatted
+   except (TypeError, ValueError): # s is None or is already formatted
       return s
 
 
@@ -23,7 +28,6 @@ class writer_flad(Writer):
       Writer.__init__(self, outfile, prune)
       self.first_object = 1
 
-
    def start_folder(self, f, level):
       self.outfile.write("""
 Level: %d
@@ -31,8 +35,7 @@ Folder: %s
 AddDate: %s
 Comment: %s
 LastModified: %s
-""" % (level, f.name, strftime(f.add_date), f.comment, f.last_modified or ''))
-
+""" % (level, f.name, strftime(f.add_date), f.comment, strftime(f.last_modified)))
 
    def bookmark(self, b, level):
       self.outfile.write("""
@@ -48,9 +51,12 @@ Comment: %s""" % (level+1, b.name, b.href, strftime(b.add_date), strftime(b.last
       for attr_name, attr_out in (("error", "Error"), ("no_error", "NoError"),
             ("moved", "Moved"), ("size", "Size"), ("md5", "Md5"),
             ("real_title", "RealTitle"), ("test_time", "TestTime"),
-            ("icon", "Icon"), ("charset", "Charset")):
+            ("icon_href", "IconURI"), ("icon", "Icon"), ("charset", "Charset")):
          if hasattr(b, attr_name):
-            self.outfile.write("\n%s: %s" % (attr_out, getattr(b, attr_name)))
+            value = getattr(b, attr_name)
+            if isinstance(value, unicode):
+               value = value.encode('utf-8')
+            self.outfile.write("\n%s: %s" % (attr_out, value))
 
       if hasattr(b, "last_tested"):
          self.outfile.write("\n%s: %s" % ("LastTested", strftime(getattr(b, "last_tested"))))