3
@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   sD   || _ | j | _d | _d| _x"t|j D ]}|| | j|< q*W 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jd| d |  | jr4d S | jd kr| jj| jd dd}|d d k	r|d j	d}| jjdt
t|  ytj|| _W q tk
r } z"d	| _| jjd
t
| d W Y d d }~X qX nd	| _| jjd| jd  d d|krd}nd}|| jkr"d	| j|< n| jjd d S y8| jrh| jj|rhtd| || j|}	| j|	 W n@ tk
r } z"| jjd
t
| d d	| _W Y d d }~X 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   sD    
*


zsfp_adblock.handleEvent)r)   
__module____qualname____doc__r   optdescsr	   r
   r   dictr   r   r   r3   r   r   r   r   r      s   
r   )r&   sflibr   r   r   r   r   r   r   r   <module>   s   