Ë
    µŒj‡  ã                   óR   — d Z ddlmZmZmZmZ ddlmZ ddlm	Z	m
Z
  G d„ de	«      Zy)zWrapper for the Reddit APIé    )ÚAnyÚDictÚListÚOptional)Úget_from_dict_or_env)Ú	BaseModelÚmodel_validatorc                   óÄ   — e Zd ZU dZeed<   ee   ed<   ee   ed<   ee   ed<    ed¬«      e	de
d	efd
„«       «       Zdededededed	efd„Zdededededed	ee
   fd„Zy)ÚRedditSearchAPIWrapperaW  Wrapper for Reddit API

    To use, set the environment variables ``REDDIT_CLIENT_ID``,
    ``REDDIT_CLIENT_SECRET``, ``REDDIT_USER_AGENT`` to set the client ID,
    client secret, and user agent, respectively, as given by Reddit's API.
    Alternatively, all three can be supplied as named parameters in the
    constructor: ``reddit_client_id``, ``reddit_client_secret``, and
    ``reddit_user_agent``, respectively.

    Example:
        .. code-block:: python

            from langchain_community.utilities import RedditSearchAPIWrapper
            reddit_search = RedditSearchAPIWrapper()
    Úreddit_clientÚreddit_client_idÚreddit_client_secretÚreddit_user_agentÚbefore)ÚmodeÚvaluesÚreturnc                 óÞ   — t        |dd«      }||d<   t        |dd«      }||d<   t        |dd«      }||d<   	 ddl}|j                  |||¬
«      }||d<   |S # t        $ r t        d	«      ‚w xY w)z}Validate that the API ID, secret and user agent exists in environment
        and check that praw module is present.
        r   ÚREDDIT_CLIENT_IDr   ÚREDDIT_CLIENT_SECRETr   ÚREDDIT_USER_AGENTr   Nz?praw package not found, please install it with pip install praw)Ú	client_idÚclient_secretÚ
user_agentr   )r   ÚprawÚImportErrorÚReddit)Úclsr   r   r   r   r   r   s          úu/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/utilities/reddit_search.pyÚvalidate_environmentz+RedditSearchAPIWrapper.validate_environment!   s¿   € ô 0ØÐ&Ð(:ó
Ðð &6ˆÐ!Ñ"ä3ØÐ*Ð,Bó 
Ðð *>ˆÐ%Ñ&ä0ØÐ'Ð)<ó
Ðð '8ˆÐ"Ñ#ð	Ûð Ÿ™Ø&Ø.Ø(ð $ó 
ˆð
 #0ˆˆÑàˆøô ò 	ÜØQóð ð	ús   ¸A ÁA,ÚqueryÚsortÚtime_filterÚ	subredditÚlimitc                 ó:  — | j                  |||||¬«      }t        |«      dkD  rrd|› dt        |«      › d�g}|D ]I  }|d   €dn|d   }	d|d	   › d
|d   › d|d   › d|d   › d|d   › d|	› d|d   › d�}
|j                  |
«       ŒK dj                  |«      S d|› d�S )z2Search Reddit and return posts as a single string.)r!   r"   r#   r$   r%   r   zSearching r/z found z posts:Úpost_categoryzN/AzPost Title: 'Ú
post_titlez'
                    User: Úpost_authorz 
                    Subreddit: Úpost_subredditz!:
                    Text body: Ú	post_textz
                    Post URL: Úpost_urlz$
                    Post Category: z.
                    Score: Ú
post_scoreÚ
z did not find any posts:)ÚresultsÚlenÚappendÚjoin)Úselfr!   r"   r#   r$   r%   r/   ÚoutputÚrÚcategoryÚps              r   ÚrunzRedditSearchAPIWrapper.runF   s
  € ð #Ÿl™lØØØ#ØØð +ó 
ˆô ˆw‹<˜!ÒØ#/°	¨{¸'Ä#ÀgÃ,ÀÈwÐ!WÐ XˆFÛ�Ø$% oÑ$6Ð$>™5ÀAÀoÑDV�Ø# A l¡OÐ#4ð 5Ø˜]Ñ+Ð,ð - Ø !Ð"2Ñ 3Ð4ð 5 Ø ! +¡Ð/ð 0Ø  ™}˜oð .$Ø$, :ð .Ø˜l™OÐ,¨Bð0�ð —‘˜aÕ ð ð —9‘9˜VÓ$Ð$à! ) Ð,DÐEÐEó    c                 ót  — | j                   j                  |«      }|j                  ||||¬«      }|D �cg c]  }|‘Œ }}g }	|D ]l  }
|	j                  |
j                  |
j
                  |
j                  |
j                  |
j                  |
j                  |
j                  |
j                  dœ«       Œn |	S c c}w )z`Use praw to search Reddit and return a list of dictionaries,
        one for each post.
        )r!   r"   r#   r%   )r*   r'   r(   r+   r-   Úpost_idr,   r)   )r   r$   Úsearchr1   Úsubreddit_name_prefixedr6   ÚtitleÚselftextÚscoreÚidÚurlÚauthor)r3   r!   r"   r#   r$   r%   ÚsubredditObjectÚsearch_resultsr5   Úresults_objectÚ
submissions              r   r/   zRedditSearchAPIWrapper.resultsa   sÁ   € ð ×,Ñ,×6Ñ6°yÓAˆØ(×/Ñ/Ø˜d°À5ð 0ó 
ˆñ &4Ó4¡^ š! ^ˆÐ4ØˆÛ(ˆJØ×!Ñ!à&0×&HÑ&HØ%/×%8Ñ%8Ø",×"2Ñ"2Ø!+×!4Ñ!4Ø",×"2Ñ"2Ø)Ÿ}™}Ø *§¡Ø#-×#4Ñ#4ñ	õð )ð Ðùò 5s   µ	B5N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   Ústrr	   Úclassmethodr   r    Úintr8   r   r/   © r9   r   r   r   	   sÒ   … ñð  Óð ˜s‘mÓ#Ø" 3™-Ó'Ø ‘}Ó$á˜(Ô#Øð!¨$ð !°3ò !ó ó $ð!ðFFØðFØ #ðFØ25ðFØBEðFØNQðFà	óFð6ØðØ #ðØ25ðØBEðØNQðà	ˆd‰ôr9   r   N)rK   Útypingr   r   r   r   Úlangchain_core.utilsr   Úpydanticr   r	   r   rP   r9   r   Ú<module>rT      s"   ðÙ  ç ,Ó ,å 5ß /ôq˜Yõ qr9   