U
    @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   s4   || _ |  | _t| D ]}|| | j|< q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dd d| _d S |d d kr| jd|  d S zt|d }|	dddkr| jd|	dd d d| _W d S |	dddkrR|	d|	dk r8|r|
|	d n
|	d}| |||d |W S |
|	dg  |W S n|	dg W S W n@ tk
r } z | jdt| d W Y d S d }~X Y 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   strr   fetchUrlerror
errorStateinfojsonloadsgetextendquery	Exception)	r   qry	querytypepageaccumr.   urlreser   r   r   r3   6   s>     
zsfp_whoxy.queryc                 C   s$  |j }|j}|j}| jrd S | jd| d |  | jd dkrZ| jdd d| _d S || jkr|| jd| d	  d S d| j|< | 	|d
}t
 }|d k	r |D ]x}|d}|r| |kr||  nqtd|| j|}	| |	 | j|| jd rtd|| j|}
| |
 qd 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
   r3   r   r1   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)rE   
__module____qualname____doc__r   optdescsr
   r-   dictr   r   r   r3   rQ   r   r   r   r   r      s     
*r   )r/   sflibr   r   r   r   r   r   r   r   <module>   s   