
    6j                         d Z ddl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
  ej        e          Z G d dee
                   ZdS )	Wikipedia text search engine.    N)Any)quote)BaseSearchEngine)
TextResultc                       e Zd ZdZdZdZdZdZdZdZ		 dde
d	e
d
e
de
dz  dede
dee
ef         fdZde
dee         fdZdS )	Wikipediar   	wikipediatext   zGhttps://{lang}.wikipedia.org/w/api.php?action=opensearch&search={query}GET   queryregion
safesearch	timelimitNpagekwargsreturnc                     |                                                     d          \  }}t          |          }	d| d|	 | _        i }
|| _        |
S )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              X/root/.hermes/hermes-agent/venv/lib64/python3.11/site-packages/ddgs/engines/wikipedia.pybuild_payloadzWikipedia.build_payload   s\      --c22$ettttertt 	 #%	    	html_textc                     t          j        |          }|d         sg S t                      }|d         d         |_        |d         d         |_        t          |j                  }|                     dd| j         d| d          }|rgt          j        |          }t          t          |d         d	         
                                                                        d
d          |_        d|j        v rg S |gS )z&Extract search results from html text.r   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_resultszWikipedia.extract_results,   s   Jy))	| 	I |Al1o fl++LL ]ty  ]  ]iv  ]  ]  ]
 
	  	^
9--ItIg$6w$?$F$F$H$HIIJJNNyZ\]]FKfk))Ixr#   )r   )__name__
__module____qualname____doc__namecategoryproviderpriorityr   search_methodstrintdictr   r"   listr   r7    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   	getLoggerr8   loggerr	   rE   r#   r!   <module>rM      s    # #               & & & & & & # # # # # #		8	$	$4 4 4 4 4 , 4 4 4 4 4r#   