U
    @6^b                     @   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_bingsearchzxBing:Footprint,Investigate,Passive:Search Engines:apikey:Obtain information from bing to identify sub-domains and links.    )pagesapi_keyz3Number of max bing results to request from the API.zBing API Key for Bing search.NFc                 C   s:   || _ |  | _d| _t| D ]}|| | j|< q"d S )NF)sftempStorageresults
errorStatelistkeysopts)selfsfcuserOptsopt r   9/var/www/spiderfoot.crq.systems/modules/sfp_bingsearch.pysetup!   s
    
zsfp_bingsearch.setupc                 C   s   dgS )NINTERNET_NAMEr   r   r   r   r   watchedEvents*   s    zsfp_bingsearch.watchedEventsc                 C   s   ddgS )NLINKED_URL_INTERNALRAW_RIR_DATAr   r   r   r   r   producedEvents0   s    zsfp_bingsearch.producedEventsc                    sp  |j }|j}|j jrd S jd| d |  jd dkrZjdd d_d S  jkr|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  }|D ]}dj|< q fdd|D }|D ]0}	jd|	  td|	j|}
|
 q|rltdt|j|}
|
 d S )NzReceived event, z, from r	   r   z:You enabled sfp_bingsearch but did not set a Bing API key!FTzAlready did a search for z, skipping.zsite:_fetchtimeout
_useragentr   )timeout	useragentcountr	   )searchStringr   urlsc                    s"   g | ]}j | r|qS r   )r
   urlFQDNendswith).0link	eventDatar   r   r   
<listcomp>^   s     z.sfp_bingsearch.handleEvent.<locals>.<listcomp>zFound a link: r   r   )	eventTypemoduledatar   r
   debugr   errorr   bingIterater   setr   r   __name__notifyListenersstr)r   event	eventNamesrcModuleNameresr$   	new_linkslinternal_linksr(   evtr   r)   r   handleEvent3   sV    

	   zsfp_bingsearch.handleEvent)r3   
__module____qualname____doc__r   optdescsr   r   dictr   r   r   r>   r   r   r   r   r      s   	r   N)sflibr   r   r   r   r   r   r   r   <module>   s   