B
    Ef                 @   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   zutf-8)searchRuntimeErrordecodesplit)serverZres_typemessages r   ./modules/mail/client/imap.pyget_message_list   s    r   c             C   sR   x(| D ] }d|kr|d dkr|dfS qW d| d koDd| d d k}| d |fS )Nz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
  x"dD ]}|| krt || |  qW t d td d S )Nz-BEGIN------------------------zContent-Typezmultipart/alternative   zWe not support not plain textFzwe not knowu.   - Косячное сообщение --------zKEYS:zContent-Transfer-Encodingbase64zutf-8)zContent-TypeZ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   sd   x^| r^|   }||d\}}|dkr(qyt|d d }W n tk
rR   wY nX t| qW 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}y |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     
r0   )r.   r   r   r   r,   r   r%   Zmodules.mail.client.serversr   r   r   r"   r   r)   r0   r   r   r   r   <module>   s   	%