Ë
    ûûàg]  ã                   ó¸   — d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
  G d„ d«      Zd„ Z G d	„ d
e«      Z e
j                  e«      Z e	j                  e«      Zy)aT  
OAuth2 Adapter for Battle.net

Resources:

* Battle.net OAuth2 documentation:
    https://dev.battle.net/docs/read/oauth
* Battle.net API documentation:
    https://dev.battle.net/io-docs
* Original announcement:
    https://us.battle.net/en/forum/topic/13979297799
* The Battle.net API forum:
    https://us.battle.net/en/forum/15051532/
é    )Úsettings)Úget_adapter)ÚOAuth2Error)ÚOAuth2AdapterÚOAuth2CallbackViewÚOAuth2LoginViewc                   ó(   — e Zd ZdZdZdZdZdZdZdZ	y)	ÚRegionÚapacÚcnÚeuÚkrÚseaÚtwÚusN)
Ú__name__Ú
__module__Ú__qualname__ÚAPACÚCNÚEUÚKRÚSEAÚTWÚUS© ó    úm/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/battlenet/views.pyr
   r
      s%   „ Ø€DØ	€BØ	€BØ	€BØ
€CØ	€BØ	�Br   r
   c                 óx  — 	 | j                  «       }| j                  dk\  sd|v r^|j                  dd«      xs |j                  dd«      }|j                  dd«      xs |j                  dd«      }t        d|›d	|›d
�«      ‚d|vrt        d|z  «      ‚|S # t        $ r t        d| j                  z  «      ‚w xY w)Nz$Invalid JSON from Battle.net API: %ri�  ÚerrorÚ ÚtypeÚerror_descriptionÚdetailzBattle.net error: z (ú)Úidz$Invalid data from Battle.net API: %r)ÚjsonÚ
ValueErrorr   ÚtextÚstatus_codeÚget)ÚresponseÚdatar    Údescs       r   Ú_check_errorsr/   %   sÄ   € ðTØ�}‰}‹ˆð ×Ñ˜sÒ" g°¡oð —‘˜ "Ó%Ò=¨¯©°&¸"Ó)=ˆØ�x‰xÐ+¨RÓ0ÒJ°D·H±H¸XÀrÓ4JˆåºÂÐEÓFÐFð
 �4ÑäÐ@ÀDÑIÓJÐJà€Køô3 ò TÜÐ@ÀHÇMÁMÑRÓSÐSðTús   ‚B Â"B9c                   ó  ‡ — e Zd ZdZdZej                  ej                  ej                  ej                  ej                  ej                  ej                  fZed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zd„ Zˆ fd	„Zˆ xZS )
ÚBattleNetOAuth2Adapterzö
    OAuth2 adapter for Battle.net
    https://dev.battle.net/docs/read/oauth

    Region is set to us by default, but can be overridden with the
    `region` GET parameter when performing a login.
    Can be any of eu, us, kr, sea, tw or cn
    Ú	battlenetc                 ór  — | j                   j                  j                  dd«      j                  «       }|t        j
                  k(  rt        j                  S || j                  v r|S t        t        di «      j                  di «      j                  dd«      }|| j                  v r|S t        j                  S )NÚregionr!   ÚSOCIALACCOUNT_PROVIDERSr2   ÚREGIONr   )
ÚrequestÚGETr+   Úlowerr
   r   r   Úvalid_regionsÚgetattrr   ©Úselfr4   s     r   Úbattlenet_regionz'BattleNetOAuth2Adapter.battlenet_regionZ   s�   € ð —‘×!Ñ!×%Ñ% h°Ó3×9Ñ9Ó;ˆØ”V—Z‘ZÒä—9‘9ÐØ�T×'Ñ'Ñ'ØˆMô ”HÐ7¸Ó<ß‰S�˜bÓ!ß‰S�˜4Ó ð 	ð �T×'Ñ'Ñ'ØˆMä�y‰yÐr   c                 óD   — | j                   }|t        j                  k(  ryy)Nzhttps://oauth.battlenet.com.cnzhttps://oauth.battle.net)r>   r
   r   r<   s     r   Úbattlenet_base_urlz)BattleNetOAuth2Adapter.battlenet_base_urlp   s   € à×&Ñ&ˆØ”V—Y‘YÒØ3Ø)r   c                 ó    — | j                   dz   S )Nz/token©r@   ©r=   s    r   Úaccess_token_urlz'BattleNetOAuth2Adapter.access_token_urlw   s   € à×&Ñ&¨Ñ1Ð1r   c                 ó    — | j                   dz   S )Nz
/authorizerB   rC   s    r   Úauthorize_urlz$BattleNetOAuth2Adapter.authorize_url{   s   € à×&Ñ&¨Ñ5Ð5r   c                 ó    — | j                   dz   S )Nz	/userinforB   rC   s    r   Úprofile_urlz"BattleNetOAuth2Adapter.profile_url   s   € à×&Ñ&¨Ñ4Ð4r   c                 óú   — t        «       j                  «       j                  | j                  dd|j                  z  i¬«      }t        |«      }| j                  |d<   | j                  «       j                  ||«      S )NÚauthorizationz	Bearer %s)Úheadersr4   )	r   Úget_requests_sessionr+   rH   Útokenr/   r>   Úget_providerÚsociallogin_from_response)r=   r7   ÚapprM   Úkwargsr,   r-   s          r   Úcomplete_loginz%BattleNetOAuth2Adapter.complete_loginƒ   sw   € ä‹Mß!Ñ!Ó#ß‰SØ× Ñ Ø(¨+¸¿¹Ñ*EÐFð ó ð 	ô ˜XÓ&ˆð ×.Ñ.ˆˆX‰à× Ñ Ó"×<Ñ<¸WÀdÓKÐKr   c                 ó´   •— t         t        | �  ||«      }|j                  j	                  dd«      j                  «       }|r|| j                  v r|d|z  z  }|S )Nr4   r!   z
?region=%s)Úsuperr1   Úget_callback_urlr8   r+   r9   r:   )r=   r7   rP   Úrr4   Ú	__class__s        €r   rU   z'BattleNetOAuth2Adapter.get_callback_url“   sX   ø€ ÜÔ(¨$Ñ@ÀÈ#ÓNˆØ—‘—‘ ¨2Ó.×4Ñ4Ó6ˆá�f × 2Ñ 2Ñ2Ø� Ñ(Ñ(ˆAØˆr   )r   r   r   Ú__doc__Úprovider_idr
   r   r   r   r   r   r   r   r:   Úpropertyr>   r@   rD   rF   rH   rR   rU   Ú__classcell__)rW   s   @r   r1   r1   D   s½   ø„ ñð €Kð 	�‰Ø�	‰	Ø�	‰	Ø�	‰	Ø�
‰
Ø�	‰	Ø�	‰	ð€Mð ñó ðð* ñ*ó ð*ð ñ2ó ð2ð ñ6ó ð6ð ñ5ó ð5òL÷ ð r   r1   N)rX   Údjango.confr   Úallauth.socialaccount.adapterr   Ú-allauth.socialaccount.providers.oauth2.clientr   Ú,allauth.socialaccount.providers.oauth2.viewsr   r   r   r
   r/   r1   Úadapter_viewÚoauth2_loginÚoauth2_callbackr   r   r   ú<module>rc      sf   ðñõ !å 5Ý E÷ñ ÷ñ òô>U˜]ô Uðp ,ˆ×+Ñ+Ð,BÓC€Ø1Ð$×1Ñ1Ð2HÓI�r   