HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/duplicity/backends/__pycache__/mediafirebackend.cpython-310.pyc
o

��`��@sbdZddlmZddlZddlZddlmZddlmZdZ	Gdd�dej
j�Zej
�
d	e�dS)
zMediaFire Duplicity Backend�)�strN)�util)�BackendException�45593c@sTeZdZdZdd�Zddd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
ddd�ZdS)�MediafireBackendzSUse this backend when saving to MediaFire

    URLs look like mf:/root/folder.
    c
Cszddl}Wnty}ztdt|���d}~wwtjj�||�|j}|�	�}|j
j|_|j
j
|_|j
j|_|j
j|_|j
��|_
|j
jt||d�d|j�dd�d}z|j
�|�}t||j�sitd��Wn|j
jy�|j
j|dd	�}|j
j|d
d�Ynw||_dS)Nrz?Mediafire backend requires the mediafire library.
Exception: %s)�app_id�email�passwordzmf:///�/�z-target_url already exists and is not a folderT)�	recursive�private)�privacy)�mediafire.client�ImportErrorrr�	duplicity�backend�Backend�__init__�username�get_password�client�File�	_file_res�Folder�_folder_res�
DownloadError�_downloaderror_exc�ResourceNotFoundError�
_notfound_exc�MediaFireClient�login�DUPLICITY_APP_ID�path�split�get_resource_by_uri�
isinstance�
create_folder�update_folder_metadata�folder)�self�
parsed_url�	mediafire�e�mediafire_email�mediafire_password�urir)�r1�E/usr/lib/python3/dist-packages/duplicity/backends/mediafirebackend.pyr's>���



���
zMediafireBackend.__init__NcCsd|durtj�|j�}|�|�}|j���|j�|�d�|�Wd�dS1s+wYdS)zUpload fileN�rb)	�osr#�basename�name�
_build_urir�upload_session�upload_file�open)r*�source_path�remote_filenamer0r1r1r2�_putPs
"�zMediafireBackend._putc
CsH|�|�}z
|j�||�d��WdS|jy#}zt|��d}~ww)z
Download file�wbN)r7r�
download_filer:rr)r*�filename�
local_pathr0�exr1r1r2�_get[s
��zMediafireBackend._getcCsD|��}g}|j�|�D]}t||j�sq|�|d�d��q|S)zList files in backup directoryr@zutf-8)r7r�get_folder_contents_iterr&r�append�encode)r*r0�	filenames�itemr1r1r2�_listcszMediafireBackend._listcCs |�|�}|jj|tjd�dS)zDelete single file)�purgeN)r7r�delete_file�config�mf_purge)r*r@r0r1r1r2�_deleteos
zMediafireBackend._deletecCs|D]}|�|�qdS)zDelete list of filesN)rN)r*�
filename_listr@r1r1r2�_delete_listts�zMediafireBackend._delete_listcCsL|�|�}z|j�|�}t|d�}Wd|iS|jy%d}Yd|iSw)zStat the remote file�size���)r7rr%�intr)r*r@r0�resourcerQr1r1r2�_queryys
��zMediafireBackend._query�cCsd|jddt�|�S)zBuild relative URIzmf:�	folderkeyr
)r)r�fsdecode)r*r@r1r1r2r7�s��zMediafireBackend._build_uri)N)rV)�__name__�
__module__�__qualname__�__doc__rr=rCrIrNrPrUr7r1r1r1r2r"s
)r�mf)r\�builtinsrr4�duplicity.backendrr�duplicity.errorsrr"rrr�register_backendr1r1r1r2�<module>sk