
    i&                         d dl Z d dl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mZ d d	lmZ  e j*                  d
      Zej.                   G d de             Zy)    N)gettext)TRACKER_PATTERNS   )Plugin
PluginInfo)SearchWithPlugins)SXNG_Request)ResultLegacyResult)	PluginCfgz!searx.plugins.tracker_url_removerc            
       x     e Zd ZdZdZd fdZdddefdZdd	d
ddddefdZe	ddde
de
dee
z  fd       Z xZS )
SXNGPluginz0Remove trackers arguments from the returned URL.tracker_url_removerreturnc                     t         |   |       t        | j                  t	        d      t	        d      d      | _        y )NzTracker URL removerz/Remove trackers arguments from the returned URLprivacy)idnamedescriptionpreference_section)super__init__r   r   r   info)selfplg_cfg	__class__s     2/root/searxng/searx/plugins/tracker_url_remover.pyr   zSXNGPlugin.__init__   s8    !ww./ QR(	
	    appzflask.Flaskc                 ,    t        j                          yNT)r   init)r   r   s     r   r"   zSXNGPlugin.init(   s    r   requestr	   searchr   resultr
   c                 :    |j                  | j                         yr!   )filter_urlsfilter_url_field)r   r#   r$   r%   s       r   	on_resultzSXNGPlugin.on_result,   s    4001r   zResult|LegacyResult
field_nameurl_srcc                 `    |st         j                  d|       yt        j                  |      S )zReturns bool ``True`` to use URL unchanged (``False`` to ignore URL).
        If URL should be modified, the returned string is the new URL to use.zmissing a URL in field %sT)url)logdebugr   	clean_url)clsr%   r*   r+   s       r   r(   zSXNGPlugin.filter_url_field1   s*    
 II1:>))g66r   )r   r   r   N)__name__
__module____qualname____doc__r   r   boolr"   r)   classmethodstrr(   __classcell__)r   s   @r   r   r      s    :	B
 $  9L V^ cg 
 7&; 7 7WZ 7_cfi_i 7 7r   r   )loggingtypingtflask_babelr   
searx.datar    r   r   TYPE_CHECKINGflasksearx.searchr   searx.extended_typesr	   searx.result_typesr
   r   searx.pluginsr   	getLoggerr.   finalr    r   r   <module>rI      s`       '  ??.17' g;< !7 !7 	!7r   