
    i                         d Z ddl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ZddgZdZdZ	  ej"                  d      Z	 d Zd Zy)at  `Alpine Linux binary packages`_.  `Alpine Linux`_ is a Linux-based operation
system designed to be small, simple and secure.  Contrary to many other Linux
distributions, it uses musl, BusyBox and OpenRC.  Alpine is mostly used on
servers and for Docker images.

.. _Alpine Linux binary packages: https://pkgs.alpinelinux.org
.. _Alpine Linux: https://www.alpinelinux.org

    N)	urlencode)html)parser)
eval_xpatheval_xpath_listextract_textzhttps://www.alpinelinux.orgQ4033826FHTML)websitewikidata_iduse_official_apiofficial_api_documentationrequire_api_keyresultsTpackagesitzhttps://pkgs.alpinelinux.orgx86_64z4x86_64|x86|aarch64|armhf|ppc64le|s390x|armv7|riscv64c                     t         j                  |       }|r1|j                  d      }| j                  |d      j	                         } d|  d|d   |xs t
        d}t         dt        |       |d<   |S )Nr    *pageno)namepagearchz
/packages?url)ARCH_REsearchgroupreplacestripalpine_archbase_urlr   )queryparams
query_archargss       */root/searxng/searx/engines/alpinelinux.pyrequestr(   (   s    &J%%a(
j"-335
 E7!x )kD  j
9T?*;<F5MM    c                 n   g }t        j                  | j                        }t        |d      D ]  }t	        |j                  d            dk  r"|j                  dt        t        t        |d            z   t        t        |d            t        t        |d            t        j                  t        t        |d                  t        t        |d            t        t        |d	            t        t        |d
            t        t        |d            t        t        |d            gd
        |S )Nz//table/tbody/trz./td	   zpackages.htmlz)./td[contains(@class, "package")]/a/@hrefz!./td[contains(@class, "package")]z./td[contains(@class, "bdate")]z!./td[contains(@class, "version")]z%./td[contains(@class, "url")]/a/@hrefz$./td[contains(@class, "maintainer")]z!./td[contains(@class, "license")]z./td[contains(@class, "repo")])
templater   titlepackage_namepublishedDateversionhomepage
maintainerlicense_nametags)r   
fromstringtextr   lenxpathappendr"   r   r   r   parse)respr   docresults       r'   responser>   9   s   G
//$))
$C!#'9: 
v||F#$q( +,z&Bm/n"oo%j9\&]^ ,Z@c-d e!'l:fNo;p.q!r'
6;^(_`(F<c)de*:f>d+ef ,Z@c-d e%j9Y&Z[\	

, Nr)   )__doc__reurllib.parser   lxmlr   dateutilr   searx.utilsr   r   r   aboutpaging
categoriesr"   r!   compiler   r(   r>    r)   r'   <module>rJ      sy    
 "   A A -"&	 
$
)4 "**K
L N"r)   