o
    ˷e                     @   sB   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 )    )ProviderAccount)OAuth2Providerc                       s,   e Zd Zdd Zdd Z fddZ  ZS )StravaAccountc                 C   s    | j jd}|rd|S d S )Nidz"https://www.strava.com/athletes/{})account
extra_datagetformat)selfr    r   f/var/www/ideatree/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/strava/provider.pyget_profile_url   s   
zStravaAccount.get_profile_urlc                 C   s"   | j jd}|r|dkr|S d S )Nprofilezavatar/athlete/large.png)r   r   r   )r
   avatarr   r   r   get_avatar_url   s   zStravaAccount.get_avatar_urlc                    s   t t|  }| jjd|S )Nname)superr   to_strr   r   r   )r
   r   	__class__r   r   r      s   zStravaAccount.to_str)__name__
__module____qualname__r   r   r   __classcell__r   r   r   r   r      s    r   c                       s8   e Zd ZdZdZeZdd Z fddZdd Z	  Z
S )	StravaProviderstravaStravac                 C   s
   | dS )Nr   )r   )r
   datar   r   r   extract_uid   s   
zStravaProvider.extract_uidc                    sd   t t| |}|d}|d}ddd ||fD }|j|d|d||| d |S )	N	firstnamelastname c                 s   s    | ]}|r|V  qd S )Nr   ).0partr   r   r   	<genexpr>#   s    z7StravaProvider.extract_common_fields.<locals>.<genexpr>usernameemail)r%   r&   
first_name	last_namer   )r   r   extract_common_fieldsr   joinupdatestrip)r
   r   extra_commonr   r    r   r   r   r   r)      s   

z$StravaProvider.extract_common_fieldsc                 C   s   dgS )Nzread,activity:readr   )r
   r   r   r   get_default_scope-   s   z StravaProvider.get_default_scope)r   r   r   r   r   r   account_classr   r)   r.   r   r   r   r   r   r      s    r   N)$allauth.socialaccount.providers.baser   /allauth.socialaccount.providers.oauth2.providerr   r   r   provider_classesr   r   r   r   <module>   s
    
