3
@6^                 @   s(   d dl mZmZmZ G dd deZdS )    )
SpiderFootSpiderFootPluginSpiderFootEventc               @   sR   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S )sfp_googlesearchzGoogle:Footprint,Investigate,Passive:Search Engines:apikey:Obtain information from the Google Custom Search API to identify sub-domains and links. z!013611106330597893267:tfgl3wxdtbp)api_keycse_idz!Google API Key for Google search.zGoogle Custom Search Engine ID.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   ;/var/www/spiderfoot.crq.systems/modules/sfp_googlesearch.pysetup$   s
    
zsfp_googlesearch.setupc             C   s   dgS )NINTERNET_NAMEr   )r   r   r   r   watchedEvents-   s    zsfp_googlesearch.watchedEventsc             C   s   ddgS )NLINKED_URL_INTERNALRAW_RIR_DATAr   )r   r   r   r   producedEvents3   s    zsfp_googlesearch.producedEventsc                sx  |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
  jd jd jd jd dd}|d krd S |d }t
t|tjj  }x|D ]}dj|< qW  fdd|D }x8|D ]0}	jjd|	  td|	j|}
j|
 qW |rttdt|j|}
j|
 d S )NzReceived event, z, from r   r   z>You enabled sfp_googlesearch but did not set a Google API key!FTzAlready did a search for z, skipping.zsite:_fetchtimeout
_useragentr   )timeout	useragentr   r   )searchStringr   urlsc                s"   g | ]}j j|j r|qS r   )r	   urlFQDNendswith).0link)	eventDatar   r   r   
<listcomp>a   s    z0sfp_googlesearch.handleEvent.<locals>.<listcomp>zFound a link: r   r   )	eventTypemoduledatar   r	   debugr   errorr   googleIterater   setr   r   __name__notifyListenersstr)r   event	eventNamesrcModuleNameresr!   Z	new_linkslZinternal_linksr%   evtr   )r&   r   r   handleEvent6   sF    



zsfp_googlesearch.handleEvent)r/   
__module____qualname____doc__r   optdescsr   r   dictr   r   r   r8   r   r   r   r   r      s   	r   N)sflibr   r   r   r   r   r   r   r   <module>   s   