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__/imapbackend.cpython-310.pyc
o

��`�'�@s ddlmZe��ddlmZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlmZzddlmZWnYe
jjdkrYddlZeje_ddlmZddlmZdd	lTddlZGd
d�dejj�Zej� de�ej� d
e�ejj!�"dd
g�dS)�)�standard_library)�inputN)�Parser)�default�)�config)�log)�*c@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�ImapBackendcCs�tjj�||�t�d|jj|j|j	|j
f�||_|j
dur'tt
d��}n|j
}|js?dtjvr9tj�d�}n	t�d�}n|j}||_
||_|��dS)Nz)I'm %s (scheme %s) connecting to %s as %szEnter account userid: �
IMAP_PASSWORDzEnter account password: )�	duplicity�backend�Backend�__init__r�Debug�	__class__�__name__�scheme�hostname�username�url�evalr�password�os�environ�get�getpass�resetConnection)�self�
parsed_urlrr�r �@/usr/lib/python3/dist-packages/duplicity/backends/imapbackend.pyr8s �

zImapBackend.__init__cCs|j}ztjd}Wnty|j}Ynwz|j��Wn	ty'Ynw|jdkr7t	j
}||d�|_n|jdkrEt	j}||d�|_t�
d|j�t�dd|jd	�|_tjsq|j�|j|j�|j�tj�t�d
�dS|j�|jd|j|j�|j�tj�t�d
�dS)N�IMAP_SERVER�imap��imapsi�zType of imap class: %sz^/��zIMAP connected�@)rrr�KeyErrorr�conn�close�	Exceptionr�imaplib�IMAP4�	IMAP4_SSLrrr�re�sub�path�
remote_dirr�imap_full_address�loginrr�select�imap_mailbox�Info)rr�imap_server�clr r r!rTs4
��

zImapBackend.resetConnectioncCs^tjj��}|j|d<|��|d<tjj�dd�}|�|���tj	�
|�|�|�|��S)N�From�Subject�application�binary)
�email�mime�	multipart�
MIMEMultipartr3�decode�MIMEBase�set_payload�read�encoders�
encode_base64�attach�	as_string)r�f�rname�mp�ar r r!�prepareBodyus

zImapBackend.prepareBodyc
Cs|�d�}tj}|dkrd}|dkr�z!|j�|�|�||�}|j�tj�|j�tjdd|���WnQt	j
jtj
tjfy�|d8}t�d|�t�d�|dkr~z|��Wn"t	j
jtj
tjfyy|d8}t�d�t�d�Ynw|dksUYnw|dkst�d|�dS)	N�rbr�@r'z#Error saving '%s', retrying in 30s ��$Error reconnecting, retrying in 30s z"IMAP mail with '%s' subject stored)�openr�timeoutr*r6rOr7�append�encoder-r.�abort�socket�error�sslerrorrr8�time�sleepr)r�source_path�remote_filenamerK�allowedTimeout�bodyr r r!�_put�s:


�����zImapBackend._putc
Cs�tj}|dkr	d}|dkr�zW|j�tj�|j�dd|�\}}|dkr)t|d��|ddkr3td��|j�|dd�\}}|dkrHt|d��|dd}t�}|�	|�
��}|�d�}	|	jd	d
�}
WnQtj
jtjtjfy�|d8}t�d|�t�d�|dkr�z|��Wn"tj
jtjtjfy�|d8}t�d
�t�d�Ynw|dks�Ynw|dks
|�d�}|�|
�|��|��t�d|�dS)NrrQr<�OKr&zno mail with subject %sz(RFC822)r'T)rCz$Error loading '%s', retrying in 30s rRrS�wbz#IMAP mail with '%s' subject fetched)rrUr*r6r7�searchr,�fetchr�parsestrrC�get_payloadr-r.rXrYrZr[rr8r\r]rrT�writer+�setdata)rr_�
local_pathr`�result�flist�rawbody�p�mrMra�tfiler r r!�_get�sT


�����
&
zImapBackend._getc
CsXg}|j�tj�\}}|dkrt|d��|j�dd|j�\}}|dkr*t|d��|ddkr2|S|d���	d�}d|d|df}|j�
|d�\}}|dkrXt|d��|D]O}t|�d	krcqZtj
jd
krwttd��|d	�d��}nt��|d	�d��}|d
}|d}	|	dur�t�d|jd��|	�r�|�|�t�d||	f�qZ|S)Nrcr�FROM�� s%s:%s���z(BODY[HEADER])r'r)�policyzunicode-escape�subject�from�^�$zIMAP flist: %s %s)r*r6rr7�BackendExceptionrer3r,�strip�splitrf�len�sys�version_info�majorrrrgrCr0�compile�matchrVrr8)
r�retrlrm�nums�set�msg�headers�subj�header_fromr r r!�_list�s8
�zImapBackend._listcGs$||�\}}|dkrt|d��|S)Nrcr)r,)r�fun�argsr�rmr r r!�imapf�szImapBackend.imapfcCs|�|jj|dd�dS)Nz+FLAGSz\DELETED)r�r*�store)r�ir r r!�delete_single_mailszImapBackend.delete_single_mailcCs|�|jj�}dS�N)r�r*�expunge)rrmr r r!r�szImapBackend.expungecCs~|D]-}|�|jjdd|�}|d��}t|�dkr/|ddkr/|�|d�t�d|�q|��t�dt|��dS)Nz(SUBJECT %s)rr&zmarked %s to be deletedzIMAP expunged %s files)	r�r*rer~rr�r�Noticer�)r�
filename_list�filenamermr r r!�_delete_lists�zImapBackend._delete_listcCs&|j�tj�|j��|j��dSr�)r*r6rr7r+�logout)rr r r!�_closes
zImapBackend._closeN)r�
__module__�__qualname__rrrOrbrrr�r�r�r�r�r�r r r r!r
7s!1&
r
r#r%)#�futurer�install_aliases�builtinsrr?�email.encoders�email.mime.multipartrr-rr0rYr�r\�email.parserr�email.policyrr�r��ssl�SSLErrorr[rrr�duplicity.errors�duplicity.backendr
rr
�register_backend�uses_netloc�extendr r r r!�<module>s<b