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): |