U
    @6^k                     @   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                   @   s>   e Zd ZdZi Zi Ze fddZdd Zdd Z	dd	 Z
d
S )sfp_twitterzcTwitter:Footprint,Investigate,Passive:Social Media::Gather name and location from Twitter profiles.c                 C   s:   || _ d| _|  | _t| D ]}|| | j|< q"d S )NTwitter)sf__dataSource__tempStorageresultslistkeysopts)selfsfcuserOptsopt r   6/var/www/spiderfoot.crq.systems/modules/sfp_twitter.pysetup   s
    
zsfp_twitter.setupc                 C   s   dgS )NSOCIAL_MEDIAr   r   r   r   r   watchedEvents$   s    zsfp_twitter.watchedEventsc                 C   s   ddgS )NRAW_RIR_DATAGEOINFOr   r   r   r   r   producedEvents(   s    zsfp_twitter.producedEventsc              
   C   s  |j }|j}|j}|| jkr d S d| j|< | jd| d |  z0|dd }|dd ddd	d}W nJ tk
r } z,| j	d
| d t
| d d W Y d S d }~X Y nX |dks| jd| d  d S | jj|| jd dd}|d d krd S |d dks*| j|d  d S td|d tj}	|	rftdd|	d  | j|}| | td|d }
|
rt|
d dk st|
d dkr| jd ntd|
d | j|}| | d S ) NTzReceived event, z, from z: r      z<SFURL> z</SFURL>zUnable to parse SOCIAL_MEDIA: z ()Fr   z!Skipping social network profile, z, as not a Twitter profile_fetchtimeoutr   )timeout	useragentcontentcode200z is not a valid Twitter profilez&<div class="fullname">([^<]+)\s*</div>r   zPossible full name: z#<div class="location">([^<]+)</div>   d   z!Skipping likely invalid location.r   )	eventTypemoduledatar
   r   debugsplitreplaceBaseExceptionerrorstrfetchUrlr   refindall	MULTILINEr   __name__notifyListenerslen)r   event	eventNamesrcModuleName	eventDatanetworkurleres
human_namelocationr   r   r   handleEvent,   sd    

"  
$zsfp_twitter.handleEventN)r3   
__module____qualname____doc__r   optdescsdictr   r   r   r@   r   r   r   r   r      s   	r   )r0   sflibr   r   r   r   r   r   r   r   <module>   s   