
    \dw                         d dl Z d dlmZ  G d dej                  Z G d dej                  Z G d dej                  Z G d	 d
ej                  ZdS )    N)pbc                   l    e Zd Zd Zd Zd Zd ZeZd ZeZ	d Z
e
Zd ZeZd ZeZd	 ZeZd
 ZeZd ZdS )Maildirc                 l    || _         || _        t          j                            ||          | _        d S N)virtualDirectoryrootDirectoryospathjoin	directory)selfr   r	   s      /lib/python3.11/site-packages/twisted/mail/pb.py__init__zMaildir.__init__   s-     )*mY??    c                     d|v rt          d|z            t          t          j                            | j        d|                    5 }|                                cd d d            S # 1 swxY w Y   d S )N/z&can only open files in '%s' directory'new)OSErroropenr
   r   r   r   read)r   foldernamefps       r   getFolderMessagezMaildir.getFolderMessage   s    $;;BVKLLL"',,t~ud;;<< 	7799	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   
A++A/2A/c           	          d|v rt          d|z            t          j        t          j                            | j        ||          t          j                            | j        d||                     d S )Nr   z(can only delete files in '%s' directory'z.Trash)r   r
   renamer   r   r   r	   )r   r   r   s      r   deleteFolderMessagezMaildir.deleteFolderMessage   sn    $;;DvMNNN
	GLL66GLL+XvtDD	
 	
 	
 	
 	
r   c                 .    |                      d|          S Nr   r   r   r   s     r   deleteNewMessagezMaildir.deleteNewMessage       ''t444r   c                 .    |                      d|          S Ncurr!   r"   s     r   deleteCurMessagezMaildir.deleteCurMessage#   r$   r   c                 p    t          j        t           j                            | j        d                    S r    r
   listdirr   r   r   r   s    r   getNewMessageszMaildir.getNewMessages(   $    z"',,t~u==>>>r   c                 p    t          j        t           j                            | j        d                    S r&   r*   r,   s    r   getCurMessageszMaildir.getCurMessages-   r.   r   c                 .    |                      d|          S r    r   r"   s     r   getNewMessagezMaildir.getNewMessage2       $$UD111r   c                 .    |                      d|          S r&   r2   r"   s     r   getCurMessagezMaildir.getCurMessage7   r4   r   c                    |d         dk    rt          d          |                    dd          }| j        dk    rd|z   }n| j        dz   |z   }|                     |          st          d          t          || j                  S )Nr   .z&subfolder name cannot begin with a '.'r   :znot a subfolder)r   replacevirtualDirectoyr   _isSubFolderr   r	   r"   s     r   getSubFolderzMaildir.getSubFolder<   s    7c>>BCCC||C%%3&&:DD(3.5D  && 	-+,,,tT/000r   c                    t           j                            t           j                            | j        |                     pCt           j                            t           j                            | j        |d                     S )Nmaildirfolder)r
   r   isdirr   r	   isfiler"   s     r   r<   zMaildir._isSubFolderJ   se    7==GLL+T22
 
 
 YT-? W WXXX	Yr   N)__name__
__module____qualname__r   r   r   r#   remote_deleteNewMessager(   remote_deleteCurMessager-   remote_getNewMessagesr0   remote_getCurMessagesr3   remote_getNewMessager6   remote_getCurMessager=   remote_getSubFolderr<    r   r   r   r   
   s        @ @ @
  
 
 
5 5 5 /5 5 5 /? ? ? +? ? ? +2 2 2 )2 2 2 )
1 
1 
1 'Y Y Y Y Yr   r   c                   (    e Zd Zd Zd ZeZd ZeZdS )MaildirCollectionc                     || _         d S r   )root)r   rP   s     r   r   zMaildirCollection.__init__Q   s    			r   c                 N    t          j        |                                           S r   )r
   r+   getRootr,   s    r   getSubFolderszMaildirCollection.getSubFoldersT   s    z$,,..)))r   c                     d|v s|d         dk    rt          d          t          dt          j                            |                                 |                    S )Nr   r   r8   zinvalid name)r   r   r
   r   r   rR   r"   s     r   r=   zMaildirCollection.getSubFolderY   sM    $;;$q'S...)))sBGLL>>???r   N)rB   rC   rD   r   rS   remote_getSubFoldersr=   rK   rL   r   r   rN   rN   P   sP          * * * )@ @ @
 'r   rN   c                       e Zd Zd Zd ZdS )MaildirBrokerc                     |                                  }||                     |d           d S |                     ||           d S )Nzpermission denied)_getCollection	sendError
sendAnswer)r   	requestIDr   domainpassword
collections         r   proto_getCollectionz!MaildirBroker.proto_getCollectionb   sN    ((**
NN9&9:::::OOIz22222r   c                     || j         vrd S | j         |         }||j        v r3|j        |         |k    r$t          |                    |                    S d S d S r   )domainsdbmrN   userDirectory)r   r   r]   r^   s       r   getCollectionzMaildirBroker.getCollectioni   sh    %%Ff%6:&*T"2h">">$V%9%9$%?%?@@@ ">">r   N)rB   rC   rD   r`   re   rL   r   r   rW   rW   a   s7        3 3 3A A A A Ar   rW   c                       e Zd Zd ZdS )MaildirClientc                 x    |                                  }||f| j        |<   |                     d||||           d S )Nre   )newRequestIDwaitingForAnswerssendCall)r   r   r]   r^   callbackerrbackr\   s          r   re   zMaildirClient.getCollectionr   sE    %%''	,4g,=y)oy$IIIIIr   N)rB   rC   rD   re   rL   r   r   rg   rg   q   s(        J J J J Jr   rg   )	r
   twisted.spreadr   Referenceabler   rN   BrokerrW   rg   rL   r   r   <module>rq      s  
 
			      CY CY CY CY CYb CY CY CYL' ' ' ' '( ' ' '"A A A A ABI A A A J J J J JBI J J J J Jr   