U
    @6^P                     @   s0   d dl Z d dlmZmZmZ G dd deZdS )    N)
SpiderFootSpiderFootPluginSpiderFootEventc                   @   sR   e Zd ZdZddiZddiZdZdZdZe	 fddZ
d	d
 Zdd Zdd ZdS )sfp_adblockzmAdBlock Check:Investigate,Passive:Reputation Systems::Check if linked pages would be blocked by AdBlock Plus.	blocklistz7https://easylist-downloads.adblockplus.org/easylist.txtzAdBlockPlus block list.NFc                 C   s@   || _ |  | _d | _d| _t| D ]}|| | j|< q(d S )NF)sftempStorageresultsrules
errorStatelistkeysopts)selfsfcuserOptsopt r   6/var/www/spiderfoot.crq.systems/modules/sfp_adblock.pysetup"   s    
zsfp_adblock.setupc                 C   s   ddgS )NLINKED_URL_INTERNALLINKED_URL_EXTERNALr   r   r   r   r   watchedEvents,   s    zsfp_adblock.watchedEventsc                 C   s   ddgS )NZURL_ADBLOCKED_INTERNALZURL_ADBLOCKED_EXTERNALr   r   r   r   r   producedEvents2   s    zsfp_adblock.producedEventsc           
   
   C   s  |j }|j}|j}| jd| d |  | jr4d S | jd kr| jj| jd dd}|d d k	r|d 	d}| jdt
t|  zt|| _W q tk
r } z d	| _| jd
t
| d W 5 d }~X Y qX nd	| _| jd| jd  d d|krd}nd}|| jkr"d	| j|< n| jd d S z8| jrh| j|rhtd| || j|}	| |	 W n@ tk
r } z | jd
t
| d d	| _W 5 d }~X Y nX d S )NzReceived event, z, from r      )timeoutcontent
zRULE LINES: Tz%Parsing error handling AdBlock list: Fz%Unable to download AdBlockPlus list: Z	_EXTERNALZ	_INTERNALz9Already checked this page for AdBlock matching, skipping.ZURL_ADBLOCKED)	eventTypemoduledatar   debugr   r
   fetchUrlr   splitstrlenadblockparserZAdblockRulesBaseExceptionerrorr	   Zshould_blockr   __name__notifyListeners)
r   event	eventNamesrcModuleName	eventDatarawlineseZpagetypeevtr   r   r   handleEvent6   sH    
*

 zsfp_adblock.handleEvent)r*   
__module____qualname____doc__r   optdescsr	   r
   r   dictr   r   r   r4   r   r   r   r   r      s     
r   )r'   sflibr   r   r   r   r   r   r   r   <module>   s   