eric6/Helpviewer/OpenSearch/OpenSearchReader.py

branch
maintenance
changeset 7286
7eb04391adf7
parent 7226
babe80d84a3e
parent 7285
1ff497f33f31
child 7287
1c17f2191bdd
--- a/eric6/Helpviewer/OpenSearch/OpenSearchReader.py	Mon Sep 09 18:52:08 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