o
    &zh                     @   s   d dl mZmZmZmZmZ 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 )    )AnyDictListMappingOptional)settings)EmailAddress)ProviderAccount)MediaWikiOAuth2Adapter)OAuth2ProviderSOCIALACCOUNT_PROVIDERS	mediawikic                   @   s   e Zd Zdd Zd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   m/var/www/html/kangema/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/mediawiki/provider.pyget_profile_url   s   z MediaWikiAccount.get_profile_urlN)__name__
__module____qualname__r   r   r   r   r   r      s    r   c                   @   s   e Zd ZdZdZeZeZe	de
eef dee fddZdd Zde
eef deeef fd	d
Zdd Zde
eef dee f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       t | ||d|ddS )Nrealnamer   )r%   r,   r   dictr&   r   r)   r   r   r   extract_extra_data(   
   z$MediaWikiProvider.extract_extra_datac                 C   r+   )Nr   r,   )r%   r   namer-   r)   r   r   r   extract_common_fields/   r0   z'MediaWikiProvider.extract_common_fieldsc                 C   s"   |  | }rt|dddgS g S )NT)r%   verifiedprimary)r&   r   )r   r"   addrr   r   r   extract_email_addresses6   s   z)MediaWikiProvider.extract_email_addressesN)r   r   r   idr1   r   account_classr
   oauth2_adapter_classstaticmethodr   r(   r   r   r&   r*   r   r/   r2   r   r   r6   r   r   r   r   r       s     ""r    N)typingr   r   r   r   r   django.confr   allauth.account.modelsr   $allauth.socialaccount.providers.baser	   /allauth.socialaccount.providers.mediawiki.viewsr
   /allauth.socialaccount.providers.oauth2.providerr   getattrr   r   r    provider_classesr   r   r   r   <module>   s    
$