§
    �zIfÂ  ã                   óV   — d Z ddlZddlZddlmZ d
d„Z G d„ d¦  «        Zdd„Zd	„ ZdS )z8
Authentication utilities to accompany `twitterclient`.
é    N)ÚTwythonFc                 óJ   — t          ¦   «                              | ||¬¦  «        S )z1
    Convenience function for authentication
    ©Ú
creds_fileÚsubdirÚverbose)ÚAuthenticateÚ
load_credsr   s      úE/var/www/piapp/venv/lib/python3.11/site-packages/nltk/twitter/util.pyÚcredsfromfiler      s,   € õ ‰>Œ>×$Ò$Ø f°gð %ñ ô ð ó    c                   ó(   — e Zd ZdZd„ Zdd„Zdd„ZdS )	r	   z2
    Methods for authenticating with Twitter.
    c                 ó¶   — d| _         d | _        i | _        	 t          j        d         | _        | j        | _        d S # t          $ r d | _        d | _        Y d S w xY w)Nzcredentials.txtÚTWITTER)r   Úcreds_fullpathÚoauthÚosÚenvironÚtwitter_dirÚcreds_subdirÚKeyError)Úselfs    r   Ú__init__zAuthenticate.__init__!   sq   € Ø+ˆŒØ"ˆÔàˆŒ
ð	%Ý!œz¨)Ô4ˆDÔØ $Ô 0ˆDÔÐÐøÝð 	%ð 	%ð 	%Ø#ˆDÔØ $ˆDÔÐÐÐð	%øøøs   —#< ¼AÁANFc                 óÌ  — |�|| _         |€| j        €d}t          |¦  «        ‚n|| _        t          j                             t          j                             | j        | j         ¦  «        ¦  «        | _        t          j                             | j        ¦  «        st          d| j        › �¦  «        ‚t          | j        ¦  «        5 }|rt          d| j        › �¦  «         |D ]M}d|v rG|                     dd¦  «        \  }}|                     ¦   «         | j        |                     ¦   «         <   ŒN	 ddd¦  «         n# 1 swxY w Y   |                      |¬¦  «         | j        S )a  
        Read OAuth credentials from a text file.

        File format for OAuth 1::

           app_key=YOUR_APP_KEY
           app_secret=YOUR_APP_SECRET
           oauth_token=OAUTH_TOKEN
           oauth_token_secret=OAUTH_TOKEN_SECRET


        File format for OAuth 2::

           app_key=YOUR_APP_KEY
           app_secret=YOUR_APP_SECRET
           access_token=ACCESS_TOKEN

        :param str file_name: File containing credentials. ``None`` (default) reads
            data from `TWITTER/'credentials.txt'`
        NzQSupply a value to the 'subdir' parameter or set the TWITTER environment variable.zCannot find file zReading credentials file ú=é   )r   )r   r   Ú
ValueErrorr   ÚpathÚnormpathÚjoinr   ÚisfileÚOSErrorÚopenÚprintÚsplitÚstripr   Ú_validate_creds_file)	r   r   r   r   ÚmsgÚinfileÚlineÚnameÚvalues	            r   r
   zAuthenticate.load_creds-   s¦  € ð* Ð!Ø(ˆDŒOàˆ>ØÔ Ð(ð?ð õ ! ‘o”oÐ%ð )ð !'ˆDÔå œg×.Ò.ÝŒG�LŠL˜Ô*¨D¬OÑ<Ô<ñ
ô 
ˆÔõ Œw�~Š~˜dÔ1Ñ2Ô2ð 	EÝÐC¨dÔ.AÐCÐCÑDÔDÐDå�$Ô%Ñ&Ô&ð 	=¨&Øð IÝÐG°$Ô2EÐGÐGÑHÔHÐHàð =ð =�Ø˜$�;�;Ø"&§*¢*¨S°!Ñ"4Ô"4‘K�D˜%Ø/4¯{ª{©}¬}�D”J˜tŸzšz™|œ|Ñ,øð=ð		=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	×!Ò!¨'Ð!Ñ2Ô2Ð2àŒzÐs   ÃA*D>Ä>EÅEc                 óB  ‡ — d}g d¢}d}g d¢}t          ˆ fd„|D ¦   «         ¦  «        rd}nt          ˆ fd„|D ¦   «         ¦  «        rd}|s8|s6d‰ j        › d�}|t          j        ‰ j        ¦  «        z  }t          |¦  «        ‚|rt          d	‰ j        › d
�¦  «         dS dS )z%Check validity of a credentials file.F)Úapp_keyÚ
app_secretÚoauth_tokenÚoauth_token_secret)r.   r/   Úaccess_tokenc              3   ó*   •K  — | ]}|‰j         v V — Œd S ©N©r   ©Ú.0Úkr   s     €r   ú	<genexpr>z4Authenticate._validate_creds_file.<locals>.<genexpr>i   s)   øè è € Ð4Ð4 1ˆq�D”JˆÐ4Ð4Ð4Ð4Ð4Ð4r   Tc              3   ó*   •K  — | ]}|‰j         v V — Œd S r4   r5   r6   s     €r   r9   z4Authenticate._validate_creds_file.<locals>.<genexpr>k   s)   øè è € Ð6Ð6 Q��d”j�Ð6Ð6Ð6Ð6Ð6Ð6r   z Missing or incorrect entries in ú
zCredentials file "z" looks goodN)Úallr   ÚpprintÚpformatr   r   r$   )r   r   Úoauth1Úoauth1_keysÚoauth2Úoauth2_keysr(   s   `      r   r'   z!Authenticate._validate_creds_filec   sõ   ø€ àˆØTÐTÐTˆØˆØ?Ð?Ð?ˆÝÐ4Ð4Ð4Ð4¨Ð4Ñ4Ô4Ñ4Ô4ð 	ØˆFˆFÝÐ6Ð6Ð6Ð6¨+Ð6Ñ6Ô6Ñ6Ô6ð 	ØˆFàð 	F˜&ð 	FØH°T´_ÐHÐHÐHˆCØ•6”> $¤*Ñ-Ô-Ñ-ˆCÝ˜S‘/”/Ð!Øð 	FÝÐD t¤ÐDÐDÐDÑEÔEÐEÐEÐEð	Fð 	Fr   ©NNF)F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r
   r'   © r   r   r	   r	      s\   € € € € € ðð ð
%ð 
%ð 
%ð4ð 4ð 4ð 4ðlFð Fð Fð Fð Fð Fr   r	   c                 óž  — | €Dt           j                             t          ¦  «        }t           j                             |d¦  «        } t          | ¬¦  «        }|d         }|d         }t          ||d¬¦  «        }|                     ¦   «         }d|› d	�}t          | d
¦  «        5 }t          ||¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zc
    For OAuth 2, retrieve an access token for an app and append it to a
    credentials file.
    Nzcredentials2.txt)r   r.   r/   é   )Úoauth_versionzaccess_token=r;   Úa)Úfile)
r   r   ÚdirnameÚ__file__r    r   r   Úobtain_access_tokenr#   r$   )	r   r   rA   r.   r/   Útwitterr2   Útokr)   s	            r   Úadd_access_tokenrS   v   s  € ð
 ÐÝŒw�Š�xÑ(Ô(ˆÝ”W—\’\ $Ð(:Ñ;Ô;ˆ
Ý jÐ1Ñ1Ô1€FØ�YÔ€GØ˜Ô%€Jå�g˜z¸Ð;Ñ;Ô;€GØ×.Ò.Ñ0Ô0€LØ
*˜,Ð
*Ð
*Ð
*€CÝ	ˆj˜#Ñ	Ô	ð   &Ýˆc˜ÐÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   Â#CÃCÃ	Cc                 ó¾   — t           j                             | ¦  «        r| S t           j                             t           j                             d| ¦  «        ¦  «        S )zÃ
    If the path is not absolute, guess that it is a subdirectory of the
    user's home directory.

    :param str pth: The pathname of the directory where files of tweets should be written
    ú~)r   r   ÚisabsÚ
expanduserr    )Úpths    r   Ú
guess_pathrY   ‰   sE   € õ 
„w‡}‚}�SÑÔð :Øˆ
åŒw×!Ò!¥"¤'§,¢,¨s°CÑ"8Ô"8Ñ9Ô9Ð9r   rC   r4   )	rG   r   r=   Útwythonr   r   r	   rS   rY   rH   r   r   ú<module>r[      s¯   ððð ð 
€	€	€	Ø €€€à Ð Ð Ð Ð Ð ðð ð ð ðWFð WFð WFð WFð WFñ WFô WFð WFðt ð  ð  ð  ð&
:ð 
:ð 
:ð 
:ð 
:r   