Sun, 18 Mar 2012 15:05:38 +0100
Added a bookmarks importer for Google Chrome and Chromium.
1714
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | # Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de> |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing an importer for Chrome bookmarks. |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | import os |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | import json |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | from PyQt4.QtCore import QCoreApplication, QDate, Qt |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | from ..BookmarkNode import BookmarkNode |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | from .BookmarksImporter import BookmarksImporter |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | import UI.PixmapCache |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | import Globals |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | def getImporterInfo(id): |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | Module function to get information for the given source id. |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | @return tuple with an icon (QPixmap), readable name (string), name of |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | the default bookmarks file (string), an info text (string), |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | a prompt (string) and the default directory of the bookmarks file (string) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | if id == "chrome": |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | if Globals.isWindowsPlatform(): |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | standardDir = os.path.expandvars( |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | "%USERPROFILE%\\AppData\\Local\\Google\\Chrome\\User Data\\Default") |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | else: |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | standardDir = os.path.expanduser("~/.config/google-chrome/Default") |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | return ( |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | UI.PixmapCache.getPixmap("chrome.png"), |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | "Google Chrome", |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | "Bookmarks", |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | QCoreApplication.translate("ChromeImporter", |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | """Google Chrome stores its bookmarks in the <b>Bookmarks</b> """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | """text file. This file is usually located in"""), |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | QCoreApplication.translate("ChromeImporter", |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | """Please choose the file to begin importing bookmarks."""), |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | standardDir, |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | ) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | elif id == "chromium": |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | if Globals.isWindowsPlatform(): |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | standardDir = os.path.expandvars( |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | "%USERPROFILE%\\AppData\\Local\\Google\\Chrome\\User Data\\Default") |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | else: |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | standardDir = os.path.expanduser("~/.config/chromium/Default") |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | return ( |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | UI.PixmapCache.getPixmap("chromium.png"), |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | "Chromium", |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | "Bookmarks", |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | QCoreApplication.translate("ChromeImporter", |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | """Chromium stores its bookmarks in the <b>Bookmarks</b> text file. """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | """This file is usually located in"""), |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | QCoreApplication.translate("ChromeImporter", |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | """Please choose the file to begin importing bookmarks."""), |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | standardDir, |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | ) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | else: |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | raise ValueError("Unsupported browser ID given ({0}).".format(id)) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | class ChromeImporter(BookmarksImporter): |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | Class implementing the Chrome bookmarks importer. |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | def __init__(self, id="", parent=None): |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | Constructor |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | @param id source ID (string) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | @param parent reference to the parent object (QObject) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | super().__init__(id, parent) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | self.__fileName = "" |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | def setPath(self, path): |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | Public method to set the path of the bookmarks file or directory. |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | @param path bookmarks file or directory (string) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | self.__fileName = path |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | def open(self): |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | Public method to open the bookmarks file. |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | @return flag indicating success (boolean) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | if not os.path.exists(self.__fileName): |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | self._error = True |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | self._errorString = self.trUtf8("File '{0}' does not exist.")\ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | .format(self.__fileName) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | return False |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | return True |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | def importedBookmarks(self): |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | Public method to get the imported bookmarks. |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | @return imported bookmarks (BookmarkNode) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | try: |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | f = open(self.__fileName, "r") |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | contents = json.load(f) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | f.close() |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | except IOError as err: |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | self._error = True |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | self._errorString = self.trUtf8("File '{0}' cannot be read.\nReason: {1}")\ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | .format(self.__fileName, str(err)) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | return None |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | importRootNode = BookmarkNode(BookmarkNode.Root) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | if contents["version"] == 1: |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | self.__processRoots(contents["roots"], importRootNode) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | importRootNode.setType(BookmarkNode.Folder) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | if self._id == "chrome": |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | importRootNode.title = self.trUtf8("Google Chrome Import") |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | elif self._id == "chromium": |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | importRootNode.title = self.trUtf8("Chromium Import") |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | else: |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | importRootNode.title = self.trUtf8("Imported {0}")\ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | .format(QDate.currentDate().toString(Qt.SystemLocaleShortDate)) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | return importRootNode |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | def __processRoots(self, data, rootNode): |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | Private method to process the bookmark roots. |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | @param data dictionary with the bookmarks data (dict) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | @param rootNode node to add the bookmarks to (BookmarkNode) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | for node in data.values(): |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | if node["type"] == "folder": |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | self.__generateFolderNode(node, rootNode) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | elif node["type"] == "url": |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | self.__generateUrlNode(node, rootNode) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | def __generateFolderNode(self, data, rootNode): |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | Private method to process a bookmarks folder. |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | @param data dictionary with the bookmarks data (dict) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | @param rootNode node to add the bookmarks to (BookmarkNode) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | folder = BookmarkNode(BookmarkNode.Folder, rootNode) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | folder.title = data["name"] |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | for node in data["children"]: |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | if node["type"] == "folder": |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | self.__generateFolderNode(node, folder) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | elif node["type"] == "url": |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | self.__generateUrlNode(node, folder) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | def __generateUrlNode(self, data, rootNode): |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | Private method to process a bookmarks node. |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | @param data dictionary with the bookmarks data (dict) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | @param rootNode node to add the bookmarks to (BookmarkNode) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | """ |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | bookmark = BookmarkNode(BookmarkNode.Bookmark, rootNode) |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | bookmark.url = data["url"] |
e9bd88363184
Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | bookmark.title = data["name"] |