
    )Jf                     \    d dl mZ d dlmZ  G d de          Z G d de          ZegZdS )    )ProviderAccount)OAuth2Providerc                   *     e Zd Zd Zd Z fdZ xZS )DoubanAccountc                 @    | j         j                            d          S )Naltaccount
extra_datagetselfs    r/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/allauth/socialaccount/providers/douban/provider.pyget_profile_urlzDoubanAccount.get_profile_url   s    |&**5111    c                 @    | j         j                            d          S )Nlarge_avatarr	   r   s    r   get_avatar_urlzDoubanAccount.get_avatar_url	   s    |&**>:::r   c                     t          t          |                                           }| j        j                            d|          S )Nname)superr   to_strr
   r   r   )r   dflt	__class__s     r   r   zDoubanAccount.to_str   s9    ]D))0022|&**64888r   )__name__
__module____qualname__r   r   r   __classcell__)r   s   @r   r   r      sV        2 2 2; ; ;9 9 9 9 9 9 9 9 9r   r   c                   &    e Zd ZdZdZeZd Zd ZdS )DoubanProviderdoubanDoubanc                     |d         S )Nid r   datas     r   extract_uidzDoubanProvider.extract_uid   s    Dzr   c                 @    |d         |                     dd          dS )a  
        Extract data from profile json to populate user instance.

        In Douban profile API:

        - id: a digital string, will never change
        - uid: defaults to id, but can be changed once, used in profile
          url, like slug
        - name: display name, can be changed every 30 days

        So we should use `id` as username here, other than `uid`.
        Also use `name` as `first_name` for displaying purpose.
        r$   r    )username
first_name)r   r&   s     r   extract_common_fieldsz$DoubanProvider.extract_common_fields   s+     T
((62..
 
 	
r   N)	r   r   r   r$   r   r   account_classr(   r-   r%   r   r   r    r       sA        	BD!M  
 
 
 
 
r   r    N)$allauth.socialaccount.providers.baser   /allauth.socialaccount.providers.oauth2.providerr   r   r    provider_classesr%   r   r   <module>r2      s    @ @ @ @ @ @ J J J J J J	9 	9 	9 	9 	9O 	9 	9 	9
 
 
 
 
^ 
 
 
8 ##   r   