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               @   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   s8   || _ | j | _x"t|j D ]}|| | j|< qW 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|| jd }|| jkrZ| jjd| d  d S d| j|< d| d }| jj|| jd	 d
d}|d d kr| jj	d| d d S yt
j|d }W n  tk
r } zd S d }~X nX |d dkr | jjd|  d S td|d | j|}	| j|	 d|kr\d}
d|kr>d|
 }
t|
|d | j|}	| j|	 d|krd}
d|kr|d|
 }
xf|d D ]Z}d }d|kr|d }|d ks|dkr| jjd qt|
|| j|}	| j|	 qW d 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   sZ    












zsfp_duckduckgo.handleEvent)r0   
__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   