WebBrowser/ImageSearch/ImageSearchEngine.py

changeset 4955
8a966fc19ce3
child 4956
1496516b0f2c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebBrowser/ImageSearch/ImageSearchEngine.py	Tue Apr 26 19:09:18 2016 +0200
@@ -0,0 +1,74 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2016 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the image search engine.
+"""
+
+from __future__ import unicode_literals
+
+from PyQt5.QtCore import QObject, QUrl
+
+import Preferences
+
+class ImageSearchEngine(QObject):
+    """
+    Class implementing the image search engine.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent object
+        @type QObject
+        """
+        super(ImageSearchEngine, self).__init__(parent)
+        
+        self.__searchEngine = Preferences.getWebBrowser("ImmageSearchEngine")
+    
+    def searchEngine(self):
+        """
+        Public method to get the name of the current search engine.
+        """
+        return self.__searchEngine
+    
+    def setSearchEngine(self, searchEngine):
+        """
+        Public method to set the current search engine.
+        
+        @param searchEngine name of the search engine
+        @type str
+        """
+        self.__searchEngine = searchEngine
+        Preferences.setWebBrowser("ImmageSearchEngine", searchEngine)
+    
+    def getSearchQuery(self, imageUrl, searchEngine=None):
+        """
+        Public method to get the image search query URL.
+        
+        @param imageUrl URL of the image to search for
+        @type QUrl
+        @param searchEngine name of the image search engine to be used
+        @type str
+        @return search query URL
+        @rtype QUrl
+        """
+        if not searchEngine:
+            searchEngine = self.__searchEngine
+        
+        searchEngine_l = searchEngine.lower()
+        if searchEngine_l == "google":
+            return QUrl("https://www.google.com/searchbyimage?"
+                        "site=search&image_url={0}".format(
+                        imageUrl.toString()))
+        elif searchEngine_l == "yandex":
+            return QUrl("https://yandex.com/images/search?"
+                        "&img_url={0}&rpt=imageview".format(
+                        imageUrl.toString()))
+        elif searchEngine_l == "tineye":
+            return QUrl("http://www.tineye.com/search?url={0}".format(
+                        imageUrl.toString()))
+        else:
+            return QUrl()

eric ide

mercurial