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