src/eric7/WebBrowser/Bookmarks/BookmarksImporters/SafariImporter.py

branch
eric7
changeset 10482
72d9b5ea39b4
parent 10439
21c28b0f9e41
child 11090
f5f5f5803935
equal deleted inserted replaced
10481:9aea3575bd16 10482:72d9b5ea39b4
103 Public method to get the imported bookmarks. 103 Public method to get the imported bookmarks.
104 104
105 @return imported bookmarks 105 @return imported bookmarks
106 @rtype BookmarkNode 106 @rtype BookmarkNode
107 """ 107 """
108 from ..BookmarkNode import BookmarkNode 108 from ..BookmarkNode import BookmarkNode, BookmarkNodeType
109 109
110 try: 110 try:
111 with open(self.__fileName, "rb") as f: 111 with open(self.__fileName, "rb") as f:
112 bookmarksDict = plistlib.load(f) 112 bookmarksDict = plistlib.load(f)
113 except (OSError, plistlib.InvalidFileException) as err: 113 except (OSError, plistlib.InvalidFileException) as err:
115 self._errorString = self.tr( 115 self._errorString = self.tr(
116 "Bookmarks file cannot be read.\nReason: {0}".format(str(err)) 116 "Bookmarks file cannot be read.\nReason: {0}".format(str(err))
117 ) 117 )
118 return None 118 return None
119 119
120 importRootNode = BookmarkNode(BookmarkNode.Folder) 120 importRootNode = BookmarkNode(BookmarkNodeType.Folder)
121 if ( 121 if (
122 bookmarksDict["WebBookmarkFileVersion"] == 1 122 bookmarksDict["WebBookmarkFileVersion"] == 1
123 and bookmarksDict["WebBookmarkType"] == "WebBookmarkTypeList" 123 and bookmarksDict["WebBookmarkType"] == "WebBookmarkTypeList"
124 ): 124 ):
125 self.__processChildren(bookmarksDict["Children"], importRootNode) 125 self.__processChildren(bookmarksDict["Children"], importRootNode)
139 @param children list of child nodes to be processed 139 @param children list of child nodes to be processed
140 @type list of dict 140 @type list of dict
141 @param rootNode node to add the bookmarks to 141 @param rootNode node to add the bookmarks to
142 @type BookmarkNode 142 @type BookmarkNode
143 """ 143 """
144 from ..BookmarkNode import BookmarkNode 144 from ..BookmarkNode import BookmarkNode, BookmarkNodeType
145 145
146 for child in children: 146 for child in children:
147 if child["WebBookmarkType"] == "WebBookmarkTypeList": 147 if child["WebBookmarkType"] == "WebBookmarkTypeList":
148 folder = BookmarkNode(BookmarkNode.Folder, rootNode) 148 folder = BookmarkNode(BookmarkNodeType.Folder, rootNode)
149 folder.title = child["Title"].replace("&", "&&") 149 folder.title = child["Title"].replace("&", "&&")
150 if "Children" in child: 150 if "Children" in child:
151 self.__processChildren(child["Children"], folder) 151 self.__processChildren(child["Children"], folder)
152 elif child["WebBookmarkType"] == "WebBookmarkTypeLeaf": 152 elif child["WebBookmarkType"] == "WebBookmarkTypeLeaf":
153 url = child["URLString"] 153 url = child["URLString"]
154 if url.startswith(("place:", "about:")): 154 if url.startswith(("place:", "about:")):
155 continue 155 continue
156 156
157 bookmark = BookmarkNode(BookmarkNode.Bookmark, rootNode) 157 bookmark = BookmarkNode(BookmarkNodeType.Bookmark, rootNode)
158 bookmark.url = url 158 bookmark.url = url
159 bookmark.title = child["URIDictionary"]["title"].replace("&", "&&") 159 bookmark.title = child["URIDictionary"]["title"].replace("&", "&&")
160 160
161 161
162 def createImporter(sourceId="", parent=None): 162 def createImporter(sourceId="", parent=None):

eric ide

mercurial