
    f                     Z    d dl mZ d dlmZ d dlmZ  G d de      Z G d de      ZegZy)	    )ProviderAccount)DoubanOAuth2Adapter)OAuth2Providerc                       e Zd Zd Zd Zy)DoubanAccountc                 L    | j                   j                  j                  d      S )Naltaccount
extra_datagetselfs    j/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/douban/provider.pyget_profile_urlzDoubanAccount.get_profile_url   s    ||&&**511    c                 L    | j                   j                  j                  d      S )Nlarge_avatarr
   r   s    r   get_avatar_urlzDoubanAccount.get_avatar_url
   s    ||&&**>::r   N)__name__
__module____qualname__r   r    r   r   r   r      s    2;r   r   c                   (    e Zd ZdZdZeZeZd Z	d Z
y)DoubanProviderdoubanDoubanc                     |d   S )Nidr   r   datas     r   extract_uidzDoubanProvider.extract_uid   s    Dzr   c                 2    |d   |j                  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   name )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   oauth2_adapter_classr"   r(   r   r   r   r   r      s!    	BD!M.
r   r   N)	$allauth.socialaccount.providers.baser   ,allauth.socialaccount.providers.douban.viewsr   /allauth.socialaccount.providers.oauth2.providerr   r   r   provider_classesr   r   r   <module>r/      s1    @ L J;O ;
^ 
: ## r   