
    i                        d Z ddlZddlZddlmZmZ ej                  rddlm	Z	 ddl
mZ  ej                  d       ej                  d       ej                  d	      d
Z	  G d dej                        Z G d dee      Z G d de      Zy)z1Processor used for ``online_url_search`` engines.    N   )OnlineProcessorOnlineParams)EngineProcessor)SearchQueryzhttps?:\/\/[^ ]*zftps?:\/\/[^ ]*zdata:image/[^; ]*;base64,[^ ]*)httpftpz
data:imagec                   ,    e Zd ZU dZeeedz  f   ed<   y)	UrlParamszURL request parameters.Nsearch_urls)__name__
__module____qualname____doc__dictstr__annotations__     :/root/searxng/searx/search/processors/online_url_search.pyr   r      s    !c3:o&&r   r   c                       e Zd ZdZy)OnlineUrlSearchParamsz5Request parameters of a ``online_url_search`` engine.N)r   r   r   r   r   r   r   r   r      s    ?r   r   c                   F     e Zd ZU dZdZeed<   dddededz  f fd	Z xZ	S )
OnlineUrlSearchProcessorz6Processor class used by ``online_url_search`` engines.online_url_searchengine_typesearch_queryr   engine_categoryreturnNc                     t         
|   ||      }|yi }d}t        j                         D ]2  \  }}d||<   |j	                  |j
                        }|s)d}|d   ||<   4 |syi |d|i}	|	S )zReturns a dictionary with the :ref:`request params <engine request
        online_currency>` (:py:obj:`OnlineUrlSearchParams`).  ``None`` is
        returned if the search query does not match :py:obj:`search_syntax`.NFTr   r   )super
get_paramssearch_syntaxitemssearchquery)selfr   r   online_paramsr   	has_match
url_schemaurl_remparams	__class__s             r   r"   z#OnlineUrlSearchProcessor.get_params%   s    
 .3W-?o-^ -/	"/"5"5"7 	/J&*K
#l001A 	*+A$J'	/ )
)
;)

 r   )
r   r   r   r   r   r   r   r   r"   __classcell__)r.   s   @r   r   r       s6    @*K*} s OdgkOk  r   r   )r   typingtreonliner   r   TYPE_CHECKINGabstractr   searx.search.modelsr   compiler#   	TypedDictr   r   r   r   r   r   <module>r9      s    7  	 1??)/ BJJ*+2::()"**=>
 +' '@I| @   r   