
    qh[	                     J    S r SSKrSSKJr  SSKJr  SSKJr   " S S	\5      rg)
zC
Beats backend, docs at:
    https://developer.beatsmusic.com/docs
    N)AuthUnknownError   )handle_http_errors   )
BaseOAuth2c                   T    \ rS rSrSrSrSrSrSrSr	S r
S	 r\S
 5       rS rS rSrg)BeatsOAuth2   beats user_contextz6https://partner.api.beatsmusic.com/v1/oauth2/authorizez/https://partner.api.beatsmusic.com/oauth2/tokenFc                 .    US   [         R                     $ )Nresult)r	   ID_KEY)selfdetailsresponses      L/var/www/html/env/lib/python3.13/site-packages/social_core/backends/beats.pyget_user_idBeatsOAuth2.get_user_id   s    !+"4"455    c           	          SSR                  [        R                  " SR                   " U R                  5       6 R	                  5       5      5      0$ )NAuthorizationzBasic {}z{}:{})formatbase64urlsafe_b64encodeget_key_and_secretencode)r   s    r   auth_headersBeatsOAuth2.auth_headers   sH    Z..((NND$;$;$=>EEG
 	
r   c                    U R                  U R                  5        U R                  U R                  U R	                  U R                  5       5      U R                  5       U R                  S9nU R                  U5        UR                  SS5      (       a!  UR                  SS5      nUc  [        U S5      eU R                  " US   /UQ7SU0UD6$ )z2Completes login process, must return user instance)dataheadersmethodjsonrpcNr   zInvalid authentication responseaccess_tokenr   )process_errorr"   request_access_tokenACCESS_TOKEN_URLauth_complete_paramsvalidate_stater   ACCESS_TOKEN_METHODgetr   do_auth)r   argskwargsr   s       r   auth_completeBeatsOAuth2.auth_complete"   s     	499%,,!!**4+>+>+@A%%'++	 - 
 	8$<<	4((||Hd3H&t-NOO||^$
:>
/7
BH
 	
r   c                     US   nU R                  UR                  S5      5      u  p#nUR                  S5      UR                  S5      UUUS.$ )z&Return user details from Beats accountr   display_nameidemail)usernamer6   fullname
first_name	last_name)get_user_namesr-   )r   r   r8   r9   r:   s        r   get_user_detailsBeatsOAuth2.get_user_details6   sZ    H%*.*=*=LL(+
'i !T*\\'* $"
 	
r   c                 ,    U R                  SSSU 30S9$ )zLoads user data from servicez,https://partner.api.beatsmusic.com/v1/api/mer   zBearer )r#   )get_json)r   r&   r/   r0   s       r   	user_dataBeatsOAuth2.user_dataD   s*    }}:$~&>?  
 	
r    N)__name__
__module____qualname____firstlineno__nameSCOPE_SEPARATORr   AUTHORIZATION_URLr)   REDIRECT_STATEr   r   r   r1   r<   r@   __static_attributes__rB   r   r   r	   r	      sJ    DOFPHN6
 
 
&

r   r	   )	__doc__r   social_core.exceptionsr   utilsr   oauthr   r	   rB   r   r   <module>rP      s$   
  3 & ;
* ;
r   