a
    Nb
                     @   s(   d dl Zd dlZG dd dejjZdS )    Nc                       sL   e Zd Zd fdd	Zdd Zdd	d
ZdddZdddZdd Z  Z	S )ImageNc                    sF   t t| j|||ddid | jdd| _| jdi fd | _d S )N	imageinfo))iiprop9timestamp|user|comment|url|size|sha1|metadata|archivename)Zextra_propertiesimagerepository r   )superr   __init___infogetr   r   )selfsitenameinfo	__class__ K/var/www/html/diaryflask/venv/lib/python3.9/site-packages/mwclient/image.pyr	      s    
zImage.__init__c                 C   s   t jj| ddddS )z{
        Get file revision info for the given file.

        API doc: https://www.mediawiki.org/wiki/API:Imageinfo
        r   iir   )r   mwclientlistingZPagePropertyr   r   r   r   imagehistory   s    zImage.imagehistoryallFTc                 C   sb   t jjd|}tt jjj|| j||d}|r<d|d| < t jj|| jddf|dd|S )zu
        List pages that use the given file.

        API doc: https://www.mediawiki.org/wiki/API:Imageusage
        iu)title	namespacefilterredir1z
%sredirect
imageusager   )limitZreturn_values)	r   r   ListZ
get_prefixdictZgenerate_kwargsr   Zget_listr   )r   r   r   redirectr!   	generatorprefixkwargsr   r   r   r       s    

zImage.imageusagec                 C   s   t jj| dd|dS )zz
        List duplicates of the current file.

        API doc: https://www.mediawiki.org/wiki/API:Duplicatefiles
        duplicatefilesZdf)Zdflimitr   )r   r!   r   r   r   r(   /   s    zImage.duplicatefilesc                 C   sT   | j d }|dur@| jjj|dd}|dD ]}|| q.n| jj|jS dS )a  
        Download the file. If `destination` is given, the file will be written
        directly to the stream. Otherwise the file content will be stored in memory
        and returned (with the risk of running out of memory for large files).

        Recommended usage:

            >>> with open(filename, 'wb') as fd:
            ...     image.download(fd)

        Args:
            destination (file object): Destination file
        urlNT)streami   )r   r   
connectionr   iter_contentwritecontent)r   Zdestinationr)   reschunkr   r   r   download7   s    
zImage.downloadc                 C   s   d| j d| jf S )Nz<Image object '%s' for %s>zutf-8)r   encoder   r   r   r   r   __repr__M   s    zImage.__repr__)N)Nr   FNT)N)N)
__name__
__module____qualname__r	   r   r    r(   r1   r3   __classcell__r   r   r   r   r      s     


r   )Zmwclient.listingr   Zmwclient.pagepageZPager   r   r   r   r   <module>   s   