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               @   s>   e Zd ZdZi ZdZe fddZdd Zdd Z	d	d
 Z
dS )sfp_blockchainzBlockchain:Footprint,Investigate,Passive:Public Registries::Queries blockchain.info to find the balance of identified bitcoin wallet addresses.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   9/var/www/spiderfoot.crq.systems/modules/sfp_blockchain.pysetup   s    
zsfp_blockchain.setupc             C   s   dgS )NZBITCOIN_ADDRESSr   )r   r   r   r   watchedEvents"   s    zsfp_blockchain.watchedEventsc             C   s   dgS )NBITCOIN_BALANCEr   )r   r   r   r   producedEvents(   s    zsfp_blockchain.producedEventsc       
      C   s  |j }|j}|j}| jjd| d |  || jkrL| jjd| d  d S d| j|< | jjd| | jd | jd d	}|d
 d kr| jjd|  d S y&t	j
|d
 }t|| d d }W n, tk
r } z| jjd d S d }~X nX tdt|d | j|}	| j|	 d S )NzReceived event, z, from z	Skipping z as already mapped.Tz'https://blockchain.info/balance?active=_fetchtimeout
_useragent)timeout	useragentcontentzNo Blockchain info found for Zfinal_balancei zError processing JSON response.r   z BTC)	eventTypemoduledatar   debugr   fetchUrlr   infojsonloadsfloat	Exceptionr   str__name__notifyListeners)
r   event	eventNamesrcModuleName	eventDataresr   Zbalanceeevtr   r   r   handleEvent,   s,    


zsfp_blockchain.handleEvent)r&   
__module____qualname____doc__r   r   dictr   r   r   r/   r   r   r   r   r      s   r   )r!   sflibr   r   r   r   r   r   r   r   <module>   s   