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

branch
eric7
changeset 9209
b99e7fd55fd3
parent 8881
54e42bc2437a
child 9221
bf71ee032bb4
diff -r 3fc8dfeb6ebe -r b99e7fd55fd3 src/eric7/WebBrowser/Bookmarks/BookmarksImporters/__init__.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/eric7/WebBrowser/Bookmarks/BookmarksImporters/__init__.py	Thu Jul 07 11:23:56 2022 +0200
@@ -0,0 +1,123 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Package implementing bookmarks importers for various sources.
+"""
+
+from PyQt6.QtCore import QCoreApplication
+
+import UI.PixmapCache
+import Globals
+
+
+def getImporters():
+    """
+    Module function to get a list of supported importers.
+    
+    @return list of tuples with an icon (QIcon), readable name (string) and
+        internal name (string)
+    """
+    importers = []
+    importers.append(
+        (UI.PixmapCache.getIcon("ericWeb48"), "eric Web Browser",
+         "e5browser"))
+    importers.append(
+        (UI.PixmapCache.getIcon("firefox"), "Mozilla Firefox", "firefox"))
+    importers.append(
+        (UI.PixmapCache.getIcon("chrome"), "Google Chrome", "chrome"))
+    if Globals.isLinuxPlatform():
+        importers.append(
+            (UI.PixmapCache.getIcon("chromium"), "Chromium", "chromium"))
+        importers.append(
+            (UI.PixmapCache.getIcon("konqueror"), "Konqueror",
+             "konqueror"))
+    importers.append(
+        (UI.PixmapCache.getIcon("opera"), "Opera", "opera"))
+    importers.append(
+        (UI.PixmapCache.getIcon("safari"), "Apple Safari", "safari"))
+    if Globals.isWindowsPlatform():
+        importers.append(
+            (UI.PixmapCache.getIcon("internet_explorer"),
+             "Internet Explorer", "ie"))
+    importers.append(
+        (UI.PixmapCache.getIcon("xbel"),
+         QCoreApplication.translate("BookmarksImporters", "XBEL File"),
+         "xbel"))
+    importers.append(
+        (UI.PixmapCache.getIcon("html"),
+         QCoreApplication.translate("BookmarksImporters", "HTML File"),
+         "html"))
+    return importers
+
+
+def getImporterInfo(sourceId):
+    """
+    Module function to get information for the given source id.
+    
+    @param sourceId source id to get info for (string)
+    @return tuple with an icon (QPixmap), readable name (string), name of
+        the default bookmarks file (string), an info text (string),
+        a prompt (string) and the default directory of the bookmarks
+        file (string)
+    @exception ValueError raised to indicate an unsupported importer
+    """
+    if sourceId in ["e5browser", "xbel", "konqueror"]:
+        from . import XbelImporter
+        return XbelImporter.getImporterInfo(sourceId)
+    elif sourceId == "html":
+        from . import HtmlImporter
+        return HtmlImporter.getImporterInfo(sourceId)
+    elif sourceId in ["chrome", "chromium"]:
+        from . import ChromeImporter
+        return ChromeImporter.getImporterInfo(sourceId)
+    elif sourceId == "opera":
+        from . import OperaImporter
+        return OperaImporter.getImporterInfo(sourceId)
+    elif sourceId == "firefox":
+        from . import FirefoxImporter
+        return FirefoxImporter.getImporterInfo(sourceId)
+    elif sourceId == "ie":
+        from . import IExplorerImporter
+        return IExplorerImporter.getImporterInfo(sourceId)
+    elif sourceId == "safari":
+        from . import SafariImporter
+        return SafariImporter.getImporterInfo(sourceId)
+    else:
+        raise ValueError("Invalid importer ID given ({0}).".format(sourceId))
+
+
+def getImporter(sourceId, parent=None):
+    """
+    Module function to get an importer for the given source id.
+    
+    @param sourceId source id to get an importer for (string)
+    @param parent reference to the parent object (QObject)
+    @return bookmarks importer (BookmarksImporter)
+    @exception ValueError raised to indicate an unsupported importer
+    """
+    if sourceId in ["e5browser", "xbel", "konqueror"]:
+        from . import XbelImporter
+        return XbelImporter.XbelImporter(sourceId, parent)
+    elif sourceId == "html":
+        from . import HtmlImporter
+        return HtmlImporter.HtmlImporter(sourceId, parent)
+    elif sourceId in ["chrome", "chromium"]:
+        from . import ChromeImporter
+        return ChromeImporter.ChromeImporter(sourceId, parent)
+    elif sourceId == "opera":
+        from . import OperaImporter
+        return OperaImporter.OperaImporter(sourceId, parent)
+    elif sourceId == "firefox":
+        from . import FirefoxImporter
+        return FirefoxImporter.FirefoxImporter(sourceId, parent)
+    elif sourceId == "ie":
+        from . import IExplorerImporter
+        return IExplorerImporter.IExplorerImporter(sourceId, parent)
+    elif sourceId == "safari":
+        from . import SafariImporter
+        return SafariImporter.SafariImporter(sourceId, parent)
+    else:
+        raise ValueError("No importer for ID {0}.".format(sourceId))

eric ide

mercurial