U
    @6^%                     @   s8   d dl Z 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                   @   sN   e Zd ZdZi Zi 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_emailrepzgEmailRep:Footprint,Investigate,Passive:Search Engines::Search EmailRep.io for email address reputation.NFc                 C   s:   || _ |  | _d| _t| D ]}|| | j|< q"d S )NF)sftempStorageresults
errorStatelistkeysopts)selfsfcuserOptsopt r   7/var/www/spiderfoot.crq.systems/modules/sfp_emailrep.pysetup   s
    
zsfp_emailrep.setupc                 C   s   dgS )N	EMAILADDRr   r   r   r   r   watchedEvents%   s    zsfp_emailrep.watchedEventsc                 C   s
   dddgS )NRAW_RIR_DATAEMAILADDR_COMPROMISEDMALICIOUS_EMAILADDRr   r   r   r   r   producedEvents(   s    zsfp_emailrep.producedEventsc              
   C   s   | j jd| d| jd d}td |d d kr6d S |d dkrZ| j d	d
 d| _d S |d dkr~| j dd
 d| _d S |d dkr| j d|d  d
 d| _d S zt|d }W n< t	k
r } z| j 
dt|  W Y d S d }~X Y nX |S )Nzhttps://emailrep.io/Zcurl_fetchtimeout)	useragenttimeout   contentcode400zAPI error: Bad requestFT429zAPI error: Too Many Requests200z#Unexpected reply from EmailRep.io: z Error processing JSON response: )r   fetchUrlr   timesleeperrorr	   jsonloadsBaseExceptiondebugstr)r   qryresdataer   r   r   query,   s2    
zsfp_emailrep.queryc           
      C   s   |j }|j}|j}|| jkr d S d| j|< | jd| d |  | |}|d krXd S tdt|| j	|}| 
| |d}|sd S |d}|rtd|d | j	|}| 
| |d	}	|	rtd
d| d | j	|}| 
| d S )NTzReceived event, z, from r   detailscredentials_leakedr   z
 [Unknown]malicious_activityr   z
EmailRep [])	eventTypemoduler/   r   r   r+   r1   r   r,   __name__notifyListenersget)
r   event	eventNamesrcModuleName	eventDatar.   evtr2   r3   r4   r   r   r   handleEventN   s.    







zsfp_emailrep.handleEvent)r8   
__module____qualname____doc__r   optdescsr   r	   dictr   r   r   r1   r@   r   r   r   r   r      s   "r   )r(   r%   sflibr   r   r   r   r   r   r   r   <module>   s   