WebBrowser/ImageSearch/ImageSearchEngine.py

Tue, 26 Apr 2016 19:09:18 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 26 Apr 2016 19:09:18 +0200
changeset 4955
8a966fc19ce3
child 4956
1496516b0f2c
permissions
-rw-r--r--

Started to implement the image search functionality for the new web browser.

# -*- 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