eric6/Helpviewer/OpenSearch/OpenSearchReader.py

changeset 7220
5cf645f6daab
parent 7218
eaf2cf171f3a
parent 7211
1c97f3142fa8
child 7221
0485ccdf7877
--- a/eric6/Helpviewer/OpenSearch/OpenSearchReader.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a reader for open search engine descriptions.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QXmlStreamReader, QIODevice, QCoreApplication
-
-
-class OpenSearchReader(QXmlStreamReader):
-    """
-    Class implementing a reader for open search engine descriptions.
-    """
-    def read(self, device):
-        """
-        Public method to read the description.
-        
-        @param device device to read the description from (QIODevice)
-        @return search engine object (OpenSearchEngine)
-        """
-        self.clear()
-        
-        if not device.isOpen():
-            device.open(QIODevice.ReadOnly)
-        
-        self.setDevice(device)
-        return self.__read()
-    
-    def __read(self):
-        """
-        Private method to read and parse the description.
-        
-        @return search engine object (OpenSearchEngine)
-        """
-        from .OpenSearchEngine import OpenSearchEngine
-        engine = OpenSearchEngine()
-        
-        while not self.isStartElement() and not self.atEnd():
-            self.readNext()
-        
-        if self.name() != "OpenSearchDescription" or \
-           self.namespaceUri() != "http://a9.com/-/spec/opensearch/1.1/":
-            self.raiseError(QCoreApplication.translate(
-                "OpenSearchReader",
-                "The file is not an OpenSearch 1.1 file."))
-            return engine
-        
-        while not self.atEnd():
-            self.readNext()
-            
-            if not self.isStartElement():
-                continue
-            
-            if self.name() == "ShortName":
-                engine.setName(self.readElementText())
-                
-            elif self.name() == "Description":
-                engine.setDescription(self.readElementText())
-                
-            elif self.name() == "Url":
-                type_ = self.attributes().value("type")
-                url = self.attributes().value("template")
-                method = self.attributes().value("method")
-                
-                if type_ == "application/x-suggestions+json" and \
-                   engine.suggestionsUrlTemplate():
-                    continue
-                
-                if (not type_ or
-                    type_ == "text/html" or
-                    type_ == "application/xhtml+xml") and \
-                   engine.searchUrlTemplate():
-                    continue
-                
-                if not url:
-                    continue
-                
-                parameters = []
-                
-                self.readNext()
-                
-                while not (self.isEndElement() and self.name() == "Url"):
-                    if not self.isStartElement() or \
-                       (self.name() != "Param" and self.name() != "Parameter"):
-                        self.readNext()
-                        continue
-                    
-                    key = self.attributes().value("name")
-                    value = self.attributes().value("value")
-                    
-                    if key and value:
-                        parameters.append((key, value))
-                    
-                    while not self.isEndElement():
-                        self.readNext()
-                
-                if type_ == "application/x-suggestions+json":
-                    engine.setSuggestionsUrlTemplate(url)
-                    engine.setSuggestionsParameters(parameters)
-                    engine.setSuggestionsMethod(method)
-                elif not type_ or \
-                    type_ == "text/html" or \
-                        type_ == "application/xhtml+xml":
-                    engine.setSearchUrlTemplate(url)
-                    engine.setSearchParameters(parameters)
-                    engine.setSearchMethod(method)
-                
-            elif self.name() == "Image":
-                engine.setImageUrl(self.readElementText())
-            
-            if engine.name() and \
-               engine.description() and \
-               engine.suggestionsUrlTemplate() and \
-               engine.searchUrlTemplate() and \
-               engine.imageUrl():
-                break
-        
-        return engine

eric ide

mercurial