
    i                     x    d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
 dddd	d	d
dZddgZdZdZedz   Zd Zd Zy)zpypi.org    )	urlencode)parser)html)eval_xpath_getindexeval_xpath_listextract_textzhttps://pypi.orgQ2984686z9https://warehouse.readthedocs.io/api-reference/index.htmlFHTML)websitewikidata_idofficial_api_documentationuse_official_apirequire_api_keyresultsitpackages   z/search/?{query}c                 Z    | |d   d}t         j                  t        |            |d<   |S )Npageno)qpage)queryurl)
search_urlformatr   )r   paramsargss      #/root/searxng/searx/engines/pypi.pyrequestr   !   s6    x D %%IdO%<F5MM    c                    g }t        j                  | j                        }t        |d      D ]  }t        t        t        |dd            z   }t        t        |dd            }t        t        |dd            }t        t        |dd            }t        t        |dd            }|j                  d|||||t        j                  |      d	        |S )
NzF/html/body/main/div/div/div/form/div/ul/li/a[@class="package-snippet"]z./@hrefr   z)./h3/span[@class="package-snippet__name"]z,./h3/span[@class="package-snippet__version"]z;./h3/span[@class="package-snippet__created"]/time/@datetimez./pzpackages.html)templater   titlepackage_namecontentversionpublishedDate)
r   
fromstringtextr   base_urlr   r   appendr   parse)	respr   domentryr   r#   r&   
created_atr%   s	            r   responser1   *   s    G
//$))
$C &no 
&9%A&NOO08cefgh25:hjklm!'dfgh

 25%CD+ %""!'j!9
	

( Nr    N)__doc__urllib.parser   dateutilr   lxmlr   searx.utilsr   r   r   about
categoriesfirst_page_numr*   r   r   r1    r    r   <module>r;      sc     "    ""]	 J
 **
r    