U
    @6^3                     @   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                   @   sZ   e Zd ZdZdddZdddZdZdZe fdd	Z	d
d Z
dd Zdd Zdd ZdS )	sfp_zonehzZone-H Defacement Check:Investigate,Passive:Leaks, Dumps and Breaches::Check if a hostname/domain appears on the zone-h.org 'special defacements' RSS feed.T)checkcohostscheckaffiliateszCheck co-hosted sites?zCheck affiliates?NFc                 C   s:   || _ |  | _d| _t| D ]}|| | j|< q"d S )NF)sftempStorageresults
errorStatelistkeysopts)selfsfcuserOptsopt r   4/var/www/spiderfoot.crq.systems/modules/sfp_zoneh.pysetup)   s
    
zsfp_zoneh.setupc                 C   s   dddddgS )NINTERNET_NAME
IP_ADDRESSAFFILIATE_INTERNET_NAMEAFFILIATE_IPADDRCO_HOSTED_SITEr   r   r   r   r   watchedEvents6   s
     zsfp_zoneh.watchedEventsc                 C   s   dddddgS )NDEFACED_INTERNET_NAMEDEFACED_IPADDRDEFACED_AFFILIATE_INTERNET_NAMEDEFACED_COHOSTDEFACED_AFFILIATE_IPADDRr   r   r   r   r   producedEvents>   s
     zsfp_zoneh.producedEventsc                 C   sV   t d|}|D ]@}||d kr| jd|d   |d d |d  d   S qdS )NzS<title><\!\[CDATA\[(.[^\]]*)\]\]></title>\s+<link><\!\[CDATA\[(.[^\]]*)\]\]></link>r   zFound zoneh site: z
<SFURL>   z</SFURL>F)refindallr   info)r   targetcontentgrpsmr   r   r   
lookupItemC   s    zsfp_zoneh.lookupItemc                 C   sz  |j }|j}|j}| jd| d |  | jr4d S || jkrV| jd| d  d S d| j|< |dkrv| jd svd S |dks|d	kr| jd
 sd S d}|dkrd}|dkrd}|dkrd}|d	krd}|  rd S d}| j	dd}|d krJ| jj
|| jd d}|d d kr0| jd| d d| _d S | jd|d  |d }| ||}	|	rvt||	| j|}
| |
 d S )NzReceived event, z, from z	Skipping z, already checked.Tr   r   r   r   r   r   r   r   r    r   r!   z-https://www.zone-h.org/rss/specialdefacementsZsfzoneh0   
_useragent)	useragentr(   zUnable to fetch F)	eventTypemoduledatar   debugr   r
   r   checkForStopcacheGetfetchUrlerrorcachePutr+   r   __name__notifyListeners)r   event	eventNamesrcModuleName	eventDataevtTypeurlr(   r1   retevtr   r   r   handleEventM   sR    


zsfp_zoneh.handleEvent)r8   
__module____qualname____doc__r   optdescsr
   r   dictr   r   r"   r+   rB   r   r   r   r   r      s   
r   )r$   sflibr   r   r   r   r   r   r   r   <module>   s   