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               @   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   s8   || _ | j | _x"t|j D ]}|| | j|< qW 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jd| d |  || jkrR| jjd| d  d S d| j|< | jd rld}nd}| jd	 d kr| jd	 d
krtjj	 tj
t| jd	 d }|jd}nd}|jdd}d| d d | d | d }	| jj|	}
|
d d kr| jjdd d S t }| jj|	|
d d}|r>|j| | jj|	|
d d}|rb|j| d}d
}x|r
|
d sP d|
d krd}d}x|D ]}d|krqd|krd|krȐqnh| jjd|  | j rd S |jddkr|jd  r|jd! rtd"|| j|}| j| d}qW |rZtd#|
d | j|}| j| |d$krfP |rn|d%7 }d| d d | d | d& t| d' }	| jj|	}
|
d sP t }| jj|	|
d d}|r|j| | jj|	|
d d}|rn|j| qnW d 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
   r4   r   r   r   rI   r   r   r   r   r      s   r   )r,   sflibr   r   r   r   r   r   r   r   <module>   s   