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                   @   sJ   e Zd ZdZi Zi ZdZe fddZdd Z	dd Z
d	d
 Zdd ZdS )
sfp_psbdmpzPsbdmp.com:Footprint,Investigate,Passive:Leaks, Dumps and Breaches::Check psbdmp.cc (PasteBin Dump) for potentially hacked e-mails and domains.Nc                 C   s4   || _ |  | _t| D ]}|| | j|< qd S )N)sftempStorageresultslistkeysopts)selfsfcuserOptsopt r   5/var/www/spiderfoot.crq.systems/modules/sfp_psbdmp.pysetup"   s    
zsfp_psbdmp.setupc                 C   s   dddg}|S )N	EMAILADDRDOMAIN_NAMEINTERNET_NAMEr   r   retr   r   r   watchedEvents-   s    
zsfp_psbdmp.watchedEventsc                 C   s
   dg}|S )NLEAKSITE_URLr   r   r   r   r   producedEvents3   s    zsfp_psbdmp.producedEventsc              
   C   s   d }d|krd| }nd| }| j j|ddd}|d dksH|d	 d krX| j d
 d S zt|d	 }W n> tk
r } z | j dt| d W Y d S d }~X Y nX t }d|kr|d dkr|d D ]}|	d|d   qqd S nd S |S )N@z#https://psbdmp.cc/api/search/email/z$https://psbdmp.cc/api/search/domain/   r   timeout	useragentcode403contentz.Unable to fetch data from psbdmp.cc right now.z/Error processing JSON response from psbdmp.cc: Fcountr   datazhttps://psbdmp.cc/id)
r   fetchUrlinfojsonloads	Exceptionerrorstrr	   append)r   qryr   urlreseidsdr   r   r   query8   s.    

zsfp_psbdmp.queryc                 C   sf  |j }|j}|j}| jd| d |  || jkrL| jd| d  d S d| j|< | |}|d krld S |D ]}td|| j|}| 	| | jj
|| jd | jd d	}|d
 d kr| jd| d  qptdt| d |d
 tjd krqpz|d
 |}	W n8 tk
r@ } z| jd W Y qpW 5 d }~X Y nX td|d
 | j|}
| 	|
 qpd S )NzReceived event, z, from z	Skipping z as already mapped.Tr   _fetchtimeout
_useragentr   r"   z	Ignoring z as no data returnedz[^a-zA-Z\-\_0-9]z#String not found in pastes content.ZLEAKSITE_CONTENT)	eventTypemoduler$   r   debugr   r4   r   __name__notifyListenersr&   r   researchescape
IGNORECASEindexBaseException)r   event	eventNamesrcModuleName	eventDatar$   nr1   r0   
startIndexevtr   r   r   handleEventZ   sH    



 zsfp_psbdmp.handleEvent)r:   
__module____qualname____doc__r   optdescsr   dictr   r   r   r4   rI   r   r   r   r   r      s   "r   )r<   r(   sflibr   r   r   r   r   r   r   r   <module>   s   