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                   @   sJ   e Zd ZdZddiZddiZdZe fddZdd	 Z	d
d Z
dd ZdS )sfp_duckduckgoz~DuckDuckGo:Footprint,Investigate,Passive:Search Engines::Query DuckDuckGo's API for descriptive information about your target.affiliatedomainsTzFor affiliates, look up the domain name, not the hostname. This will usually return more meaningful information about the affiliate.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_duckduckgo.pysetup   s    
zsfp_duckduckgo.setupc                 C   s   ddddgS )NDOMAIN_NAMEDOMAIN_NAME_PARENTINTERNET_NAMEAFFILIATE_INTERNET_NAMEr   r   r   r   r   watchedEvents'   s     zsfp_duckduckgo.watchedEventsc                 C   s   ddddgS )NDESCRIPTION_CATEGORYDESCRIPTION_ABSTRACTZAFFILIATE_DESCRIPTION_CATEGORYZAFFILIATE_DESCRIPTION_ABSTRACTr   r   r   r   r   producedEvents.   s    zsfp_duckduckgo.producedEventsc              
   C   s  |j }|j}|j}| jd r8d|kr8| j|| jd }|| jkrZ| jd| d  d S d| j|< d| d }| jj|| jd	 d
d}|d d kr| j	d| d d S zt
|d }W n( tk
r } z
W Y d S d }~X Y nX |d dkr| jd|  d S td|d | j|}	| |	 d|krdd}
d|krFd|
 }
t|
|d | j|}	| |	 d|krd}
d|krd|
 }
|d D ]Z}d }d|kr|d }|d ks|dkr| jd qt|
|| j|}	| |	 qd S )Nr   
AFFILIATE__internettldszAlready did a search for z, skipping.Tzhttps://api.duckduckgo.com/?q=z&format=json&pretty=1_fetchtimeoutr   )timeout	useragentcontentzUnable to fetch FZHeading zNo DuckDuckGo information for SEARCH_ENGINE_WEB_CONTENTZAbstractTextr   	AFFILIATEZRelatedTopicsr   Textz'No category text found from DuckDuckGo.)	eventTypemoduledatar   r   
hostDomainr	   debugfetchUrlerrorjsonloadsBaseExceptionr   __name__notifyListeners)r   event	eventNamesrcModuleName	eventDataurlresreteevtnameitemcatr   r   r   handleEvent4   sd    


 



 



zsfp_duckduckgo.handleEvent)r1   
__module____qualname____doc__r   optdescsr	   dictr   r   r   r?   r   r   r   r   r      s     r   )r.   sflibr   r   r   r   r   r   r   r   <module>   s   