
    i                         d Z ddlmZ ddlm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d	dZdgZdZdZd Zd Zd Zy	)z
Apple Maps    )loads)time)	urlencode)get)get_key_labelzhttps://www.apple.com/maps/Q276101NTFJSON)websitewikidata_idofficial_api_documentationuse_official_apirequire_api_keyresults )valuelast_updatedmapzBhttps://api.apple-mapkit.com/v1/search?{query}&mkjsVersion=5.72.53c                     t               t               dz  z
  } 	 t        dd      }t        dddd|j                  z   i      }t        |j                        d	   d
   t        d<   | t        d<   t        S #  Y t        S xY w)N  z.https://duckduckgo.com/local.js?get_mk_token=1g       @)timeoutzPhttps://cdn.apple-mapkit.com/ma/bootstrap?apiVersion=2&mkjsVersion=5.72.53&poi=1AuthorizationBearer )r   headersauthInfoaccess_tokenr   r   )r   http_gettextr   token)update_timetoken_responseactual_tokens      )/root/searxng/searx/engines/apple_maps.pyobtain_tokenr#      s    &DFTM*K!"R\_`^$i.2E2E&EF

 |001*=nMg +n LLs   AA5 5A>c                     t               t        d   xs dz
  dkD  r
t                t        j	                  t        | |d   d            |d<   dd	t        d
   z   i|d<   |S )Nr   r   r   language)qlang)queryurlr   r   r   r   )r   r   r#   
search_urlformatr   )r(   paramss     r"   requestr-   .   sd    v~&+!,t3%%IE6R\K]6^,_%`F5M()eGn*DEF9M    c                    g }t        | j                        }| j                  d   }|d   D ](  }d }d|v r|d   }|d   |d   |d   |d   g}g }d|v r'|d   }|j                  t	        d	|      d
|z   |d       |j                  d      r'|d   d   }	|j                  t	        d|      |	|	d       |j                  d|j                  d      |d   ||d   d   |d   d   |d   |d|d   d   |d   d   gd|d   |j                  d      |j                  d      |j                  d      |j                  d      |j                  d      dd
       + |S )Nr%   r   displayMapRegionsouthLatnorthLatwestLngeastLng	telephonephoneztel:)labelr)   	url_labelurlsr   r
   zmap.htmlpoiCategorynamecenterlatlngplacecardUrlPoint)typecoordinatessubThoroughfarethoroughfarelocalitypostCodecountry)r;   house_numberroadrE   postcoderG   )
templaterA   titlelinkslatitude	longituder)   boundingboxgeojsonaddress)r   r   search_paramsappendr   r   )
respr   	resp_jsonuser_languageresultrP   boxrM   r5   r)   s
             r"   responserZ   9   s   Gdii I&&z2MI& .
'+,Cz?C
OS^SQZ^\K& {+ILL*7MB!I-!* ::f.#CLL*9mD!$ 	&

=1"8,U3#H-e4n-*$+VH=Me=TV\]eVfglVm<no"6N$*JJ/@$A"JJ~6 &

: 6 &

: 6%zz)4	
5.
` Nr.   )__doc__jsonr   r   urllib.parser   searx.networkr   r   searx.engines.openstreetmapr   aboutr   
categoriespagingr*   r#   r-   rZ    r.   r"   <module>rd      s^       " ) 5 -"&	 d+W
	Q
$7r.   