o
    ¡6Uª  ã                   @   s2   d dl Z d dlmZ e  e¡ZG dd„ deƒZdS )é    N)ÚImapTransportc                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚGmailImapTransportc              
   C   sx   z|   |¡ W d S  ttfy; } z%t d| ¡ |  | j| j¡| _| j 	||¡\}}| j 
¡  W Y d }~d S d }~ww )NzCouldn't do oauth2 because %s)Ú_connect_oauthÚ	TypeErrorÚ
ValueErrorÚloggerÚwarningÚ	transportÚhostnameÚportÚserverÚloginÚselect)ÚselfÚusernameÚpasswordÚeÚtypÚmsg© r   úQ/var/www/html/env/lib/python3.10/site-packages/django_mailbox/transports/gmail.pyÚconnect   s   €üzGmailImapTransport.connectc                    sÊ   zddl m}m}m} W n ty   tdƒ‚w d }|d u rDz||ƒ}||ƒd }W n ty3   Y n |y?   td| ƒ‚w |d u sd||f ‰ |  | j| j	¡| _
| j
 d‡ fdd	„¡ | j
 ¡  d S )
Nr   )Úget_google_access_tokenÚfetch_user_infoÚAccessTokenNotFoundz7Install python-social-auth to use oauth2 auth for gmailÚemailz/No Token available in python-social-auth for %szuser=%sauth=Bearer %sÚXOAUTH2c                    s   ˆ S )Nr   )Úx©Úauth_stringr   r   Ú<lambda>8   s    z3GmailImapTransport._connect_oauth.<locals>.<lambda>)Údjango_mailbox.google_utilsr   r   r   ÚImportErrorr   r   r	   r
   r   r   Úauthenticater   )r   r   r   r   r   Úaccess_tokenÚgoogle_email_addressr   r   r   r      s:   ÿÿÿÿÿøþz!GmailImapTransport._connect_oauthN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   	   s    
r   )ÚloggingÚdjango_mailbox.transports.imapr   Ú	getLoggerr&   r   r   r   r   r   r   Ú<module>   s    
