
    )Jf                     x    d dl mZ d dlmZmZ d dlmZ d Zd Z G d de          Z	 G d d	e          Z
e
gZd
S )    )app_settings)ProviderAccountProviderException)OAuth2Providerc                    d}|                      |i           }|rt          |t                    r|}n|                     di           }|                     dddd          }d                    |d         |d	         g          }||v r|                     |          }n0|r.t	          t          |                                                    }|S )
N 	localizedpreferredLocaleUSen)countrylanguage_r   r   )get
isinstancestrjoinnextitervalues)data
field_nameretvr	   preferred_locale
locale_keys          {/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/allauth/socialaccount/providers/linkedin_oauth2/provider.py_extract_name_fieldr   	   s    
CR  A 5a 	5CCk2..I uu!t#F#F    !*-/?	/JK J Y&&mmJ// 54	 0 0 2 23344J    c                     d}|                      dg           }t          |          dk    r0|d                              di                                dd          }|S )z
    {'elements': [{'handle': 'urn:li:emailAddress:319371470',
               'handle~': {'emailAddress': 'raymond.penners@intenct.nl'}}]}
    r   elementsr   zhandle~emailAddress)r   len)r   r   r!   s      r   _extract_emailr$      sY    
 Cxx
B''H
8}}qqkooi,,00DDJr   c                   (     e Zd Z fdZ fdZ xZS )LinkedInOAuth2Accountc                    t          t          |                                           }t          | j        j        d          }t          | j        j        d          }|s|r)d                    ||g                                          }|S )N	firstNamelastName )superr&   to_strr   account
extra_datar   strip)selfr   
first_name	last_name	__class__s       r   r,   zLinkedInOAuth2Account.to_str,   s}    )4007799()@+NN
'(?LL	 	< 	<((J	23399;;C
r   c                    | j                                                                         }|                    dg           }d}||vr't	          t
          |                                           S |                    di           }|                    dd          }|                    dd          }| j         j                            di                               d	i                               d
g           }|D ]}||d         k    s|                    di                               di                               di           }	|	sP|	d         |	d         }}
|
r|se|
|d         k    r||d         k    s~|                    di g          d                             d          }|r|c S t	          t
          |                                           S )z
        Attempts the load the avatar associated to the avatar.

        Requires the `profilePicture(displayImage~:playableStreams)`
        profile field configured in settings.py

        :return:
        PROFILE_FIELDSz-profilePicture(displayImage~:playableStreams)PROFILEPICTUREdisplay_size_w_h)      Y@r8   authorization_methodPUBLICprofilePicturezdisplayImage~r!   authorizationMethodr   z2com.linkedin.digitalmedia.mediaartifact.StillImagedisplaySizewidthheightr      identifiers
identifier)r-   get_providerget_settingsr   r+   r&   get_avatar_urlr.   )r0   provider_configurationconfigured_profile_fieldspicture_fieldprofile_picture_configreq_sizereq_auth_methodprofile_elementssingle_element
image_datar>   r?   	to_returnr3   s                r   rE   z$LinkedInOAuth2Account.get_avatar_url4   s    "&!:!:!<!<!I!I!K!K$:$>$>?OQS$T$T!G 999.55DDFFF!7!;!;<Lb!Q!Q)--.@.QQ0445KXVV L#''(8"==S"%%SR   	
 / 	! 	!N"n5J&KKK ""62..I2NN]B'' 
  &w/H1E6E  HQK''v!/D/D&**   c,   !    !*D11@@BBBr   )__name__
__module____qualname__r,   rE   __classcell__)r3   s   @r   r&   r&   +   sZ            4C 4C 4C 4C 4C 4C 4C 4C 4Cr   r&   c                   2    e Zd ZdZdZeZd Zd Zd Z	d Z
dS )LinkedInOAuth2Providerlinkedin_oauth2LinkedInc                 R    d|vrt          d          t          |d                   S )NidzZLinkedIn encountered an internal error while logging in.                 Please try again.)r   r   r0   r   s     r   extract_uidz"LinkedInOAuth2Provider.extract_uidq   s6    t##   4:r   c                 ^    g d}|                                                      d|          }|S )N)rY   r(   r)   r5   )rD   r   )r0   default_fieldsfieldss      r   get_profile_fieldsz)LinkedInOAuth2Provider.get_profile_fieldsy   s<    	
 	
 	
 ""$$(()9>JJr   c                 N    dg}t           j        r|                    d           |S )Nr_liteprofiler_emailaddress)r   QUERY_EMAILappend)r0   scopes     r   get_default_scopez(LinkedInOAuth2Provider.get_default_scope   s-     !# 	+LL)***r   c                 x    t          t          |d          t          |d          t          |                    S )Nr(   r)   )r1   r2   email)dictr   r$   rZ   s     r   extract_common_fieldsz,LinkedInOAuth2Provider.extract_common_fields   s>    *4==)$
;; &&
 
 
 	
r   N)rP   rQ   rR   rY   namer&   account_classr[   r_   rf   rj    r   r   rU   rU   k   s_        	BD)M      
 
 
 
 
r   rU   N)allauth.socialaccountr   $allauth.socialaccount.providers.baser   r   /allauth.socialaccount.providers.oauth2.providerr   r   r$   r&   rU   provider_classesrm   r   r   <module>rr      s    . . . . . .        K J J J J J  ,	 	 	=C =C =C =C =CO =C =C =C@'
 '
 '
 '
 '
^ '
 '
 '
T ++   r   