eric6/WebBrowser/ImageSearch/ImageSearchEngine.py

changeset 6942
2602857055c5
parent 6645
ad476851d7e0
child 7229
53054eb5b15a
equal deleted inserted replaced
6941:f99d60d6b59b 6942:2602857055c5
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2016 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing the image search engine.
8 """
9
10 from __future__ import unicode_literals
11
12 from PyQt5.QtCore import QObject, QUrl
13
14 import Preferences
15
16
17 class ImageSearchEngine(QObject):
18 """
19 Class implementing the image search engine.
20 """
21 def __init__(self, parent=None):
22 """
23 Constructor
24
25 @param parent reference to the parent object
26 @type QObject
27 """
28 super(ImageSearchEngine, self).__init__(parent)
29
30 self.__searchEngineNames = ["Google", "TinEye", "Yandex"]
31
32 def searchEngine(self):
33 """
34 Public method to get the name of the current search engine.
35
36 @return name of the current search engine
37 @rtype str
38 """
39 return Preferences.getWebBrowser("ImageSearchEngine")
40
41 def setSearchEngine(self, searchEngine):
42 """
43 Public method to set the current search engine.
44
45 @param searchEngine name of the search engine
46 @type str
47 """
48 Preferences.setWebBrowser("ImageSearchEngine", searchEngine)
49
50 def searchEngineNames(self):
51 """
52 Public method to get the list of supported search engines.
53
54 @return list of supported search engines
55 @rtype list of str
56 """
57 return self.__searchEngineNames[:]
58
59 def getSearchQuery(self, imageUrl, searchEngine=None):
60 """
61 Public method to get the image search query URL.
62
63 @param imageUrl URL of the image to search for
64 @type QUrl
65 @param searchEngine name of the image search engine to be used
66 @type str
67 @return search query URL
68 @rtype QUrl
69 """
70 if not searchEngine:
71 searchEngine = self.searchEngine()
72
73 searchEngine_l = searchEngine.lower()
74 if searchEngine_l == "google":
75 return QUrl("https://www.google.com/searchbyimage?"
76 "site=search&image_url={0}".format(
77 imageUrl.toString()))
78 elif searchEngine_l == "yandex":
79 return QUrl("https://yandex.com/images/search?"
80 "&img_url={0}&rpt=imageview".format(
81 imageUrl.toString()))
82 elif searchEngine_l == "tineye":
83 return QUrl("http://www.tineye.com/search?url={0}".format(
84 imageUrl.toString()))
85 else:
86 return QUrl()

eric ide

mercurial