U
    Vc                     @   s^   d dl Z d dlmZ d dlmZ d dlmZ dd Z	dd Z
d	d
 ZedddZdd ZdS )    N)decodebytes)message_from_bytes)Settingsc                 C   s:   |  d d\}}|dkr t||d d}| }|S )NZALLOKr   utf-8)searchRuntimeErrordecodesplit)serverZres_typemessages r   ./modules/mail/client/imap.pyget_message_list   s    r   c                 C   sR   | D ]$}d|kr|d dkr|df  S qd| d koDd| d d k}| d |fS )NContent-Typez
text/plainTr   r   )payloadmsgZis_plain_textr   r   r   choose_plaintext_or_first   s
    r   c                 C   s"  t d d| krx| d }d|kr`|  }t|trVt|dkrVt|\}}|sVtdt | nt | dsxtd|ft|trt|}n"t|trt d d S t t	| t d	| 
  | d
dkrt|d}t | nt | d
  dD ]}|| krt || |  qt d td d S )Nz-BEGIN------------------------r   zmultipart/alternative   zWe not support not plain textFzwe not knowu.   - Косячное сообщение --------zKEYS:zContent-Transfer-Encodingbase64r   )r   ZSensitivityZFromZToZSubjectz-END--------------------------r   )printZget_payload
isinstancelistlenr   AssertionErrorZchoose_plaintextstrtypekeysgetd64encodeexit)messageZcontent_typer   Zplainr   keyr   r   r   parse_message   s6    




r$   )r   c                 C   sb   | r^|   }||d\}}|dkr&q zt|d d }W n tk
rR   Y q Y nX t| q d S )Nz(RFC822)r   r      )popZfetch	parse_msgKeyErrorr$   )r   r   Znumresultdatar"   r   r   r   print_message_list>   s    
r+   c                  C   sv   t dd } t| }|j}z |jr*tjntj|j|j	}W n4   |jrjt| d}t|jj|jj	}n Y nX |S )N@F)
emailr
   r   imapZsslimaplibZ	IMAP4_SSLZIMAP4ZhostnameZport)nameZsettingsr/   Zimap_serverr   r   r   	make_imapK   s     
r2   )r0   r   r   r   r.   r   r'   Zmodules.mail.client.serversr   r   r   r$   r   r+   r2   r   r   r   r   <module>   s   	%