
    e!                         d dl mZ d dlZd dlZd dlZd dlmZ d dlZd dlm	Z	 dZ
 G d dej                        Z G d d	e	      Zy)
    )	urlencodeN)currentThread)UIBasez7.2.0c                   "     e Zd ZdZ fdZ xZS )MachineLogFormatterz9urlencodes any outputted line, to avoid multi-line outputc                 b   ddd}t         t        |   |      }|j                  j	                         }||v r||   }t        |d      r|j                  d   }|j                  d   }nd}t               j                         }|dt        d|fg      d	d  }|d|dt        d|fg      d	d  S )
Nmsgwarn)infowarning	machineuicommandid :   )
superr   format	levelnamelowerhasattrr   r   getNamer   )	selfrecordseverity_maplineseverityr   whoamiprefix	__class__s	           1/usr/share/offlineimap3/offlineimap/ui/Machine.pyr   zMachineLogFormatter.format   s     
 ($6v>##))+|##H-H6;'&&y1G%%d+FG"_,,.F#YV~%>qr%BC%vy2t*/Fqr/JKK    )__name__
__module____qualname____doc__r   __classcell__r    s   @r!   r   r      s    CL Lr"   r   c                        e Zd Zej                  f fd	Zd Zd Zd dZ fdZ	d Z
d Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd!dZd Zd Zd Z d"dZ!d Z"d Z# xZ$S )#	MachineUIc                     t         t        |   ||       | j                  j	                          	 | j                  j                  t                      y N)r   r*   __init___log_con_handler
createLocksetFormatterr   )r   configloglevelr    s      r!   r-   zMachineUI.__init__5   sA    i'9((*4**+>+@Ar"   c                 N     ||d|t               j                         di       y )Nr   )r   r   )extra)r   r   )r   handlerr   r	   s       r!   
_printDatazMachineUI._printDataA   s*    #*+o557"	r"   c                 R    | j                  | j                  j                  d|       y )N_displayr6   loggerr   r   r	   s     r!   _msgzMachineUI._msgJ       ((*c:r"   c                 R    | j                  | j                  j                  d|       y )Nr   )r6   r:   r   )r   r	   minors      r!   r
   zMachineUI.warnM   s    ++R5r"   c                 z    t         t        |   |       | j                  | j                  j
                  d|       y )Nregisterthread)r   r*   rA   r6   r:   r   )r   accountr    s     r!   rA   zMachineUI.registerthreadQ   s-    i-g6((*:GDr"   c                     t        j                  | |       | j                  | j                  j                  d|j                                y )Nunregisterthread)r   rD   r6   r:   r   r   r   threads     r!   rD   zMachineUI.unregisterthreadU   s4    f-((*<fnn>NOr"   c                 R    | j                  | j                  j                  d|       y )N	debugging)r6   r:   debug)r   	debugtypes     r!   rH   zMachineUI.debuggingY   s    ));	Br"   c                 R    | j                  | j                  j                  d|       y )Nacctr9   r   accountnames     r!   rL   zMachineUI.acct\   s    ((&+>r"   c                 R    | j                  | j                  j                  d|       y )Nacctdoner9   rM   s     r!   rP   zMachineUI.acctdone_   s    ((*kBr"   c                     | j                  | j                  j                  d|j                         d|j	                         j                         d|j                         d|j                                y )Nvalidityproblem
)r6   r:   r   getnamegetrepositoryget_saveduidvalidityget_uidvalidity)r   folders     r!   rR   zMachineUI.validityproblemb   sZ    ++->)6+?+?+A+I+I+K4468N8N8PAR 	Sr"   c           	      t    | j                  | j                  j                  d|dt        |      d|       y )N
connectingrS   )r6   r:   r   str)r   	reposnamehostnameports       r!   rZ   zMachineUI.connectingg   s/    ((,HKD	S\9^ 	_r"   c           	          | j                  | j                  j                  d| j                  |      d| j                  |             y )NsyncfoldersrS   )r6   r:   r   getnicename)r   srcrepos	destreposs      r!   r`   zMachineUI.syncfoldersk   s@    ((-TEUEUV^E_EIEUEUV_E`:b 	cr"   c                     | j                  | j                  j                  d| j                  |      d|j	                         d| j                  |      d|j	                         d       y )NsyncingfolderrS   r6   r:   r   ra   rT   )r   rb   	srcfolderrc   
destfolders        r!   re   zMachineUI.syncingfoldero   sU    ((/))(3Y5F5F5H)))4j6H6H6J<L 	Mr"   c                     | j                  | j                  j                  d| j                  |      d|j	                                y )NloadmessagelistrS   )r6   r:   r   ra   getvisiblename)r   reposrX   s      r!   rj   zMachineUI.loadmessagelistt   s>    ((*;IYIYZ_I`IOI^I^I`>b 	cr"   c                     | j                  | j                  j                  dd| j                  |      |j	                         |fz         y )Nmessagelistloadedz%s
%s
%drf   )r   rl   rX   counts       r!   rn   zMachineUI.messagelistloadedx   sC    ((*=|))%0&..2BEJ@K 	Lr"   c                     | j                  | j                  j                  d| j                  |      d|j	                         d| j                  |      d|j	                         d       y )NsyncingmessagesrS   rf   )r   srsfdrdfs        r!   rq   zMachineUI.syncingmessages|   sN    ((*;))"-rzz|T=M=Mb=Q>' 	(r"   c                     | j                  | j                  j                  dd|| j                  |      |j	                         | j                  |      |fz         y )Nignorecopyingmessage%d
%s
%s
%s[%s]rf   )r   uidrg   rh   s       r!   rw   zMachineUI.ignorecopyingmessage   sY    ((*@BVd..y99;L;L;N))*5zCCC 	Dr"   c                     | j                  | j                  j                  dd|| j                  |      |j	                         | j                  |      |fz         y )Ncopyingmessagerx   rf   )r   ry   numnum_to_copyrg   rh   s         r!   r{   zMachineUI.copyingmessage   sX    ((*:<Pd..y99;L;L;N))*5zC=C 	Dr"   c           	          dj                  |D cg c]&  }| j                  |      d|j                         ( c}      S c c}w )N	)joinra   rT   )r   ulistxs      r!   
folderlistzMachineUI.folderlist   s6    yyQVWAd&6&6q&9199;GWXXWs   +Ac                 \    dj                  |D cg c]  }t        |       c}      S c c}w )Nr   )r   r[   )r   r   us      r!   uidlistzMachineUI.uidlist   s#    yy%0Q#a&0110s   )c                     | j                  |      }| j                  | j                  j                  d| j	                  |      d|       y )NdeletingmessagesrS   )r   r6   r:   r   r   )r   r   destlistdss       r!   r   zMachineUI.deletingmessages   s;    __X&((*<$,,W^J_ac>der"   c           	          | j                  | j                  j                  d| j                  |      ddj	                  |      d|       y )NaddingflagsrS   r   r6   r:   r   r   r   r   r   flagsdests       r!   r   zMachineUI.addingflags   s?    ((-V]I^IMSXIYIM:O 	Pr"   c           	          | j                  | j                  j                  d| j                  |      ddj	                  |      d|       y )NdeletingflagsrS   r   r   r   s       r!   r   zMachineUI.deletingflags   s?    ((/4<<X_K`KO99UZK[KO<Q 	Rr"   c           	          | j                  | j                  j                  d|j                         d| j	                  |             | j                  |       | j                  d       y )NthreadExceptionrS   d   )r6   r:   r   r   getThreadExceptionStringdelThreadDebugLog	terminaterE   s     r!   r   zMachineUI.threadException   sV    ++->)4+H+H+PAR 	Sv&sr"   c                     | j                  | j                  j                  dd|||fz         t        j                  |       y )Nr   z%d
%s
%s)r6   r:   r   sysexit)r   
exitstatus
errortitleerrormsgs       r!   r   zMachineUI.terminate   s6    ((+|zS]_gFh7hir"   c                 n    | j                  | j                  j                  d| j                                y )NmainException)r6   r:   r   getMainExceptionStringr   s    r!   r   zMachineUI.mainException   s%    ++_d>Y>Y>[\r"   c                     | j                  | j                  j                  d|j                                t	        j
                  | |       y )NthreadExited)r6   r:   r   r   r   r   rE   s     r!   r   zMachineUI.threadExited   s3    ((.&..:JKD&)r"   c                     | j                  | j                  j                  dd||fz         |dkD  rt        j                  |       y)Nsleepingz%d
%dr   )r6   r:   r   timesleep)r   	sleepsecsremainingsecss      r!   r   zMachineUI.sleeping   s<    ((*h)]A[6[\q=JJy!r"   c                    |r-| j                  | j                  j                  d|d|d       | j                  j	                          	 | j                  | j                  j
                  d|       t        j                  j                         d d | j                  j                          S # | j                  j                          w xY w)NgetpasserrorrS   Fgetpass)
r6   r:   r   r.   acquirer   r   stdinreadlinerelease)r   usernamer1   errmsgs       r!   r   zMachineUI.getpass   s    OODKK//*&,I!# 	%%'	,OODKK,,iB99%%',!!))+D!!))+s   AB- -C	c                     | j                  | j                  j                  dt               | j                  | j                  j                  dt        j
                         y )Nprotocol
initbanner)r6   r:   r   r   offlineimapbannerr   s    r!   init_bannerzMachineUI.init_banner   s<    ((*h?((,8J8JKr"   c                 R    | j                  | j                  j                  d|       y )Ncallhookr9   r;   s     r!   r   zMachineUI.callhook   r=   r"   )r   )r   r   r   r,   )%r#   r$   r%   loggingINFOr-   r6   r<   r
   rA   rD   rH   rL   rP   rR   rZ   r`   re   rj   rn   rq   rw   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r'   r(   s   @r!   r*   r*   4   s    (/ B;6EPC?CS
_cM
cL(
D
D
Y2fP
R
]*,L;r"   r*   )urllib.parser   r   r   r   	threadingr   r   offlineimap.ui.UIBaser   r   	Formatterr   r*    r"   r!   <module>r      sC     # 
   #  (L'++ L0T; T;r"   