3
@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| _| j | _x"t|j D ]}|| | j|< q$W 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jd| d |  y0|jdd }|jdd jddjd	d}W nB tk
r } z&| jj	d
| d t
| d d d S d }~X nX |dks| jjd| d  d S | jj|| jd dd}|d d kr d S |d dks"| jj|d  d S tjd|d tj}	|	r^tdd|	d  | j|}| j| tjd|d }
|
rt|
d dk st|
d dkr| jjd ntd|
d | j|}| 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,   sH    

"

$zsfp_twitter.handleEventN)r2   
__module____qualname____doc__r   optdescsdictr   r   r   r?   r   r   r   r   r      s   	r   )r/   sflibr   r   r   r   r   r   r   r   <module>   s   