
    iq                         U d 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Zedz   Zedz   Zh dZe	ed<   	 d ZdefdZd Zd Zy)z
Wolfram|Alpha (Science)
    )loads)	urlencode)get)EngineCachezhttps://www.wolframalpha.com/Q207006z&https://products.wolframalpha.com/api/FJSON)websitewikidata_idofficial_api_documentationuse_official_apirequire_api_keyresultszinput/json.jsp?async=false&banners=raw&debuggingdata=false&format=image,plaintext,imagemap,minput,moutput&formattimeout=2&{query}&output=JSON&parsetimeout=2&proxycode={token}&scantimeout=0.5&sponsorcategories=true&statemethod=deploybuttonzinput/?{query}>   SymbolIllustrationVisualRepresentationCACHEc                      t        | d         ay )Nname)r   r   )engine_settingss    1/root/searxng/searx/engines/wolframalpha_noapi.pyinitr   6   s    /0E    returnc                      t         j                  d      } | 8t        dd      }|j                         d   } t         j	                  d| d       | S )	Ntoken)keyzEhttps://www.wolframalpha.com/input/api/v1/code?ts=9999999999999999999g       @)timeoutcodei  )r   valueexpire)r   r   http_getjsonset)r   resps     r   obtain_tokenr%   ;   sL    II'I"E}_ilm		F#		fE$	7Lr   c                     t               }t        j                  t        d| i      |      |d<   t        j                  t        d| i            |d   d<   |S )Ninput)queryr   urli)r(   headersReferer)r%   
search_urlformatr   referer_url)r(   paramsr   s      r   requestr1   E   sW    NE%%Iw6F,Gu%UF5M#.#5#5IsEl<S#5#TF9i Mr   c                    g }t        | j                        }|d   d   sg S g }d}d}|d   d   D ]  }|j                  dd      }|j                  dd      }|j                  dd       }	d|vr>|d	k(  s|s|d   d
   d   }|d   D ]d  }
|
d   dk7  r>|t        vr6|
d   dk7  r|j	                  ||
d   d       |	s|r7|d	k7  s=|dz   |
d   z   }Id|
v sN|j	                  ||
d   d       f  |sg S |j	                  ||d| j
                  j                  d   dgd       |j	                  | j
                  j                  d   d|z   dz   |d       |S )Nqueryresultsuccess podsidtitleprimarysubpodsInputr   	plaintextz(requires interactivity))labelr   z: img)r=   imagezWolfram|Alphar,   )r8   r)   )infobox
attributesurlszWolfram|Alpha ())r)   r8   content)r   textr   
image_podsappendr1   r+   )r$   r   	resp_jsonresult_chunksinfobox_titleresult_contentpodpod_id	pod_titlepod_is_resultsubpods              r   responserQ   M   s   Gdii I]#I.	 MMN'/ Sr"GGGR(		40CWM	N1-k:M)n 	SFk"b(V:-E+&*DD!((9vkGZ)[\ ()2T)9F;<O)O&$$y6%=%QR	SS0 	NN$'.t||7K7KI7VWX	
 NN<<''	2&6<%	
 Nr   N)__doc__r"   r   urllib.parser   searx.networkr   r!   searx.enginelibr   aboutr)   r-   r/   rF   __annotations__r   strr%   r1   rQ    r   r   <module>rZ      s   
  " ) ' /"J	 &        $$ @
  1
c 7r   