
    fs                     j    d Z ddlm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
)z1Customise Provider classes for Eventbrite API v3.    )EmailAddress)ProviderAccount)EventbriteOAuth2Adapter)OAuth2Providerc                   (     e Zd ZdZd Z fdZ xZS )EventbriteAccountz(ProviderAccount subclass for Eventbrite.c                 4    | j                   j                  d   S )zReturn avatar url.image_id)account
extra_dataselfs    n/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/eventbrite/provider.pyget_avatar_urlz EventbriteAccount.get_avatar_url   s    ||&&z22    c                 ~    | j                   j                  j                  d      }|r|d   d   S t        |          S )Nemailsr   email)r   r   getsuperto_str)r   r   	__class__s     r   r   zEventbriteAccount.to_str   s<    ((,,X6!9W%%w~r   )__name__
__module____qualname____doc__r   r   __classcell__)r   s   @r   r   r      s    23   r   r   c                   8    e Zd ZdZdZdZeZeZ	d Z
d Zd Zd Zy)	EventbriteProviderz'OAuth2Provider subclass for Eventbrite.
eventbrite
Eventbritec                     t        |d         S )z)Extract uid ('id') and ensure it's a str.id)str)r   datas     r   extract_uidzEventbriteProvider.extract_uid!   s    4:r   c                     dgS )z&Ensure scope is null to fit their API.  r   s    r   get_default_scopez$EventbriteProvider.get_default_scope%   s	    tr   c           
         d}|j                  dg       D ]N  }|xs |j                  d      }|j                  dd      s+|j                  dd      s>|j                  d      }P t        ||j                  d      |j                  d      |j                  d	      |j                  d
      |j                  d            S )z'Extract fields from a basic user query.Nr   r   verifiedFprimaryr#   name
first_name	last_name	image_url)r   r#   r.   r/   r0   r1   )r   dict)r   r%   r   
curr_emails       r   extract_common_fieldsz(EventbriteProvider.extract_common_fields)   s    ((8R0 	0J4Z^^G4E~~j%0Z^^Iu5U"w/	0
 xx~&!xx-hh{+hh{+
 	
r   c           	          g }|j                  dg       D ]<  }|j                  t        |j                  d      |j                  d                   > |S )Nr   r   r,   )r   r,   )r   appendr   )r   r%   	addressesr   s       r   extract_email_addressesz*EventbriteProvider.extract_email_addresses:   sW    	XXh+ 	E))G,"YYz2	 r   N)r   r   r   r   r#   r.   r   account_classr   oauth2_adapter_classr&   r*   r4   r8   r)   r   r   r   r      s.    1	BD%M2
"
r   r   N)r   allauth.account.modelsr   $allauth.socialaccount.providers.baser   0allauth.socialaccount.providers.eventbrite.viewsr   /allauth.socialaccount.providers.oauth2.providerr   r   r   provider_classesr)   r   r   <module>r@      s=    7 / @ K   + +\ '' r   