o
    ˷e                     @   sz   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 e
edi di ZG dd	 d	eZG d
d de	ZegZdS )    )Optional)settings)EmailAddress)ProviderAccount)OAuth2ProviderSOCIALACCOUNT_PROVIDERS	mediawikic                       s$   e Zd Zdd Z fddZ  ZS )MediaWikiAccountc                 C   s6   t dd}| jjd}|sd S |j|dddS )NUSERPAGE_TEMPLATEz/https://meta.wikimedia.org/wiki/User:{username}username _r   )r   getaccount
extra_dataformatreplace)selfuserpager    r   i/var/www/ideatree/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/mediawiki/provider.pyget_profile_url   s   z MediaWikiAccount.get_profile_urlc                    s   t t|  }| jjd|S )Nr   )superr	   to_strr   r   r   )r   dflt	__class__r   r   r      s   zMediaWikiAccount.to_str)__name__
__module____qualname__r   r   __classcell__r   r   r   r   r	      s    	r	   c                   @   sR   e Zd ZdZdZeZedede	e
 fddZdd Zd	d
 Zdd Zdd ZdS )MediaWikiProviderr   	MediaWikidatareturnc                 C   s   |  dr
|  dS d S )Nconfirmed_emailemail)r   )r$   r   r   r   
_get_email!   s   

zMediaWikiProvider._get_emailc                 C   s   t |d S )Nsub)strr   r$   r   r   r   extract_uid'   s   zMediaWikiProvider.extract_uidc                 C   s   t |ddS )Nr   r   )dictr   r+   r   r   r   extract_extra_data*   s   z$MediaWikiProvider.extract_extra_datac                 C   s    t | ||d|ddS )Nr   realname)r'   r   name)r-   r(   r   r+   r   r   r   extract_common_fields/   s
   z'MediaWikiProvider.extract_common_fieldsc                 C   s   t | |dddgS )NT)r'   verifiedprimary)r   r(   r+   r   r   r   extract_email_addresses6   s   z)MediaWikiProvider.extract_email_addressesN)r   r   r    idr0   r	   account_classstaticmethodr-   r   r*   r(   r,   r.   r1   r4   r   r   r   r   r"      s    r"   N)typingr   django.confr   allauth.account.modelsr   $allauth.socialaccount.providers.baser   /allauth.socialaccount.providers.oauth2.providerr   getattrr   r	   r"   provider_classesr   r   r   r   <module>   s    
