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

Wed, 09 Nov 2022 11:32:13 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 09 Nov 2022 11:32:13 +0100
branch
eric7
changeset 9499
dd389c57c2f0
parent 9497
8beca4047c53
child 9504
1193fc2bf192
permissions
-rw-r--r--

Corrected some code style issues.

# -*- coding: utf-8 -*-

# Copyright (c) 2012 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
#

"""
Package implementing bookmarks importers for various sources.
"""

import importlib

from PyQt6.QtCore import QCoreApplication

from eric7 import Globals
from eric7.EricGui import EricPixmapCache


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(
        (EricPixmapCache.getIcon("ericWeb48"), "eric Web Browser", "e5browser")
    )
    importers.append((EricPixmapCache.getIcon("firefox"), "Mozilla Firefox", "firefox"))
    importers.append((EricPixmapCache.getIcon("chrome"), "Google Chrome", "chrome"))
    if Globals.isLinuxPlatform():
        importers.append((EricPixmapCache.getIcon("chromium"), "Chromium", "chromium"))
        importers.append(
            (EricPixmapCache.getIcon("konqueror"), "Konqueror", "konqueror")
        )
    importers.append((EricPixmapCache.getIcon("opera"), "Opera", "opera"))
    importers.append((EricPixmapCache.getIcon("safari"), "Apple Safari", "safari"))
    if Globals.isWindowsPlatform():
        importers.append(
            (EricPixmapCache.getIcon("internet_explorer"), "Internet Explorer", "ie")
        )
    importers.append(
        (
            EricPixmapCache.getIcon("xbel"),
            QCoreApplication.translate("BookmarksImporters", "XBEL File"),
            "xbel",
        )
    )
    importers.append(
        (
            EricPixmapCache.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
    @type str
    @return tuple with an icon, readable name, name of the default bookmarks file,
        an info text, a prompt and the default directory of the bookmarks file
    @rtype tuple of (QPixmap, str, str, str, str, str)
    """
    mod = getImporterModule(sourceId)
    return mod.getImporterInfo(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
    @type str
    @param parent reference to the parent object
    @type QObject
    @return bookmarks importer
    @rtype BookmarksImporter
    """
    mod = getImporterModule(sourceId)
    return mod.createImporter(sourceId=sourceId, parent=parent)


def getImporterModule(sourceId):
    """
    Function to get a bookmark importer module for a given source.

    @param sourceId source id to get an importer module for
    @type str
    @return reference to the imported module
    @rtype module
    @exception ValueError raised to indicate an unsupported importer
    """
    importerMapping = {
        "chrome": ".ChromeImporter",
        "chromium": ".ChromeImporter",
        "e5browser": ".XbelImporter",
        "firefox": ".FirefoxImporter",
        "html": ".HtmlImporter",
        "ie": ".IExplorerImporter",
        "konqueror": ".XbelImporter",
        "opera": ".OperaImporter",
        "safari": ".SafariImporter",
        "xbel": ".XbelImporter",
    }
    if sourceId in importerMapping:
        return importlib.import_module(importerMapping[sourceId], __package__)

    raise ValueError("Invalid importer ID given ({0}).".format(sourceId))

eric ide

mercurial