Tue, 18 Oct 2022 16:06:21 +0200
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
4955
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
8881
54e42bc2437a
Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
3 | # Copyright (c) 2016 - 2022 Detlev Offenbach <detlev@die-offenbachs.de> |
4955
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the image search engine. |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
10 | from PyQt6.QtCore import QObject, QUrl |
4955
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
12 | from eric7 import Preferences |
4955
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
4956
1496516b0f2c
Finished implementing the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4955
diff
changeset
|
14 | |
4955
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | class ImageSearchEngine(QObject): |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | """ |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | Class implementing the image search engine. |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
19 | |
4955
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | def __init__(self, parent=None): |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | """ |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | Constructor |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
23 | |
4955
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | @param parent reference to the parent object |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | @type QObject |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | """ |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
27 | super().__init__(parent) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
28 | |
4956
1496516b0f2c
Finished implementing the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4955
diff
changeset
|
29 | self.__searchEngineNames = ["Google", "TinEye", "Yandex"] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
30 | |
4955
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | def searchEngine(self): |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | """ |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | Public method to get the name of the current search engine. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
34 | |
4956
1496516b0f2c
Finished implementing the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4955
diff
changeset
|
35 | @return name of the current search engine |
1496516b0f2c
Finished implementing the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4955
diff
changeset
|
36 | @rtype str |
4955
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | """ |
4957
55c9bb589b0a
Added a configuration for the image search to the web browser config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4956
diff
changeset
|
38 | return Preferences.getWebBrowser("ImageSearchEngine") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
39 | |
4955
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | def setSearchEngine(self, searchEngine): |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | """ |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | Public method to set the current search engine. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
43 | |
4955
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | @param searchEngine name of the search engine |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | @type str |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | """ |
4957
55c9bb589b0a
Added a configuration for the image search to the web browser config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4956
diff
changeset
|
47 | Preferences.setWebBrowser("ImageSearchEngine", searchEngine) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
48 | |
4956
1496516b0f2c
Finished implementing the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4955
diff
changeset
|
49 | def searchEngineNames(self): |
1496516b0f2c
Finished implementing the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4955
diff
changeset
|
50 | """ |
1496516b0f2c
Finished implementing the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4955
diff
changeset
|
51 | Public method to get the list of supported search engines. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
52 | |
4956
1496516b0f2c
Finished implementing the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4955
diff
changeset
|
53 | @return list of supported search engines |
1496516b0f2c
Finished implementing the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4955
diff
changeset
|
54 | @rtype list of str |
1496516b0f2c
Finished implementing the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4955
diff
changeset
|
55 | """ |
1496516b0f2c
Finished implementing the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4955
diff
changeset
|
56 | return self.__searchEngineNames[:] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
57 | |
4955
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | def getSearchQuery(self, imageUrl, searchEngine=None): |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | """ |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | Public method to get the image search query URL. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
61 | |
4955
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | @param imageUrl URL of the image to search for |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | @type QUrl |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | @param searchEngine name of the image search engine to be used |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | @type str |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | @return search query URL |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | @rtype QUrl |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | """ |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | if not searchEngine: |
4957
55c9bb589b0a
Added a configuration for the image search to the web browser config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4956
diff
changeset
|
70 | searchEngine = self.searchEngine() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
71 | |
4955
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | searchEngine_l = searchEngine.lower() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
73 | if searchEngine_l == "google": # __IGNORE_WARNING_Y116__ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
74 | return QUrl( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
75 | "https://www.google.com/searchbyimage?" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
76 | "site=search&image_url={0}".format(imageUrl.toString()) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
77 | ) |
4955
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | elif searchEngine_l == "yandex": |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
79 | return QUrl( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
80 | "https://yandex.com/images/search?" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
81 | "&img_url={0}&rpt=imageview".format(imageUrl.toString()) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
82 | ) |
4955
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | elif searchEngine_l == "tineye": |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
84 | return QUrl( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
85 | "http://www.tineye.com/search?url={0}".format(imageUrl.toString()) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
86 | ) |
4955
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | else: |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | return QUrl() |