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

branch
eric7
changeset 9489
c03b8323d11a
parent 9482
a2bc06a54d9d
child 9497
8beca4047c53
equal deleted inserted replaced
9488:44d723e53988 9489:c03b8323d11a
4 # 4 #
5 5
6 """ 6 """
7 Package implementing bookmarks importers for various sources. 7 Package implementing bookmarks importers for various sources.
8 """ 8 """
9
10 import importlib
9 11
10 from PyQt6.QtCore import QCoreApplication 12 from PyQt6.QtCore import QCoreApplication
11 13
12 from eric7 import Globals 14 from eric7 import Globals
13 from eric7.EricGui import EricPixmapCache 15 from eric7.EricGui import EricPixmapCache
56 58
57 def getImporterInfo(sourceId): 59 def getImporterInfo(sourceId):
58 """ 60 """
59 Module function to get information for the given source id. 61 Module function to get information for the given source id.
60 62
61 @param sourceId source id to get info for (string) 63 @param sourceId source id to get info for
62 @return tuple with an icon (QPixmap), readable name (string), name of 64 @type str
63 the default bookmarks file (string), an info text (string), 65 @return tuple with an icon, readable name, name of the default bookmarks file,
64 a prompt (string) and the default directory of the bookmarks 66 an info text, a prompt and the default directory of the bookmarks file
65 file (string) 67 @rtype tuple of (QPixmap, str, str, str, str, str)
66 @exception ValueError raised to indicate an unsupported importer 68 @exception ValueError raised to indicate an unsupported importer
67 """ 69 """
68 if sourceId in ["e5browser", "xbel", "konqueror"]: 70 mod = getImporterModule(sourceId)
69 from . import XbelImporter # __IGNORE_WARNING_I101__ 71 return mod.getImporterInfo(sourceId)
70
71 return XbelImporter.getImporterInfo(sourceId)
72 elif sourceId == "html":
73 from . import HtmlImporter # __IGNORE_WARNING_I101__
74
75 return HtmlImporter.getImporterInfo(sourceId)
76 elif sourceId in ["chrome", "chromium"]:
77 from . import ChromeImporter # __IGNORE_WARNING_I101__
78
79 return ChromeImporter.getImporterInfo(sourceId)
80 elif sourceId == "opera":
81 from . import OperaImporter # __IGNORE_WARNING_I101__
82
83 return OperaImporter.getImporterInfo(sourceId)
84 elif sourceId == "firefox":
85 from . import FirefoxImporter # __IGNORE_WARNING_I101__
86
87 return FirefoxImporter.getImporterInfo(sourceId)
88 elif sourceId == "ie":
89 from . import IExplorerImporter # __IGNORE_WARNING_I101__
90
91 return IExplorerImporter.getImporterInfo(sourceId)
92 elif sourceId == "safari":
93 from . import SafariImporter # __IGNORE_WARNING_I101__
94
95 return SafariImporter.getImporterInfo(sourceId)
96 else:
97 raise ValueError("Invalid importer ID given ({0}).".format(sourceId))
98 72
99 73
100 def getImporter(sourceId, parent=None): 74 def getImporter(sourceId, parent=None):
101 """ 75 """
102 Module function to get an importer for the given source id. 76 Module function to get an importer for the given source id.
103 77
104 @param sourceId source id to get an importer for (string) 78 @param sourceId source id to get an importer for
105 @param parent reference to the parent object (QObject) 79 @type str
106 @return bookmarks importer (BookmarksImporter) 80 @param parent reference to the parent object
81 @type QObject
82 @return bookmarks importer
83 @rtype BookmarksImporter
107 @exception ValueError raised to indicate an unsupported importer 84 @exception ValueError raised to indicate an unsupported importer
108 """ 85 """
109 if sourceId in ["e5browser", "xbel", "konqueror"]: 86 mod = getImporterModule(sourceId)
110 from . import XbelImporter # __IGNORE_WARNING_I101__ 87 return mod.createImporter(sourceId=sourceId, parent=parent)
111 88
112 return XbelImporter.XbelImporter(sourceId, parent)
113 elif sourceId == "html":
114 from . import HtmlImporter # __IGNORE_WARNING_I101__
115 89
116 return HtmlImporter.HtmlImporter(sourceId, parent) 90 def getImporterModule(sourceId):
117 elif sourceId in ["chrome", "chromium"]: 91 """
118 from . import ChromeImporter # __IGNORE_WARNING_I101__ 92 Function
119 93
120 return ChromeImporter.ChromeImporter(sourceId, parent) 94 @param sourceId source id to get an importer module for
121 elif sourceId == "opera": 95 @type str
122 from . import OperaImporter # __IGNORE_WARNING_I101__ 96 @return reference to the imported module
97 @rtype module
98 @exception ValueError raised to indicate an unsupported importer
99 """
100 importerMapping = {
101 "chrome": "ChromeImporter",
102 "chromium": "ChromeImporter",
103 "e5browser": "XbelImporter",
104 "firefox": "FirefoxImporter",
105 "html": "HtmlImporter",
106 "ie": "IExplorerImporter",
107 "konqueror": "XbelImporter",
108 "opera": "OperaImporter",
109 "safari": "SafariImporter",
110 "xbel": "XbelImporter",
111 }
112 if sourceId in importerMapping:
113 return importlib.import_module(
114 "eric7.WebBrowser.Bookmarks.BookmarksImporters.{0}".format(
115 importerMapping[sourceId]
116 )
117 )
123 118
124 return OperaImporter.OperaImporter(sourceId, parent) 119 raise ValueError("Invalid importer ID given ({0}).".format(sourceId))
125 elif sourceId == "firefox":
126 from . import FirefoxImporter # __IGNORE_WARNING_I101__
127
128 return FirefoxImporter.FirefoxImporter(sourceId, parent)
129 elif sourceId == "ie":
130 from . import IExplorerImporter # __IGNORE_WARNING_I101__
131
132 return IExplorerImporter.IExplorerImporter(sourceId, parent)
133 elif sourceId == "safari":
134 from . import SafariImporter # __IGNORE_WARNING_I101__
135
136 return SafariImporter.SafariImporter(sourceId, parent)
137 else:
138 raise ValueError("No importer for ID {0}.".format(sourceId))

eric ide

mercurial