
    i                        U 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 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gZdZi ddddddddddddddddddd dd!dd"d#d$d%d&d'd(d)d*d)d+d,i d-d,d.d'd/dd0d%d1dd2d3d4d5d6d3d7d3d8d5d9d:d;d:d<d=d>d5d?d:d@d'dAd'Zeeej2                  f   edB<   dCej6                  dDeeej8                  f   fdEZdFedGeeej8                  f   fdHZdIefdJZy)Kz'
DuckDuckGo Weather
~~~~~~~~~~~~~~~~~~
    N)loads)quote)parser)fetch_traits)get_ddg_lang)EngineResults)SXNG_Response)weatherzhttps://duckduckgo.com/Q12805TFJSON)websitewikidata_idofficial_api_documentationuse_official_apirequire_api_keyresultsr
   z7https://duckduckgo.com/js/spice/forecast/{query}/{lang}BlowingDustfogClearz	clear skyCloudycloudyFoggyHazeMostlyClearMostlyCloudyzpartly cloudyPartlyCloudySmokyBreezyWindyDrizzlez
light rain	HeavyRainz
heavy rainIsolatedThunderstormszrain and thunderRainrain
SunShowersScatteredThunderstormszheavy rain and thunderStrongStormsThunderstormsFrigidHailHotFlurriesz
light snowSleetsleetSnowSunFlurries	WintryMixBlizzardz
heavy snowBlowingSnowFreezingDrizzlezlight sleetFreezingRain	HeavySnow	HurricaneTropicalStormWEATHERKIT_TO_CONDITIONlocationdatac                    t         j                  j                  j                  | t	        j
                  |d   d      t        |d      t	        j
                  |d   d      t	        j                  |d         t	        j                  |d   d      t	        j                  |d	   d
      t	        j                  |d   dz        |d   dz  	      S )Ntemperatureu   °C)valunitconditionCodetemperatureApparentwindDirection	windSpeedzmi/hpressurehPahumidityd   
cloudCover)	r:   r=   	condition
feels_like	wind_from
wind_speedrD   rF   cloud_cover)r   typesWeatherAnswerItemr
   Temperaturer9   Compass	WindSpeedPressureRelativeHumidity)r:   r;   s     1/root/searxng/searx/engines/duckduckgo_weather.py_weather_datarW   I   s    ,,11''D,?eL)$*?@&&40E+FUS//$"78$$k):H!!d:&6UC))$z*:S*@A&, 2 
 
    queryparamsc                 F   t         j                  |d   t         j                        }t        t         |d         }||d   d<   ||d   d<   ||d   d<   t        j                  d|d          t        j                  t        |       |j                  d      d   	      |d
<   |S )Nsearxng_localecookiesadahlzcookies: %s_r   )rY   langurl)
traits
get_region
all_localer   loggerdebugbase_urlformatr   split)rY   rZ   
eng_regioneng_langs       rV   requestrn   X   s    ""6*:#;V=N=NOJFF+;$<=H 'F9d(F9d'F9c
LLy 12OO%,X^^C=PQR=SOTF5MMrX   respc                    t               }| j                  j                         dk(  r|S t        | j                  | j                  j	                  d      dz   | j                  j                  d      dz
         }t        j                  j                  | j                  d         }t         j                  j                  t        ||d         d      }|d	   d
   D ][  }t        j                  |d         }t        ||      }t        j                  |      |_        |j"                  j%                  |       ] |j'                  |       |S )Nzddg_spice_forecast();
      rY   currentWeatherzduckduckgo weather)currentserviceforecastHourlyhoursforecastStart)r   textstripr   findrfindr
   GeoLocationby_querysearch_paramsrN   rO   rW   date_parserparseDateTimedatetime	forecastsappendadd)ro   res	json_datageolocweather_answerforecastforecast_timeforecast_datas           rV   responser   g   s"   
/Cyy33
dii		t 4q 8499??4;PST;TUVI  ))$*<*<W*EFF"((66fi0@&AB$ 7 N
 ./8 7#))(?*CD%fh7!(!1!1-!@  ''6	7 GGNJrX   ) __doc__typingtjsonr   urllib.parser   dateutilr   r   searx.engines.duckduckgor   r   searx.result_typesr   searx.extended_typesr	   searxr
   about
categoriesri   r9   dictstrWeatherConditionType__annotations__r~   AnyrW   rn   r    rX   rV   <module>r      s  
    * 1 1 , .  )"&	 [
D#D5#D[#D h#D U	#D
 E#D ;#D O#D O#D U#D o#D _#D |#D #D /#D F#D  &!#D" 6##D$ ,%#D& ''#D( k)#D* L+#D, 
;-#D. /#D0 W1#D2 L3#D4 <5#D6 7#D8 9#D: <;#D< }=#D> G?#D@ A#DB #C#DD 'E#D c7#?#??@ #LG// tCJ7G 3 S!%%Z 0 = rX   