Tue, 26 Apr 2016 19:09:18 +0200
Started to implement the image search functionality for the new web browser.
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 | |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | # Copyright (c) 2016 Detlev Offenbach <detlev@die-offenbachs.de> |
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 | |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | from __future__ import unicode_literals |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | from PyQt5.QtCore import QObject, QUrl |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | import Preferences |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | 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
|
17 | """ |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | 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
|
19 | """ |
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 |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
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 | """ |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | super(ImageSearchEngine, self).__init__(parent) |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | self.__searchEngine = Preferences.getWebBrowser("ImmageSearchEngine") |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | |
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. |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | """ |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | return self.__searchEngine |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | 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
|
38 | """ |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | Public method to set the current search engine. |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | @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
|
42 | @type str |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | """ |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | self.__searchEngine = searchEngine |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | Preferences.setWebBrowser("ImmageSearchEngine", searchEngine) |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | 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
|
48 | """ |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | Public method to get the image 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
|
50 | |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | @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
|
52 | @type QUrl |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | @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
|
54 | @type str |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | @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
|
56 | @rtype QUrl |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | """ |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | if not searchEngine: |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | searchEngine = self.__searchEngine |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | searchEngine_l = searchEngine.lower() |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | if searchEngine_l == "google": |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | return QUrl("https://www.google.com/searchbyimage?" |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | "site=search&image_url={0}".format( |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | imageUrl.toString())) |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | elif searchEngine_l == "yandex": |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | return QUrl("https://yandex.com/images/search?" |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | "&img_url={0}&rpt=imageview".format( |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | imageUrl.toString())) |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | elif searchEngine_l == "tineye": |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | return QUrl("http://www.tineye.com/search?url={0}".format( |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | imageUrl.toString())) |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | else: |
8a966fc19ce3
Started to implement the image search functionality for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | return QUrl() |