
    |*&i                     v    S SK r S SKrS SKrS SKJr  S SK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)BeautifulSoup)List)Vulnerability)Source)VulnerabilityFactoryc                   J    \ rS rSrS rS rS rS rS\\	   S\\
   4S jrS	rg
)PacketStormSecurityAPI   c                     SU l         Xl        g )Nzhttps://packetstormsecurity.combase_urlconfig)selfr   s     @/home/kali/cveseeker/services/api/sources/packetstormsecurity.py__init__PacketStormSecurityAPI.__init__   s    9    c                 L    SR                  U5      nU R                   SU SU 3$ )N+z/search/files/pagez/?q=)joinr   )r   pagequerysearch_strings       r   __get_search_url'PacketStormSecurityAPI.__get_search_url   s+    -- 24&]OLLr   c                    Sn[         R                  " X15      nSnSnU(       a4  [        UR                  S5      5      n[        UR                  S5      5      nU(       a"  Sn[        R
                  " X'-  5      nX:  a  UnOUnXVU4$ )NzPage (\d+) of (\d+)         )researchintgroupmathceil)	r   response_datamax_resultspatternmatchcurrent_pageof_all_pagesresults_per_page	max_pagess	            r   __get_pagination'PacketStormSecurityAPI.__get_pagination   s|    (		'1u{{1~.Lu{{1~.L!		+"@AI'(	$I944r   c                    / n[        US5      nUR                  SSS9nU GH  nUR                  S5      R                  S5      nUR                  nUS   nUR                  SS	S9n	U	R                  S
5      R                  n
UR                  SSS9nU(       a+  UR                  S5       Vs/ s H  oR                  PM     nnOS nUS   nUR                  SSS9nU(       a1  UR                  S5      (       a  UR                  S5      R                  nUR                  SSS9nUR                  S5      R                  R	                  5       n [
        R
                  R                  US5      R                  S5      nUR                  [        R                  " UU R                  R                  U R                  U-   UU
UUS95        GM     U$ s  snf ! [         a    Un Ndf = f)Nzhtml.parserdlfile)class_dtahrefdddetailptagsidcvedatetimez	%b %d, %Yz%Y-%m-%d)r;   sourceurltitledescriptionr:   date)r   find_allfindtextstripr=   strptimestrftime
ValueErrorappendr   make	__class____name__r   )r   r&   vulnerabilitiessoupdl_elementsr1   	title_tagr@   r?   description_tagrA   tags_tagr5   r:   vuln_idcve_tagdate_tag	date_textdate_posteds                      r   __get_vulnerabilities,PacketStormSecurityAPI.__get_vulnerabilities+   s   ]M:mmDm8B**3/INNEF#C ggd8g<O)..s388KwwtFw3H(0(9(9#(>?(>1(>?hGggd5g1G7<<,,!,,s+00 wwtJw7H c*//557I(&//88KPYYZde ""$))>>22+ +$
? V ? @   ('(s   +G/GG G keywordsreturnc                    / n[         R                  " U R                  SU5      5      nUR                  S:w  a  / $ U R	                  UR
                  U5      u  pVnXW::  a^   [         R                  " U R                  XQ5      5      nU R                  UR
                  5      nUR                  U5        US-   nXW::  a  M^  U$ !    U$ = f)Nr      )httpxget'_PacketStormSecurityAPI__get_search_urlstatus_code'_PacketStormSecurityAPI__get_paginationrE   ,_PacketStormSecurityAPI__get_vulnerabilitiesextend)	r   r[   r'   rN   responser*   	all_pagesr-   page_vulnerabilitiess	            r   r!   PacketStormSecurityAPI.search`   s    99T221h?@3&I-1-B-B8==R]-^*' 99T%:%:<%RS'+'A'A(--'P$&&';<+a/ ' s    AB? ?Cr   N)rM   
__module____qualname____firstlineno__r   ra   rc   rd   r   strr   r!   __static_attributes__ r   r   r	   r	      s4    M5,2jtCy $}:M r   r	   )r=   r$   r    bs4r   r_   typingr   models.vulnerabilityr   services.api.sourcer   8services.vulnerabilities.factories.vulnerability_factoryr   r	   ro   r   r   <module>ru      s.      	    . & YfV fr   