U
    Z!c                     @   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)OAuth2ProviderZ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 )NZUSERPAGE_TEMPLATEz/https://meta.wikimedia.org/wiki/User:{username}username _r	   )r   getaccount
extra_dataformatreplace)selfZuserpager	    r   v/var/www/html/crackeverytest/cet_env/lib/python3.8/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   Zdflt	__class__r   r   r      s    zMediaWikiAccount.to_str)__name__
__module____qualname__r   r   __classcell__r   r   r   r   r      s   	r   c                   @   sP   e Zd ZdZdZeZeee	e
 dddZdd Zdd	 Zd
d Zdd ZdS )MediaWikiProviderr   Z	MediaWiki)datareturnc                 C   s   |  dr|  dS d S )NZ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	   Z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!   ZverifiedZprimary)r   r"   r%   r   r   r   extract_email_addresses6   s    z)MediaWikiProvider.extract_email_addressesN)r   r   r   idr)   r   Zaccount_classstaticmethodr'   r   r$   r"   r&   r(   r*   r+   r   r   r   r   r      s   r   N)typingr   Zdjango.confr   Zallauth.account.modelsr   Z$allauth.socialaccount.providers.baser   Z/allauth.socialaccount.providers.oauth2.providerr   getattrr   r   r   Zprovider_classesr   r   r   r   <module>   s   