3
@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   s8   || _ | j | _x"t|j D ]}|| | j|< qW 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   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 jd
 d S ytj|d	 }W n6 tk
r } z| j jdt| d d S d }~X nX t }d|kr|d dkrx(|d D ]}|j	d|d   qW qd 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   sd  |j }|j}|j}| jjd| d |  || jkrL| jjd| d  d S d| j|< | j|}|d krld S x|D ]}td|| j|}| j	| | jj
|| jd | jd d	}|d
 d kr| jjd| d  qrtjdtj| d |d
 tjd krqry|d
 j|}	W n2 tk
r< } z| jjd wrW Y d d }~X nX td|d
 | j|}
| j	|
 qrW d S )NzReceived event, z, from z	Skipping z as already mapped.Tr   _fetchtimeout
_useragent)r   r   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   r2   r   __name__notifyListenersr$   r   researchescape
IGNORECASEindexBaseException)r   event	eventNamesrcModuleName	eventDatar"   nr/   r.   
startIndexevtr   r   r   handleEventZ   s:    




zsfp_psbdmp.handleEvent)r8   
__module____qualname____doc__r   optdescsr   dictr   r   r   r2   rG   r   r   r   r   r      s   "r   )r:   r&   sflibr   r   r   r   r   r   r   r   <module>   s   