X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=Storage%2Fbkmk_stjson.py;h=5fbeda88ea110d2098c30594b00b86aba9df24b6;hb=c88cb7a75e7caf1d67466cfa107981d95115fa0c;hp=a08f61910a4415d76b8b64c51a0443070d4b3cbf;hpb=f0cc1cb95379c0d8a18f2511bf5ccbb21f946f5f;p=bookmarks_db.git diff --git a/Storage/bkmk_stjson.py b/Storage/bkmk_stjson.py index a08f619..5fbeda8 100644 --- a/Storage/bkmk_stjson.py +++ b/Storage/bkmk_stjson.py @@ -5,16 +5,16 @@ This file is a part of Bookmarks database and Internet robot. """ __author__ = "Oleg Broytman " -__copyright__ = "Copyright (C) 2010-2014 PhiloSoft Design" +__copyright__ = "Copyright (C) 2010-2017 PhiloSoft Design" __license__ = "GNU GPL" __all__ = ['storage_json'] try: - import json + import json except ImportError: - import simplejson as json + import simplejson as json from bkmk_objects import Folder, Bookmark, Ruler, Walker @@ -84,7 +84,7 @@ class storage_json(Walker): if guid: dict["guid"] = guid dict["index"] = r.index dict["lastModified"] = convert_date_to_json(r.last_modified) - dict["title"] = r.name.decode('utf-8') + if r.name: dict["title"] = r.name.decode('utf-8') dict["type"] = "text/x-moz-place-separator" self.folder_stack[-1].append(dict) @@ -115,9 +115,9 @@ class storage_json(Walker): self.current_folder = root_folder if "type" not in bookmarks_dict: - bookmarks_dict["id"] = "0" - bookmarks_dict["title"] = "" - bookmarks_dict["type"] = "text/x-moz-place-container" + bookmarks_dict["id"] = "0" + bookmarks_dict["title"] = "" + bookmarks_dict["type"] = "text/x-moz-place-container" self.load_folder(root_folder, bookmarks_dict) if self.folder_stack: raise RuntimeError('Excessive folder stack: %s' % self.folder_stack) @@ -168,7 +168,7 @@ class storage_json(Walker): ruler.id = record["id"] ruler.index = record["index"] ruler.last_modified = convert_date_from_json(record.get("lastModified")) - ruler.name = encode_title(record["title"]) + ruler.name = encode_title(record.get("title")) ruler.comment = get_comment(record.get("annos")) self.current_folder.append(ruler) @@ -184,7 +184,7 @@ class storage_json(Walker): def convert_date_to_json(date): if date: - date = int(date * 10**6) + date = int(float(date) * 10**6) return date def convert_date_from_json(date): @@ -195,7 +195,9 @@ def convert_date_from_json(date): return date def encode_title(title): - return title.encode("UTF-8", "xmlcharrefreplace") + if title: + return title.encode("UTF-8", "xmlcharrefreplace") + return title def get_str(record, name): if name in record: