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

Sat, 26 Apr 2025 12:34:32 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 26 Apr 2025 12:34:32 +0200
branch
eric7
changeset 11240
c48c615c04a3
parent 11090
f5f5f5803935
permissions
-rw-r--r--

MicroPython
- Added a configuration option to disable the support for the no longer produced Pimoroni Pico Wireless Pack.

1713
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
3 # Copyright (c) 2012 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
1713
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Package implementing bookmarks importers for various sources.
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
9489
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
10 import importlib
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
11
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
12 from PyQt6.QtCore import QCoreApplication
1713
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
14 from eric7.EricGui import EricPixmapCache
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9504
diff changeset
15 from eric7.SystemUtilities import OSUtilities
1713
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 def getImporters():
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 Module function to get a list of supported importers.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
21
9504
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
22 @return list of tuples with an icon, readable name and internal name
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
23 @rtype list of tuples of (QIcon, str, str)
1713
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
9504
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
25 importers = [
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
26 (EricPixmapCache.getIcon("ericWeb48"), "eric Web Browser", "e5browser"),
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
27 (EricPixmapCache.getIcon("firefox"), "Mozilla Firefox", "firefox"),
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
28 (EricPixmapCache.getIcon("chrome"), "Google Chrome", "chrome"),
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
29 (EricPixmapCache.getIcon("opera_legacy"), "Opera (Legacy)", "opera_legacy"),
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
30 (EricPixmapCache.getIcon("safari"), "Apple Safari", "safari"),
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
31 (
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
32 EricPixmapCache.getIcon("xbel"),
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
33 QCoreApplication.translate("BookmarksImporters", "XBEL File"),
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
34 "xbel",
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
35 ),
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
36 (
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
37 EricPixmapCache.getIcon("html"),
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
38 QCoreApplication.translate("BookmarksImporters", "HTML File"),
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
39 "html",
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
40 ),
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
41 (EricPixmapCache.getIcon("edge"), "Microsoft Edge", "edge"),
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
42 (EricPixmapCache.getIcon("vivaldi"), "Vivaldi", "vivaldi"),
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
43 (EricPixmapCache.getIcon("opera"), "Opera", "opera"),
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
44 (EricPixmapCache.getIcon("falkon"), "Falkon", "falkon"),
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
45 ]
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
46
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9504
diff changeset
47 if OSUtilities.isLinuxPlatform():
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
48 importers.append((EricPixmapCache.getIcon("chromium"), "Chromium", "chromium"))
1714
e9bd88363184 Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1713
diff changeset
49 importers.append(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
50 (EricPixmapCache.getIcon("konqueror"), "Konqueror", "konqueror")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
51 )
9504
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
52
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9504
diff changeset
53 if OSUtilities.isWindowsPlatform():
1717
ba85828cd357 Added a bookmarks importer for Internet Explorer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1716
diff changeset
54 importers.append(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
55 (EricPixmapCache.getIcon("internet_explorer"), "Internet Explorer", "ie")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
56 )
9504
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
57
1714
e9bd88363184 Added a bookmarks importer for Google Chrome and Chromium.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1713
diff changeset
58 return importers
1713
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60
5605
1950fe1a32c4 Finished fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
61 def getImporterInfo(sourceId):
1713
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 """
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 Module function to get information for the given source id.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
64
9489
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
65 @param sourceId source id to get info for
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
66 @type str
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
67 @return tuple with an icon, readable name, name of the default bookmarks file,
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
68 an info text, a prompt and the default directory of the bookmarks file
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
69 @rtype tuple of (QPixmap, str, str, str, str, str)
1713
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 """
9489
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
71 mod = getImporterModule(sourceId)
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
72 return mod.getImporterInfo(sourceId)
1713
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73
1965
96f5a76e1845 Fixed some PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1729
diff changeset
74
5605
1950fe1a32c4 Finished fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
75 def getImporter(sourceId, parent=None):
1713
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 """
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 Module function to get an importer for the given source id.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
78
9489
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
79 @param sourceId source id to get an importer for
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
80 @type str
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
81 @param parent reference to the parent object
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
82 @type QObject
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
83 @return bookmarks importer
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
84 @rtype BookmarksImporter
1713
56fdde8a2441 Added a bookmarks importer to get them directly from other browsers files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 """
9489
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
86 mod = getImporterModule(sourceId)
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
87 return mod.createImporter(sourceId=sourceId, parent=parent)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
88
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
89
9489
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
90 def getImporterModule(sourceId):
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
91 """
9499
dd389c57c2f0 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9497
diff changeset
92 Function to get a bookmark importer module for a given source.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
93
9489
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
94 @param sourceId source id to get an importer module for
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
95 @type str
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
96 @return reference to the imported module
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
97 @rtype module
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
98 @exception ValueError raised to indicate an unsupported importer
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
99 """
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
100 importerMapping = {
9497
8beca4047c53 Modified most of the importlib.import_module() calls to use relative imports.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9489
diff changeset
101 "chrome": ".ChromeImporter",
8beca4047c53 Modified most of the importlib.import_module() calls to use relative imports.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9489
diff changeset
102 "chromium": ".ChromeImporter",
8beca4047c53 Modified most of the importlib.import_module() calls to use relative imports.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9489
diff changeset
103 "e5browser": ".XbelImporter",
9504
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
104 "edge": ".ChromeImporter",
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
105 "falkon": ".ChromeImporter",
9497
8beca4047c53 Modified most of the importlib.import_module() calls to use relative imports.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9489
diff changeset
106 "firefox": ".FirefoxImporter",
8beca4047c53 Modified most of the importlib.import_module() calls to use relative imports.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9489
diff changeset
107 "html": ".HtmlImporter",
8beca4047c53 Modified most of the importlib.import_module() calls to use relative imports.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9489
diff changeset
108 "ie": ".IExplorerImporter",
8beca4047c53 Modified most of the importlib.import_module() calls to use relative imports.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9489
diff changeset
109 "konqueror": ".XbelImporter",
9504
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
110 "opera": ".ChromeImporter",
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
111 "opera_legacy": ".OperaImporter",
9497
8beca4047c53 Modified most of the importlib.import_module() calls to use relative imports.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9489
diff changeset
112 "safari": ".SafariImporter",
9504
1193fc2bf192 Web Browser: added bookmark importer entries for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9499
diff changeset
113 "vivaldi": ".ChromeImporter",
9497
8beca4047c53 Modified most of the importlib.import_module() calls to use relative imports.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9489
diff changeset
114 "xbel": ".XbelImporter",
9489
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
115 }
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
116 if sourceId in importerMapping:
9497
8beca4047c53 Modified most of the importlib.import_module() calls to use relative imports.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9489
diff changeset
117 return importlib.import_module(importerMapping[sourceId], __package__)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
118
9489
c03b8323d11a Changed bookmark importer imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
119 raise ValueError("Invalid importer ID given ({0}).".format(sourceId))

eric ide

mercurial