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                   @   sN   e Zd ZdZdddZdddZdZe fdd	Zd
d Z	dd Z
dd ZdS )sfp_wikileakszWikileaks:Footprint,Investigate,Passive:Leaks, Dumps and Breaches::Search Wikileaks for mentions of domain names and e-mail addresses.im  T)daysbackexternalzIHow many days back to consider a leak valid for capturing. 0 = unlimited.zInclude external leak sources such as Associated Twitter accounts, Snowden + Hammond Documents, Cryptome Documents, ICWatch, This Day in WikiLeaks Blog and WikiLeaks Press, WL Central.Nc                 C   s4   || _ |  | _t| D ]}|| | j|< qd S )N)sftempStorageresultslistkeysopts)selfsfcuserOptsopt r   8/var/www/spiderfoot.crq.systems/modules/sfp_wikileaks.pysetup"   s    
zsfp_wikileaks.setupc                 C   s
   dddgS )NDOMAIN_NAME	EMAILADDR
HUMAN_NAMEr   r   r   r   r   watchedEvents*   s    zsfp_wikileaks.watchedEventsc                 C   s
   dddgS )NLEAKSITE_CONTENTLEAKSITE_URLSEARCH_ENGINE_WEB_CONTENTr   r   r   r   r   producedEvents0   s    zsfp_wikileaks.producedEventsc                 C   s
  |j }|j}|j}|| _| jd| d |  || jkrR| jd| d  d S d| j|< | jd rld}nd}| jd	 d kr| jd	 d
krtj	 tj
t| jd	 d }|d}nd}|dd}d| d d | d | d }	| j|	}
|
d d kr| jdd d S t }| j|	|
d d}|r>|| | j|	|
d d}|rb|| d}d
}|r|
d s~qd|
d krd}d}|D ]}d|krqd|krd|krĐqnf| jd|  |  r d S |ddkr|d s|d!std"|| j|}| | d}q|rRtd#|
d | j|}| | |d$kr`q|rj|d%7 }d| d d | d | d& t| d' }	| j|	}
|
d sqt }| j|	|
d d}|r|| | j|	|
d d}|rj|| qjd S )(NzReceived event, z, from z	Skipping z as already mapped.Tr   True r   r   )daysz%Y-%m-%d +z'https://search.wikileaks.org/?query=%22z%22z&released_date_start=z&include_external_sources=z/&new_search=True&order_by=most_relevant#resultscontentz"Unable to fetch Wikileaks content.Fzwikileaks.orgzcryptome.orgzpage=zsearch.wikileaks.org/zwikileaks.org/zcryptome.org/zFound a link: /   z.jsz.cssr   r   2      z-&new_search=True&order_by=most_relevant&page=z#results)	eventTypemoduledatacurrentEventSrcr   debugr
   r   datetimenow	timedeltaintstrftimereplacefetchUrlerrordict
parseLinksupdatecheckForStopcountendswithr   __name__notifyListenersstr)r   event	eventNamesrcModuleName	eventDatar   ZnewDateZmaxDateZqdataZwlurlreslinksp	keepGoingpagevalidlinkevtr   r   r   handleEvent4   s    


 







 




zsfp_wikileaks.handleEvent)r;   
__module____qualname____doc__r   optdescsr
   r5   r   r   r   rJ   r   r   r   r   r      s   r   )r-   sflibr   r   r   r   r   r   r   r   <module>   s   