
    i                         U d dl Zd dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZmZ ej                  rd dlZd dlmZ d dlmZ d d	lmZ d d
l
mZ g aee   ed<   ej4                   G d de             Zy)    N)md5)gettext)ahmia_blacklist_loader)get_setting)Plugin
PluginInfo)SearchWithPlugins)SXNG_Request)Result)	PluginCfgahmia_blacklistc                   P     e Zd ZdZdZd fdZddddd	d
defdZdddefdZ xZ	S )
SXNGPluginz[Filter out onion results that appear in Ahmia's blacklist (See https://ahmia.fi/blacklist).ahmia_filterreturnc                     t         |   |       t        | j                  t	        d      t	        d      d      | _        y )NzAhmia blacklistz:Filter out onion results that appear in Ahmia's blacklist.general)idnamedescriptionpreference_section)super__init__r   r   r   info)selfplg_cfg	__class__s     +/root/searxng/searx/plugins/ahmia_filter.pyr   zSXNGPlugin.__init__   s8    !ww*+ \](	
	    requestr
   searchr	   resultr   c                     t        |dd      rt        |dd      syt        |d   j                  j                               j	                         }|t
        vS )Nis_onionF
parsed_urlT)getattrr   hostnameencode	hexdigestr   )r   r    r!   r"   result_hashs        r   	on_resultzSXNGPlugin.on_result&   sQ     vz51W\9]&.77>>@AKKM/11r   appzflask.Flaskc                 0    t        d      syt               ay)Nzoutgoing.using_tor_proxyFT)r   r   r   )r   r,   s     r   initzSXNGPlugin.init.   s    5602r   )r   r   r   N)
__name__
__module____qualname____doc__r   r   boolr+   r.   __classcell__)r   s   @r   r   r      sH    e	B
2%2/B2LT2	2 $ r   r   )typingthashlibr   flask_babelr   
searx.datar   searxr   searx.pluginsr   r   TYPE_CHECKINGflasksearx.searchr	   searx.extended_typesr
   searx.result_typesr   r   r   liststr__annotations__finalr    r   r   <module>rF      s\       -  ,??.1)'c    	r   