3
@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   s8   || _ | j | _x"t|j D ]}|| | j|< qW 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|}|| jkr,d S d| j|< | jjd| d |  |dkr|jdd}xXtj	|d d	D ]F}tj
|jtjj}td
|| j|}	|jr|j|	_nd|	_| j|	 qrW |d
krytj|}
W n6 tk
r
 } z| jjdt|  d S d }~X nX ytj|
d}W n6 tk
rR } z| jjdt|  d S d }~X nX |rvtd|| j|}	| j|	 n| j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 )r   r   r   )	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   sD    




zsfp_phone.handleEvent)r(   
__module____qualname____doc__r   r	   dictr   r   r   r8   r   r   r   r   r      s   r   )r&   r   sflibr   r   r   r   r   r   r   r   <module>   s   