U
    @6^                     @   s<   d dl Z d dl mZ d dlmZmZmZ G dd deZdS )    N)carrier)
SpiderFootSpiderFootPluginSpiderFootEventc                   @   s>   e Zd ZdZi ZdZe fddZdd Zdd Z	d	d
 Z
dS )	sfp_phonezcPhone Numbers:Passive,Footprint,Investigate:Real World::Identify phone numbers in scraped webpages.Nc                 C   s4   || _ |  | _t| D ]}|| | j|< qd S )N)sftempStorageresultslistkeysopts)selfsfcuserOptsopt r   4/var/www/spiderfoot.crq.systems/modules/sfp_phone.pysetup   s    
zsfp_phone.setupc                 C   s   ddddgS )NTARGET_WEB_CONTENTDOMAIN_WHOISNETBLOCK_WHOISPHONE_NUMBERr   r   r   r   r   watchedEvents&   s    zsfp_phone.watchedEventsc                 C   s   ddgS )Nr   PROVIDER_TELCOr   r   r   r   r   producedEvents,   s    zsfp_phone.producedEventsc              
   C   s  |j }|j}|j}| j|}|| jkr,d S d| j|< | jd| d |  |dkr|dd}tj	|d dD ]F}t
|jtjj}td|| j|}	|jr|j|	_nd	|	_| |	 qp|dkrzt|}
W n> tk
r } z| jd
t|  W Y d S d }~X Y nX zt|
d}W n> tk
r^ } z| jdt|  W Y d S d }~X Y nX |rtd|| j|}	| |	 n| jd|  d S )NTzReceived event, z, from )r   r   r   .-)regionr   UnknownzError parsing phone number: enz'Error retrieving phone number carrier: r   z!No carrier information found for )	eventTypemoduledatar   
hashstringr	   debugreplacephonenumbersZPhoneNumberMatcherZformat_numbernumberZPhoneNumberFormatZE164r   __name__moduleDataSourcenotifyListenersparseBaseExceptionstrr   Zname_for_number)r   event	eventNamesrcModuleName	eventData
sourceDatacontentmatchnevtr(   eZnumber_carrierr   r   r   handleEvent0   sF    



zsfp_phone.handleEvent)r)   
__module____qualname____doc__r   r	   dictr   r   r   r9   r   r   r   r   r      s   r   )r'   r   sflibr   r   r   r   r   r   r   r   <module>   s   