o
    j!                     @   s4   d dl Z d dlmZmZ dd Zdd Zdd ZdS )	    N)check_velocitycheck_duplicatec                 C   sx   t |d*}t|}|D ]}|d t| kr'd|d d  W  d    S qW d    n1 s2w   Y  dd dS )NripTreason)blocklist_hitr   F)opencsv
DictReaderstr)r   blocklist_filefilereaderrow r   6/home/djax/ivt_ai_plugin/features/feature_extractor.pycheck_ip_blocklist   s   
r   c                 C   s|   t |d,}t|}|D ]}|d  |  v r)d|d d  W  d    S qW d    n1 s4w   Y  dd dS )Nr   
ua_patternTr   )bad_uar   F)r   r	   r
   lower)
user_agentr   r   r   r   r   r   r   check_user_agent   s   
r   c              	   C   s~   t | j|}t| j|}| j | j k}tt| j}t	t| j| j}|d |d |d |d ||d |d |d dS )Nr   r   r   high_velocityrequest_count	duplicate)r   blocklist_reasonr   bad_ua_reasongeo_mismatchr   r   r   )
r   r   r   r   geo_declareduppergeo_ipr   r   r   )requestip_blocklist_fileua_blocklist_file	ip_result	ua_resultr   velocity_resultduplicate_resultr   r   r   extract_features$   s8   r(   )r	   scoring.redis_stater   r   r   r   r(   r   r   r   r   <module>   s
    