
    i                     l    d Z ddlmZ ddlmZ ddlmZ ddddd	d
dZdgZd	Z	dZ
dZdZdZg dZd Zd Zy)z
Photon (Map)
    )loads)	urlencode)searxng_useragentzhttps://photon.komoot.ioNzhttps://photon.komoot.io/TFJSON)websitewikidata_idofficial_api_documentationuse_official_apirequire_api_keyresultsmap
   zapi/?{query}&limit={limit}z-https://openstreetmap.org/{osm_type}/{osm_id})deenfritc                     t         t        j                  t        d| i      t              z   |d<   |d   dk7  r-|d   j                  d      d   }|t        v r|d   dz   |z   |d<   t               |d	   d
<   |S )Nq)querylimiturllanguageall_r   z&lang=headersz
User-Agent)base_urlsearch_stringformatr   number_of_resultssplitsupported_languagesr   )r   paramsr   s      %/root/searxng/searx/engines/photon.pyrequestr$   #   s    }33)S%L:QYj3kkF5MjU"*%++C03**"5MH4x?F5M '8&9F9l#M    c                    g }t        | j                        }|j                  di       D ]Z  }|j                  d      }|s|j                  d      }|j                  d      dk(  rd}n/|j                  d      dk(  rd}n|j                  d      d	k(  rd
}not        j	                  ||j                  d            }||j                  d      d}|j                  d      }	|j                  d      rO|j                  d      d   |j                  d      d   |j                  d      d   |j                  d      d   g}
n|	d   d   |	d   d   |	d   d   |	d   d   g}
i }|j                  d      dk(  s<|j                  d      dk(  s(|j                  d      dk(  s|j                  d      dk(  rd|j                  d      i}|j                  d      r|j                  |j                  d      |j                  d      |j                  d|j                  d|j                  d                  |j                  d      |j                  d       d!       nd }|j                  d"|d#|	d   d   |	d   d   |
|	|||d$
       ] |S )%Nfeatures
propertiesnameosm_typeNnodeWwayRrelationosm_id)r*   r1   )typeidgeometryextent      r      coordinatesosm_keyamenityshoptourismleisurehousenumberstreetcitytownvillagepostcodecountry)house_numberroadlocalityrD   rE   zmap.html )
templatetitlecontent	longitudelatitudeboundingboxgeojsonaddressosmr   )r   textgetresult_base_urlr   updateappend)respr   jsonrr(   rK   r*   r   rR   rP   rO   rQ   s               r#   responser[   2   s   GD XXj"% U
UU<(
 v& >>*%,H^^J'3.H^^J'3.!H $$hz~~h?W$Xz~~h'?@%%
#>>(#x(+x(+x(+x(+	K &q)&q)&q)&q)	K  NN9%2~~i(F2~~i(I5~~i(I5z~~f56G ;;vNN$.NN=$A&NN84 *
vz~~i7P Q! !+z :)~~i8
 G 	&$]3A6#M215*""	
QU
p Nr%   )__doc__rY   r   urllib.parser   searx.utilsr   about
categoriespagingr   r   r   rU   r!   r$   r[    r%   r#   <module>rc      sh     " ) *"=	 W
	  ',A / ]r%   