3
@6^%                 @   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               @   sX   e Zd ZdZddiZddiZdZdZe fddZ	d	d
 Z
dd ZdddZdd ZdS )
sfp_hunterzpHunter.io:Footprint,Investigate,Passive:Search Engines:apikey:Check for e-mail addresses and names on hunter.io.api_key zHunter.io API key.NFc             C   s>   || _ | j | _d| _x"t|j D ]}|| | j|< q$W d S )NF)sftempStorageresults
errorStatelistkeysopts)selfsfcuserOptsopt r   5/var/www/spiderfoot.crq.systems/modules/sfp_hunter.pysetup#   s
    
zsfp_hunter.setupc             C   s   ddgS )NDOMAIN_NAMEINTERNET_NAMEr   )r   r   r   r   watchedEvents/   s    zsfp_hunter.watchedEventsc             C   s   ddgS )N	EMAILADDRRAW_RIR_DATAr   )r   r   r   r   producedEvents3   s    zsfp_hunter.producedEventsr   
   c             C   s   d }d| d | j d  d t| d t| }| jj|| j d dd}|d	 d
krZd S |d sfd S ytj|d }W n6 tk
r } z| jjdt| d d S d }~X nX |S )Nz.https://api.hunter.io/v2/domain-search?domain=z	&api_key=r   z&offset=z&limit=_fetchtimeoutr   )timeout	useragentcode404contentz/Error processing JSON response from hunter.io: F)r   strr   fetchUrljsonloads	Exceptionerror)r   toffsetlimitreturlreser   r   r   query6   s    .zsfp_hunter.queryc             C   s  |j }|j}|j}| jrd S | jjd| d |  || jkrV| jjd| d  d S d| j|< | jd dkr| jjdd	 d| _d S | j	|d
d}|sd S d|krd S d|kr|d j
dd}nd}t|d j
dt }x||krx|d j
dt D ]}td|d | j|}	| j|	 d|k rd|k r|d d k r|d d k r|d d |d  }
tdd|
 | j|}	| j|	  qW ||krd S | j	||d}|d krd S d|krd S |t|d j
dt 7 }qW d S )NzReceived event, z, from z	Skipping z as already mapped.Tr   r   z2You enabled sfp_hunter but did not set an API key!Fr   d   datametar
   emailsr   valueZ
first_name	last_name r   zPossible full name: )	eventTypemoduler2   r   r   debugr
   r   r(   r0   getlenr   r   __name__notifyListeners)r   event	eventNamesrcModuleName	eventDatar2   ZmaxgoalZrescountemailr/   nr   r   r   handleEventN   sR    







zsfp_hunter.handleEvent)r   r   )r=   
__module____qualname____doc__r   optdescsr
   r   dictr   r   r   r0   rE   r   r   r   r   r      s   
r   )r%   sflibr   r   r   r   r   r   r   r   <module>   s   