]> git.phdru.name Git - bookmarks_db.git/blobdiff - Storage/bkmk_stflad.py
Fix(Robot): Stop splitting and un-splitting URLs
[bookmarks_db.git] / Storage / bkmk_stflad.py
index 232229194a44aa8bbc8ddf1c552cf6626764504d..81a4e6dc38e025c36ab2981737504efdeac42311 100644 (file)
@@ -12,7 +12,6 @@ __license__ = "GNU GPL"
 __all__ = ['storage_flad']
 
 
-import string
 from m_lib.flad import fladm
 from bkmk_objects import Folder, Bookmark, Ruler, Walker
 
@@ -24,9 +23,9 @@ class storage_flad(Walker):
         self.first_object = 1
 
     def root_folder(self, f):
-        header = string.replace(f.header, ".", ".\n")
-        header = string.replace(header, "<", "\n<", 3)[1:]
-        header_file = open("header", 'w')
+        header = f.header.replace(".", ".\n")
+        header = header.replace("<", "\n<", 3)[1:]
+        header_file = open("header", 'wt', encoding='utf-8')
         header_file.write(header + "\n")
         header_file.write('<H1>%s</H1>\n\n' % f.name)
         if f.comment: header_file.write('<DD>%s\n' % f.comment)
@@ -62,7 +61,7 @@ Charset: %s
         self.outfile.write("\nLevel: %s\nRuler: YES\n" % (level+1))
 
     def store(self, root_folder):
-        self.outfile = open(self.filename, 'w')
+        self.outfile = open(self.filename, 'wt', encoding='utf-8')
         root_folder.walk_depth(self)
         self.outfile.close()
 
@@ -77,23 +76,24 @@ Charset: %s
             self.current_folder = None
 
     def load(self):
-        bookmarks_db = fladm.load_from_file(self.filename, fladm.check_record, ["Level"])
+        bookmarks_db = fladm.load_from_file(
+            self.filename, fladm.check_record, ["Level"])
 
         root_folder = Folder()
         self.folder_stack = [root_folder]
         self.current_folder = root_folder
 
-        header_file = open("header", 'r')
+        header_file = open("header", 'rt', encoding='utf-8')
         header = header_file.read()
         header_file.close()
 
-        header = string.split(header, "\n")
-        root_folder.header = string.join(header[:5], '')
-        root_folder.name = header[5][4:-5]
-        root_folder.comment = string.join(header[7:], '')[4:]
+        header = header.split("\n")
+        root_folder.header = ''.join(header[:5])
+        root_folder.name = ''.join(header[5:6])[4:-5]
+        root_folder.comment = ''.join(header[7:])[4:]
 
         save_level = 0
-        got_folder = 1 # Start as if we already have one folder
+        got_folder = 1  # Start as if we already have one folder
 
         for record in bookmarks_db:
             level = int(record["Level"])
@@ -106,12 +106,14 @@ Charset: %s
             elif level <= save_level - 1:
                 self.unindent(save_level, level)
             else:
-                raise ValueError("new level (%d) too big; must be %d - %d" % (level, save_level-1, save_level+1))
+                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
+            # Test here to save got_folder for next loop
+            got_folder = "Folder" in record
 
-            if record.has_key("URL"):
+            if "URL" in record:
                 comment = record["Comment"].replace("\\n", '\n')
                 bookmark = Bookmark(
                     record["URL"], record["AddDate"],
@@ -120,22 +122,29 @@ Charset: %s
                 bookmark.name = record["Title"]
                 self.current_folder.append(bookmark)
 
-            elif record.has_key("Folder"):
-                folder = Folder(record["AddDate"], record["Comment"], record["LastModified"])
+            elif "Folder" in record:
+                folder = Folder(
+                    record["AddDate"], record["Comment"],
+                    record["LastModified"]
+                )
                 folder.name = record["Folder"]
                 self.current_folder.append(folder)
                 self.folder_stack.append(folder)
                 self.current_folder = folder
 
-            elif record.has_key("Ruler"):
+            elif "Ruler" in record:
                 self.current_folder.append(Ruler())
 
             else:
-                raise KeyError("neither \"URL\" nor \"Folder\" nor \"Ruler\" in record " + str(record))
+                raise KeyError(
+                    'neither "URL" nor "Folder" nor "Ruler" in record '
+                    + str(record)
+                )
 
         if save_level >= 0:
             self.unindent(save_level, 0)
         else:
-            raise ValueError("new level (%d) too little - must be >= 0" % save_level)
+            raise ValueError("new level (%d) too little - must be >= 0"
+                             % save_level)
 
         return root_folder