o
    hY                     @   sf   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 G dd deZ
G dd	 d	e	ZegZd
S )    )EmailAddress)app_settings)ProviderAccount)GitHubOAuth2Adapter)OAuth2Providerc                   @   s   e Zd Zdd Zdd ZdS )GitHubAccountc                 C      | j jdS )Nhtml_urlaccount
extra_datagetself r   f/var/www/html/pos/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/github/provider.pyget_profile_url	      zGitHubAccount.get_profile_urlc                 C   r   )N
avatar_urlr
   r   r   r   r   get_avatar_url   r   zGitHubAccount.get_avatar_urlN)__name__
__module____qualname__r   r   r   r   r   r   r      s    r   c                   @   sD   e Zd ZdZdZeZeZdd Z	dd Z
dd Zd	d
 Zdd ZdS )GitHubProvidergithubGitHubc                 C   s   g }t jr
|d |S )Nz
user:email)r   QUERY_EMAILappend)r   scoper   r   r   get_default_scope   s   
z GitHubProvider.get_default_scopec                 C   s   t |d S )Nid)strr   datar   r   r   extract_uid   s   zGitHubProvider.extract_uidc                 C   s    t |d|d|ddS )Nemailloginname)r%   usernamer'   )dictr   r"   r   r   r   extract_common_fields   s
   z$GitHubProvider.extract_common_fieldsc                 C   s   d|v rt |}|d |S )Nemails)r)   popr"   r   r   r   extract_extra_data&   s   
z!GitHubProvider.extract_extra_datac                 C   s:   g }| dg D ]}|t|d |d |d d q|S )Nr+   r%   primaryverified)r%   r.   r/   )r   r   r   )r   r#   retr%   r   r   r   extract_email_addresses,   s   z&GitHubProvider.extract_email_addressesN)r   r   r   r    r'   r   account_classr   oauth2_adapter_classr   r$   r*   r-   r1   r   r   r   r   r      s    r   N)allauth.account.modelsr   allauth.socialaccountr   $allauth.socialaccount.providers.baser   ,allauth.socialaccount.providers.github.viewsr   /allauth.socialaccount.providers.oauth2.providerr   r   r   provider_classesr   r   r   r   <module>   s    
)