U
    @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   s4   || _ |  | _t| D ]}|| | j|< q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d| d |  || jkrL| jd| d  d S d| j|< | jjd| | jd | jd d	}|d
 d kr| jd|  d S z&t	
|d
 }t|| d d }W n4 tk
r } z| jd W Y d S d }~X Y nX tdt|d | 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,   s0    

 
zsfp_blockchain.handleEvent)r'   
__module____qualname____doc__r   r   dictr   r   r   r0   r   r   r   r   r      s   r   )r"   sflibr   r   r   r   r   r   r   r   <module>   s   