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               @   sN   e Zd ZdZddiZddiZdZdZe fddZ	d	d
 Z
dd Zdd ZdS )sfp_googlemapszGoogle Maps:Footprint,Investigate,Passive:Real World:apikey:Identifies potential physical addresses and latitude/longitude coordinates.api_key zGoogle Geocoding 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   9/var/www/spiderfoot.crq.systems/modules/sfp_googlemaps.pysetup    s
    
zsfp_googlemaps.setupc             C   s   ddgS )NDOMAIN_NAMEPHYSICAL_ADDRESSr   )r   r   r   r   watchedEvents)   s    zsfp_googlemaps.watchedEventsc             C   s   ddgS )Nr   PHYSICAL_COORDINATESr   )r   r   r   r   producedEvents/   s    zsfp_googlemaps.producedEventsc             C   s  |j }|j}|j}| jrd S | jjd| d |  | jd dkrZ| jjdd d| _d S || jkr|| jjd| d	  d S d| j|< | jj	d
| d | jd  | jd | jd d}|d d kr| jj
d|  d S td|d | j|}| j| ytj|d d d }|dkrt|dkrtd|krtt|d d d }t|d d d }	td|d |	 | j|}| j| d|krtd|d | j|}| j| W n6 tk
r }
 z| jjdt|
  d S d }
~
X nX d S ) NzReceived event, z, from r   r   z6You enabled sfp_googlemaps but did not set an API key!FTz	Skipping z as already mapped.z:https://maps.googleapis.com/maps/api/geocode/json?address=z&key=_fetchtimeout
_useragent)timeout	useragentcontentzNo location info found for SEARCH_ENGINE_WEB_CONTENTr
   r   r   r   r   geometrylocationlatlngr   ,Zformatted_addressz Error processing JSON response: )r   r   )	eventTypemoduledatar   r   debugr   errorr
   fetchUrlinfor   __name__notifyListenersjsonloadsstr	Exception)r   event	eventNamesrcModuleName	eventDataresevtr(   r#   r$   er   r   r   handleEvent3   sT    












zsfp_googlemaps.handleEvent)r-   
__module____qualname____doc__r   optdescsr
   r   dictr   r   r   r:   r   r   r   r   r      s   	r   )r/   sflibr   r   r   r   r   r   r   r   <module>   s   