
    |*&i                        S SK JrJr  S SKJrJr  S SKJr  S SKJ	r	  S SKJrJ
r
  S SKrS\	S\\   S	\S
\\\\/S4   S\S\S\\   4S jrS\\	   S\\   S	\S
\\\\/S4   S\S\S\\   4S jrS\/ \
4   S\S\S\S\
4
S jrg)    )ThreadPoolExecutoras_completed)ListCallable)Vulnerability)Source)r   AnyNsourcekeywordsmax_resultsprogress_callbackmax_retriesretry_delayreturnc                 Z   ^ ^^^ UUUU 4S jn[        UT R                  R                  XES9$ )Nc                  x   > TR                  TT5      n T" TR                  R                  [        U 5      5        U $ )N)search	__class____name__len)resultsr   r   r   r
   s    9/home/kali/cveseeker/services/search/engine/collection.pyfetch"collect_from_source.<locals>.fetch   s2    --+6&**33S\B    )retriesdelay)retry_with_backoffr   r   )r
   r   r   r   r   r   r   s   ````   r   collect_from_sourcer      s*     
 eV%5%5%>%>ggr   sourcesc                    / n[        [        [        U 5      S5      S9 nU  Vs0 s H  nUR                  [        UUUUUU5      U_M!     n	n[        U	5       H)  n
X   n U
R                  5       nUR                  U5        M+     S S S 5        U$ s  snf ! [         a0  n[        SUR                  R                   SU 35         S nAMq  S nAff = f! , (       d  f       U$ = f)N   )max_workersz[!] Error with source z: )r   minr   submitr   r   resultextend	Exceptionprintr   r   )r    r   r   r   r   r   collected_resultsexecutorr
   futuresfuturer   es                r   collect_resultsr/      s    	CL"(=	>( %,

 %,& OO#!  %, 	 

 #7+F_FQ --/!((1	 , 
?* )

"  Q.v/?/?/H/H.IA3OPPQ% 
?	>* sF   C&B
C!B CC
C%CCCC
Cactionr   r   c                     SnUnXB::  a
   U " 5       nU$ g ! [          aI  nUS-  nXB:  a  Ue[        SU SU SU SU S3	5        [        R                  " U5        US-  n S nAOS nAff = fXB::  a  Mh  g )	Nr      z[!] Attempt z of z for z failed. Retrying in z seconds...   )r(   r)   timesleep)r0   r
   r   r   attemptscurrent_delayr&   r.   s           r   r   r   8   s    HM

		XFM   	MH!L
$wiuVHDYZgYhhstuJJ}%QM		 
s    
A(?A##A()concurrent.futuresr   r   typingr   r   models.vulnerabilityr   services.api.sourcer   r	   r4   strintr   r/   r    r   r   <module>r?      s   ? ! . &   hh3ih h  c3 56	h
 h h 
-h&\3i   c3 56	
   
-BxC0 #  TW \_ r   