
    ^i                         S r SSKrSSKrSSKJr  SSKJr  SSKJr  SSK	J
r
  \R                  " \5      r " S S\\
   5      rg)	Wikipedia text search engine.    N)Any)quote)BaseSearchEngine)
TextResultc                       \ rS rSrSrSrSrSrSrSr	Sr
 SS\S	\S
\S\S-  S\S\S\\\4   4S jjrS\S\\   4S jrSrg)	Wikipedia   r   	wikipediatext   zGhttps://{lang}.wikipedia.org/w/api.php?action=opensearch&search={query}GETqueryregion
safesearch	timelimitNpagekwargsreturnc                     UR                  5       R                  S5      u  px[        U5      n	SU SU	 3U l        0 n
Xl        U
$ )z'Build a payload for the search request.-https://zH.wikipedia.org/w/api.php?action=opensearch&profile=fuzzy&limit=1&search=)lowersplitr   
search_urllang)selfr   r   r   r   r   r   _countryr   encoded_querypayloads              P/home/james-whalen/.local/lib/python3.13/site-packages/ddgs/engines/wikipedia.pybuild_payloadWikipedia.build_payload   sP      --c2etfderdst 	 #%	    	html_textc                    [         R                  " U5      nUS   (       d  / $ [        5       nUS   S   Ul        US   S   Ul        [        UR                  5      nU R                  SSU R                   SU S35      nU(       aS  [         R                  " U5      n[        [        US   S	   R                  5       5      5      R                  S
S5      Ul        SUR                  ;   a  / $ U/$ )z&Extract search results from html text.   r      r   r   zG.wikipedia.org/w/api.php?action=query&format=json&prop=extracts&titles=z$&explaintext=0&exintro=0&redirects=1r   pagesextract zmay refer to:)jsonloadsr   titlehrefr   requestr   nextitervaluesgetbody)r   r%   	json_dataresultr   	resp_datas         r!   extract_resultsWikipedia.extract_results,   s    JJy)	|I |Al1o fll+LLtyyk!hivhw  x\  ]
	 

9-ItIg$6w$?$F$F$HIJNNyZ\]FKfkk)Ixr$   )r   r   )r'   )__name__
__module____qualname____firstlineno____doc__namecategoryproviderpriorityr   search_methodstrintdictr   r"   listr   r9   __static_attributes__ r$   r!   r	   r	      s    'DHHHZJM   	
 :   
c3h& j1A r$   r	   )r?   r,   loggingtypingr   urllib.parser   	ddgs.baser   ddgs.resultsr   	getLoggerr;   loggerr	   rJ   r$   r!   <module>rR      s<    #     & #			8	$4 , 4r$   