
    yi5                     l    	 d dl mZ n# e$ r dZY nw xY wd dlmZ  ee          Z G d d          ZdS )    )DDGSN)setup_loggerc                   4    e Zd Zeddededefd            ZdS )WebSearchTool   querymax_resultsreturnc                 H   	 t                               d|             t                                          | |          }|sd|  S d|  dg}t	          |d          D ]h\  }}|                    dd          }|                    d	d
          }|                    dd          }|                    d| d| d| d|            id                    |          S # t          $ r9}	t           	                    d|	            dt          |	           cY d}	~	S d}	~	ww xY w)a  
        Search the web using DuckDuckGo.
        Use this for:
        1. Retrieval of latest scientific research or studies (e.g. "latest study on NAD+")
        2. Real-time news or events.
        3. External knowledge verification (e.g. "reviews of Oura Ring Gen 4")
        4. "Biohacker" community experiences (Reddit, forums, etc).
        
        Args:
            query: The search query string.
            max_results: Max number of results (default 5).
        zSearching web for: )r	   zNo results found for query: zSearch Results for 'z':   titlezNo Titlehref#bodyz
No content
z. [z](z)
   zWeb search error: zError performing web search: N)loggerinfor   text	enumerategetappendjoin	Exceptionerrorstr)
r   r	   results	formattediresr   linksnippetes
             ,/root/projects/butler/slack_bot/tools/web.py
search_webzWebSearchTool.search_web   se   	<KK5e55666ffkk%[kAAG >=e=== :999:I#GQ// L L344wwvs++''&,77  !Ja!J!JE!J!JT!J!J!J!JKKKK99Y''' 	< 	< 	<LL1a11222;3q66;;;;;;;;	<s%   AC 	BC 
D!(.DD!D!N)r   )__name__
__module____qualname__staticmethodr   intr$        r#   r   r   
   sL         <  <#  <C  <  <  <  < \ <  <  <r+   r   )duckduckgo_searchr   ImportErrorhealth.utils.logging_configr   r%   r   r   r*   r+   r#   <module>r/      s   &&&&&&&   DDD 5 4 4 4 4 4	h		"< "< "< "< "< "< "< "< "< "<s   	 