o bw@s`ddlZddlmZGdddejZGdddejZGdddejZGd d d ejZdS) N)pbc@seZdZddZddZddZddZeZd d ZeZ d d Z e Z d dZ e Z ddZeZddZeZddZeZddZdS)MaildircCs ||_||_tj|||_dSN)virtualDirectory rootDirectoryospathjoin directory)selfr rr 1/usr/lib/python3/dist-packages/twisted/mail/pb.py__init__ szMaildir.__init__cCsVd|vr td|ttj|jd| }|WdS1s$wYdS)N/z&can only open files in '%s' directory'new)OSErroropenrrr r read)r foldernamefpr r r getFolderMessages  $zMaildir.getFolderMessagec CsBd|vr td|ttj|j||tj|jd||dS)Nrz(can only delete files in '%s' directory'z.Trash)rrrenamerr r r)r rrr r r deleteFolderMessages  zMaildir.deleteFolderMessagecC |d|SNrrr rr r r deleteNewMessage zMaildir.deleteNewMessagecCrNcurrrr r r deleteCurMessage#rzMaildir.deleteCurMessagecCttj|jdSrrlistdirrr r r r r r getNewMessages(zMaildir.getNewMessagescCr#r r$r&r r r getCurMessages-r(zMaildir.getCurMessagescCrrrrr r r getNewMessage2rzMaildir.getNewMessagecCrr r*rr r r getCurMessage7rzMaildir.getCurMessagecCs`|ddkr td|dd}|jdkrd|}n|jd|}||s*tdt||jS)Nr.z&subfolder name cannot begin with a '.'r:znot a subfolder)rreplacevirtualDirectoyr _isSubFolderrrrr r r getSubFolder<s      zMaildir.getSubFoldercCs6tjtj|j| ptjtj|j|d S)N maildirfolder)rrisdirr risfilerr r r r1Js zMaildir._isSubFolderN)__name__ __module__ __qualname__rrrrremote_deleteNewMessager"remote_deleteCurMessager'remote_getNewMessagesr)remote_getCurMessagesr+remote_getNewMessager,remote_getCurMessager2remote_getSubFolderr1r r r r r s& rc@s,eZdZddZddZeZddZeZdS)MaildirCollectioncCs ||_dSr)root)r rAr r r rQs zMaildirCollection.__init__cCst|Sr)rr%getRootr&r r r getSubFoldersTszMaildirCollection.getSubFolderscCs4d|vs |ddkrtdtdtj||S)Nrrr-z invalid name)rrrrr rBrr r r r2YszMaildirCollection.getSubFolderN)r6r7r8rrCremote_getSubFoldersr2r?r r r r r@Ps r@c@seZdZddZddZdS) MaildirBrokercCs0|}|dur||ddS|||dS)Nzpermission denied)_getCollection sendError sendAnswer)r requestIDrdomainpassword collectionr r r proto_getCollectionbsz!MaildirBroker.proto_getCollectioncCsF||jvrdS|j|}||jvr|j||kr!t||SdSdSr)domainsdbmr@ userDirectory)r rrJrKr r r getCollectionis  zMaildirBroker.getCollectionN)r6r7r8rMrQr r r r rEas rEc@seZdZddZdS) MaildirClientcCs,|}||f|j|<|d||||dS)NrQ) newRequestIDwaitingForAnswerssendCall)r rrJrKcallbackerrbackrIr r r rQrszMaildirClient.getCollectionN)r6r7r8rQr r r r rRqs rR) rtwisted.spreadr Referenceablerr@BrokerrErRr r r r s  F