"""
__author__ = "Oleg Broytman <phd@phdru.name>"
-__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
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)
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)
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)
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):
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: