o
    ö"h  ã                   @   s(  d dl mZ d dl mZ d dlmZ d dlmZ d dd„Zd dd„Zd d	ed
e	dee fdd„Z
edkr�dZeeƒZede› d�ƒ eeƒD ]K\ZZdev rZeded › �ƒ  dS dev rgeed ƒ  dS eed › ded › �ƒ eded › �ƒ eded dd… › d�ƒ edƒ qFdS dS )!é    )ÚDDGS)Úsearch)ÚListé   c              
   C   sz   z#t ƒ �}dd„ |j| |d�D ƒW  d  ƒ W S 1 sw   Y  W dS  ty< } zdt|ƒigW  Y d}~S d}~ww )z3Perform DuckDuckGo search returning titles and URLsc                 S   s   g | ]}|d  |d dœ‘qS )ÚtitleÚhref©r   Úurl© )Ú.0Úrr
   r
   ú?C:\Users\shubh\Videos\agent\agent_preprod\modules\search\web.pyÚ
<listcomp>   s    ÿzfetch_ddg.<locals>.<listcomp>)Úmax_resultsNÚerror)r   ÚtextÚ	ExceptionÚstr)Úqueryr   ZddgsÚer
   r
   r   Ú	fetch_ddg	   s   ÿ(ÿ€ÿr   c              
   C   sN   zdd„ t | ||d�D ƒW S  ty& } zdt|ƒigW  Y d}~S d}~ww )z/Perform Google search returning titles and URLsc                 S   s   g | ]}||d œ‘qS )r   r
   )r   Úresultr
   r
   r   r      s    ÿz fetch_google.<locals>.<listcomp>)ÚnumÚstopr   N)r   r   r   )r   Únum_resultsr   r
   r
   r   Úfetch_google   s   ÿ€ÿr   r   r   Úreturnc                 C   s`   t t| › d�|d�ƒ}g }|d |… D ]}| d¡}t|ƒ\}}| |› d|› d|› �¡ q|S )Nz torrent)r   r   Ú
)ÚlistÚgoogle_searchÚgetZscrape_pageÚappend)r   r   ÚitemsÚresultsÚitemr	   r   Úsnippetr
   r
   r   Úfetch_torrents   s   
r&   Ú__main__zpython web frameworkszDuckDuckGo results for 'z':r   zError: Úmessageé   z. r   z	   Link: Úlinkz   Snippet: r%   Néd   z...z---)r   )Úduckduckgo_searchr   Úgooglesearchr   Útypingr   r   r   r   Úintr&   Ú__name__Úsearch_queryZddg_resultsÚprintÚ	enumerateÚir   r
   r
   r
   r   Ú<module>   s0   




ò