
    |*&i
                     `    S SK r S SKJrJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr   " S S5      rg)	    N)ListTuple)Vulnerability)VulnerabilityIntelligence)VulnerabilityValidator) VulnerabilityIntelligenceFactoryc                       \ rS rSr\S\\   S\\   S\\   4S j5       r	\S\\   S\\   4S j5       r
\S\\   S\\   4S j5       r\S\\   S\\   4S j5       rS	rg
)"VulnerabilityIntelligenceProcessor   vulnerabilitiessearch_termsreturnc                    U  Vs/ s H"  n[         R                  " X5      (       d  M   UPM$     nn[        R                  U5      n[        R	                  U5      n[        R                  U5      n[        R                  " U5      nU$ s  snf N)r   validate_with_versionsr
   _remove_duplicates_remapped_moderate_to_medium_sort_by_idr   make)r   r   vulnvalidated_vulnerabilitiesunique_vulnerabilitiesremapped_moderate_to_mediumsorted_vulnerabilitiesvulnerability_intelligence_lists           k/home/kali/cveseeker/services/vulnerability_intelligence/processors/vulnerability_intelligence_processor.pyprocess*VulnerabilityIntelligenceProcessor.process	   s     -%
,T0F0]0]^j0qD_ 	" %
 "D!V!VWp!q&H&e&ef|&}#!C!O!OPk!l*J*O*OPf*g'..%
s
   BBc                    [        5       n/ nU  H  nUR                  UR                  UR                  [	        UR
                  5      UR                  UR                  UR                  UR                  [	        UR                  5      [	        UR                  5      [	        UR                  5      4nXA;  d  M  UR                  U5        UR                  U5        M     U$ r   )setidsourceurltuplereference_urls
base_scorebase_severitytitledescriptionvulnerable_componentstags
weaknessesaddappend)r   seenr   r   
vuln_tuples        r   r   5VulnerabilityIntelligenceProcessor._remove_duplicates   s    u!##Ddhhd6I6I0J!3!3TZZAQAQd00153Cdoo&	J %$&--d3 $ &%    c                     / nU  HL  nUR                   R                  5       S:X  a  SUl         UR                  U5        M;  UR                  U5        MN     U$ )NmoderateMedium)r'   lowerr.   )r   remappedr   s      r   r   ?VulnerabilityIntelligenceProcessor._remapped_moderate_to_medium+   sO    #D!!'')Z7%-"%% $ r2   c                 \   ^ S[         S[        [        [        4   4S jm[        U U4S jS9$ )Nvuln_idr   c                     [         R                  " SU 5      nU(       a7  [        UR                  S5      5      n[        UR                  S5      5      nX#4$ g)NzCVE-(\d+)-(\d+)      )r   r   )rematchintgroup)r:   r?   year
numeric_ids       r   extract_year_and_numeric_idSVulnerabilityIntelligenceProcessor._sort_by_id.<locals>.extract_year_and_numeric_id:   sF    HH/9E5;;q>* Q0
''r2   c                 (   > T" U R                   5      $ r   )r!   )r   rD   s    r   <lambda>@VulnerabilityIntelligenceProcessor._sort_by_id.<locals>.<lambda>B   s    8STXT[T[8\r2   )key)strr   r@   sorted)r   rD   s    @r   r   .VulnerabilityIntelligenceProcessor._sort_by_id8   s.    	 	sCx 	 o+\]]r2    N)__name__
__module____qualname____firstlineno__staticmethodr   r   rJ   r   r   r   r   r   __static_attributes__rM   r2   r   r
   r
      s    /m!4 /DI /RVWpRq / / &D,? &DDW & && 	d=6I 	dS`Na 	 	 	^T-%8 	^T-=P 	^ 	^r2   r
   )r>   typingr   r   models.vulnerabilityr   !models.vulnerability_intelligencer   ;services.vulnerabilities.validators.vulnerability_validatorr   Pservices.vulnerability_intelligence.factories.vulnerability_intelligence_factoryr   r
   rM   r2   r   <module>rY      s#    	  . G ^ }:^ :^r2   