3
@6^K                 @   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_whoxyzVWhoxy:Investigate,Passive:Search Engines:apikey:Reverse Whois lookups using Whoxy.com.api_key zWhoxy.com API key.NFc             C   s8   || _ | j | _x"t|j D ]}|| | j|< qW d S )N)sftempStorageresultslistkeysopts)selfsfcuserOptsopt r   4/var/www/spiderfoot.crq.systems/modules/sfp_whoxy.pysetup#   s    
zsfp_whoxy.setupc             C   s   dgS )N	EMAILADDRr   )r   r   r   r   watchedEvents.   s    zsfp_whoxy.watchedEventsc             C   s   ddgS )NAFFILIATE_INTERNET_NAMEAFFILIATE_DOMAIN_NAMEr   )r   r   r   r   producedEvents2   s    zsfp_whoxy.producedEvents   c       	      C   s  d }d| j d  d }|d| d | d t| 7 }| jj|| j d dd	}|d
 dkrr| jjdd d| _d S |d d kr| jjd|  d S ytj|d }|j	dddkr| jjd|j	dd d d| _d S |j	dddkrL|j	d|j	dk r4|r|j
|j	d n
|j	d}| j|||d |S |j
|j	dg  |S n|j	dg S W n8 tk
r } z| jjdt| d d S d }~X nX d S )Nzhttps://api.whoxy.com/?key=r   z&reverse=whois&=z&page=_fetchtimeoutr   )timeout	useragentcode400429500403zLWhoxy API key seems to have been rejected or you have exceeded usage limits.FTcontentzNo Whoxy info found for statusr   zError querying Whoxy: Zstatus_reasonUnknownZtotal_pagesr   Zcurrent_pagesearch_resultz+Error processing JSON response from Whoxy: )r!   r"   r#   r$   )r   strr   fetchUrlerror
errorStateinfojsonloadsgetextendquery	Exception)	r   qry	querytypepageaccumr-   urlreser   r   r   r2   6   s<     
zsfp_whoxy.queryc             C   s(  |j }|j}|j}| jrd S | jjd| d |  | jd dkrZ| jjdd d| _d S || jkr|| jjd| d	  d S d| j|< | j	|d
}t
 }|d k	r$x|D ]x}|jd}|r|j |kr|j|j  nqtd|| j|}	| j|	 | jj|| jd rtd|| j|}
| j|
 qW d S )NzReceived event, z, from r   r   z1You enabled sfp_whoxy but did not set an API key!FTz	Skipping z as already mapped.emaildomain_namer   _internettldsr   )	eventTypemoduledatar,   r   debugr   r+   r
   r2   r   r0   lowerappendr   __name__notifyListenersisDomain)r   event	eventNamesrcModuleName	eventDatarecmyresrhr:   evtr   r   r   handleEvent`   s8    





zsfp_whoxy.handleEvent)r   N)rD   
__module____qualname____doc__r   optdescsr
   r,   dictr   r   r   r2   rP   r   r   r   r   r      s   
*r   )r.   sflibr   r   r   r   r   r   r   r   <module>   s   