3
@6^                 @   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               @   sZ   e Zd ZdZdddZddd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_iknowwhatyoudownloadzIknowwhatyoudownload.com:Footprint,Investigate,Passive:Secondary Networks:apikey:Check iknowwhatyoudownload.com for IP addresses that have been using BitTorrent.    )daysbackapi_keyz,How far back (in days) to look for activity.z!Iknowwhatyoudownload.com API key.NFc             C   s>   || _ | j | _d| _x"t|j D ]}|| | j|< q$W d S )NF)sftempStorageresults
errorStatelistkeysopts)selfsfcuserOptsopt r   C/var/www/spiderfoot.crq.systems/modules/sfp_iknowwhatyoudownload.pysetup%   s
    
zsfp_iknowwhatyoudownload.setupc             C   s
   dg}|S )N
IP_ADDRESSr   )r   retr   r   r   watchedEvents1   s    z&sfp_iknowwhatyoudownload.watchedEventsc             C   s
   dg}|S )NMALICIOUS_IPADDRr   )r   r   r   r   r   producedEvents7   s    z'sfp_iknowwhatyoudownload.producedEventsc       	      C   sR  d }d }d}|| d t | jd  }|d| jd  7 }| jj|| jd dd}|d	 dkrl| 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 d|kr|d dkrd| _	| jjdd d S d|krJt
|d dkrDd| d }x<|d D ]*}||d d d |jdd d 7 }qW nd S nd S |S )Nz)https://api.antitor.com/history/peer/?ip=z&days=r   z&key=r	   _fetchtimeoutr   )timeout	useragentcode403500z=Unable to fetch data from iknowwhatyoudownload.com right now.contentz>Error processing JSON response from iknowwhatyoudownload.com: FerrorZINVALID_DAYSTzfThe number of days you have configured is not accepted. If you have the demo key, try 30 days or less.contentsr   z4<SFURL>https://iknowwhatyoudownload.com/en/peer/?ip=z	</SFURL>
Ztorrentnamez (ZendDatezDate unknownz)
)r!   r"   )strr   r
   fetchUrlinfojsonloads	Exceptionr$   r   lenget)	r   qryr   retdatabaseurlresedr   r   r   query<   s:    
*zsfp_iknowwhatyoudownload.queryc             C   s   |j }|j}|j}| jjd| d |  | jr4d S | 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 krd S t
d
|| j|}| j| d S )NzReceived event, z, from r	   r   z@You enabled sfp_iknowwhatyoudownload but did not set an API key!FTz	Skipping z as already mapped.r   )	eventTypemoduledatar
   debugr   r   r$   r   r6   r   __name__notifyListeners)r   event	eventNamesrcModuleName	eventDatar9   r4   r   r   r   handleEvente   s&    


z$sfp_iknowwhatyoudownload.handleEvent)r;   
__module____qualname____doc__r   optdescsr   r   dictr   r   r   r6   rA   r   r   r   r   r      s   )r   )r*   sflibr   r   r   r   r   r   r   r   <module>   s   