|
1 # -*- coding: utf-8 -*- |
|
2 |
|
3 # Copyright (c) 2012 - 2016 Detlev Offenbach <detlev@die-offenbachs.de> |
|
4 # |
|
5 |
|
6 """ |
|
7 Package implementing bookmarks importers for various sources. |
|
8 """ |
|
9 |
|
10 from __future__ import unicode_literals |
|
11 |
|
12 from PyQt5.QtCore import QCoreApplication |
|
13 |
|
14 import UI.PixmapCache |
|
15 import Globals |
|
16 |
|
17 |
|
18 def getImporters(): |
|
19 """ |
|
20 Module function to get a list of supported importers. |
|
21 |
|
22 @return list of tuples with an icon (QIcon), readable name (string) and |
|
23 internal name (string) |
|
24 """ |
|
25 importers = [] |
|
26 importers.append( |
|
27 (UI.PixmapCache.getIcon("ericWeb48.png"), "eric6 Web Browser", |
|
28 "e5browser")) |
|
29 importers.append( |
|
30 (UI.PixmapCache.getIcon("firefox.png"), "Mozilla Firefox", "firefox")) |
|
31 importers.append( |
|
32 (UI.PixmapCache.getIcon("chrome.png"), "Google Chrome", "chrome")) |
|
33 if Globals.isLinuxPlatform(): |
|
34 importers.append( |
|
35 (UI.PixmapCache.getIcon("chromium.png"), "Chromium", "chromium")) |
|
36 importers.append( |
|
37 (UI.PixmapCache.getIcon("konqueror.png"), "Konqueror", |
|
38 "konqueror")) |
|
39 importers.append( |
|
40 (UI.PixmapCache.getIcon("opera.png"), "Opera", "opera")) |
|
41 importers.append( |
|
42 (UI.PixmapCache.getIcon("safari.png"), "Apple Safari", "safari")) |
|
43 if Globals.isWindowsPlatform(): |
|
44 importers.append( |
|
45 (UI.PixmapCache.getIcon("internet_explorer.png"), |
|
46 "Internet Explorer", "ie")) |
|
47 importers.append( |
|
48 (UI.PixmapCache.getIcon("xbel.png"), |
|
49 QCoreApplication.translate("BookmarksImporters", "XBEL File"), |
|
50 "xbel")) |
|
51 importers.append( |
|
52 (UI.PixmapCache.getIcon("html.png"), |
|
53 QCoreApplication.translate("BookmarksImporters", "HTML File"), |
|
54 "html")) |
|
55 return importers |
|
56 |
|
57 |
|
58 def getImporterInfo(id): |
|
59 """ |
|
60 Module function to get information for the given source id. |
|
61 |
|
62 @param id source id to get info for (string) |
|
63 @return tuple with an icon (QPixmap), readable name (string), name of |
|
64 the default bookmarks file (string), an info text (string), |
|
65 a prompt (string) and the default directory of the bookmarks |
|
66 file (string) |
|
67 @exception ValueError raised to indicate an unsupported importer |
|
68 """ |
|
69 if id in ["e5browser", "xbel", "konqueror"]: |
|
70 from . import XbelImporter |
|
71 return XbelImporter.getImporterInfo(id) |
|
72 elif id == "html": |
|
73 from . import HtmlImporter |
|
74 return HtmlImporter.getImporterInfo(id) |
|
75 elif id in ["chrome", "chromium"]: |
|
76 from . import ChromeImporter |
|
77 return ChromeImporter.getImporterInfo(id) |
|
78 elif id == "opera": |
|
79 from . import OperaImporter |
|
80 return OperaImporter.getImporterInfo(id) |
|
81 elif id == "firefox": |
|
82 from . import FirefoxImporter |
|
83 return FirefoxImporter.getImporterInfo(id) |
|
84 elif id == "ie": |
|
85 from . import IExplorerImporter |
|
86 return IExplorerImporter.getImporterInfo(id) |
|
87 elif id == "safari": |
|
88 from . import SafariImporter |
|
89 return SafariImporter.getImporterInfo(id) |
|
90 else: |
|
91 raise ValueError("Invalid importer ID given ({0}).".format(id)) |
|
92 |
|
93 |
|
94 def getImporter(id, parent=None): |
|
95 """ |
|
96 Module function to get an importer for the given source id. |
|
97 |
|
98 @param id source id to get an importer for (string) |
|
99 @param parent reference to the parent object (QObject) |
|
100 @return bookmarks importer (BookmarksImporter) |
|
101 @exception ValueError raised to indicate an unsupported importer |
|
102 """ |
|
103 if id in ["e5browser", "xbel", "konqueror"]: |
|
104 from . import XbelImporter |
|
105 return XbelImporter.XbelImporter(id, parent) |
|
106 elif id == "html": |
|
107 from . import HtmlImporter |
|
108 return HtmlImporter.HtmlImporter(id, parent) |
|
109 elif id in ["chrome", "chromium"]: |
|
110 from . import ChromeImporter |
|
111 return ChromeImporter.ChromeImporter(id, parent) |
|
112 elif id == "opera": |
|
113 from . import OperaImporter |
|
114 return OperaImporter.OperaImporter(id, parent) |
|
115 elif id == "firefox": |
|
116 from . import FirefoxImporter |
|
117 return FirefoxImporter.FirefoxImporter(id, parent) |
|
118 elif id == "ie": |
|
119 from . import IExplorerImporter |
|
120 return IExplorerImporter.IExplorerImporter(id, parent) |
|
121 elif id == "safari": |
|
122 from . import SafariImporter |
|
123 return SafariImporter.SafariImporter(id, parent) |
|
124 else: |
|
125 raise ValueError("No importer for ID {0}.".format(id)) |