o
    9X}Z’  ã                   @   sb   d dl Z d dlZd dlZd dlZd dlZd dlmZ e e	¡Z
dd„ Zdd„ Zdd„ Zd	d
„ ZdS )é    N)Úsettingsc                   C   sr   t tddƒt tdddgƒt tdddgƒt tddƒt td	d
ƒt tddƒt tddƒt tddƒt tddƒt tddƒdœ
S )NÚ(DJANGO_MAILBOX_STRIP_UNALLOWED_MIMETYPESFÚ DJANGO_MAILBOX_ALLOWED_MIMETYPESz
text/plainz	text/htmlÚ$DJANGO_MAILBOX_TEXT_STORED_MIMETYPESÚ%DJANGO_MAILBOX_ALTERED_MESSAGE_HEADERz X-Django-Mailbox-Altered-MessageÚ.DJANGO_MAILBOX_ATTACHMENT_INTERPOLATION_HEADERz'X-Django-Mailbox-Interpolate-AttachmentÚ#DJANGO_MAILBOX_ATTACHMENT_UPLOAD_TOzmailbox_attachments/%Y/%m/%d/Ú%DJANGO_MAILBOX_STORE_ORIGINAL_MESSAGEÚ(DJANGO_MAILBOX_COMPRESS_ORIGINAL_MESSAGEÚ+DJANGO_MAILBOX_ORIGINAL_MESSAGE_COMPRESSIONé   ÚDJANGO_MAILBOX_default_charsetz	iso8859-1)
Ústrip_unallowed_mimetypesÚallowed_mimetypesÚtext_stored_mimetypesÚaltered_message_headerÚattachment_interpolation_headerÚattachment_upload_toÚstore_original_messageÚcompress_original_messageÚoriginal_message_compressionÚdefault_charset)Úgetattrr   © r   r   úF/var/www/html/env/lib/python3.10/site-packages/django_mailbox/utils.pyÚget_settings   sn   ýþýþýýýýýýýýÌr   c                    s|   t ƒ d ‰tjrt| tjƒr| S ‡fdd„‰ zd ‡ fdd„tj | ¡D ƒ¡W S  t	y=   t
 d| ˆ¡ |  ˆd¡ Y S w )	Nr   c                    s,   t | tjƒr| S |r|dkrˆ }|  |d¡S )Nzunknown-8bitÚreplace)Ú
isinstanceÚsixÚ	text_typeÚdecode)ÚvalueÚencoding)r   r   r   Ú_decodeQ   s
   z*convert_header_to_unicode.<locals>._decodeÚ c                    s   g | ]	\}}ˆ ||ƒ‘qS r   r   )Ú.0Úbytestrr"   )r#   r   r   Ú
<listcomp>Z   s    ÿþz-convert_header_to_unicode.<locals>.<listcomp>z7Errors encountered decoding header %s into encoding %s.r   )r   r   ÚPY2r   r   ÚjoinÚemailÚheaderÚdecode_headerÚUnicodeDecodeErrorÚloggerÚ	exceptionr    )r+   r   )r#   r   r   Úconvert_header_to_unicodeK   s$   


ýÿýúr0   c              	   C   sÖ   t  d¡}|  ¡ D ]_}| dd¡ d¡rq	| ¡ |krh| ¡ |krh| ¡ }|jdd�}|r^z| 	|d¡}W n. t
yJ   | 	dd¡}t d|¡ Y n ty]   | 	dd¡}t d	¡ Y nw | 	dd¡}||7 }q	|S )
zA
    Fetchs the body message matching main/sub content type.
    r$   zcontent-dispositionzattachment;T)r    r   Úasciiz¢Unknown encoding %s encountered while decoding text payload.  Interpreting as ASCII with replacement, but some data may not be represented as the sender intended.zÃError encountered while decoding text payload from an incorrectly-constructed e-mail; payload was converted to ASCII with replacement, but some data may not be represented as the sender intended.)r   r   ÚwalkÚgetÚ
startswithÚget_content_maintypeÚget_content_subtypeÚget_content_charsetÚget_payloadr    ÚLookupErrorr.   ÚwarningÚ
ValueError)ÚmessageÚmaintypeÚsubtypeÚbodyÚpartÚcharsetÚ	this_partr   r   r   Úget_body_from_messagei   s6   
ûÿþ
€rC   c                 C   s4   t ƒ }|d }d|v rtj ¡  |¡}tj ||¡S )Nr   ú%)r   ÚdatetimeÚutcnowÚstrftimeÚosÚpathr)   )ÚinstanceÚfilenamer   rI   r   r   r   Úget_attachment_save_path’   s   þrL   )rE   Úemail.headerr*   ÚloggingrH   r   Údjango.confr   Ú	getLoggerÚ__name__r.   r   r0   rC   rL   r   r   r   r   Ú<module>   s    
=)