Spamworldpro Mini Shell
Spamworldpro


Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips
System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User : fdshops ( 1003)
PHP Version : 8.2.21
Disable Function : NONE
Directory :  /lib/python2.7/site-packages/offlineimap/repository/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python2.7/site-packages/offlineimap/repository/IMAP.pyc
�
��Vc@s�ddlmZddlZddlmZddlZddlZddlmZddl	m
Z
mZmZm
Z
ddlmZddlmZddlmZmZd	efd
��YZdefd��YZdS(
i����(tEventN(texc_info(tBaseRepository(tfoldertimaputilt
imapservertOfflineImapError(tMappedIMAPFolder(tExitNotifyThread(tget_os_sslcertfiletget_os_sslcertfile_searchpathtIMAPRepositorycBspeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'd&�Z(d'�Z)RS((cCs�tj|||�d|_d|_tj|�|_d|_|jj	|j
�d�r||jj|j
d��|_n|j
dd�r�|jjd|�ndS(s$Initialize an IMAPRepository object.tnewmail_hooktsepsOThe 'sep' setting is being ignored for IMAP repository '%s' (it's autodetected)N(Rt__init__tNonet_hostt_oauth2_request_urlRt
IMAPServertfolderstconfigt
has_optiont
getsectiont	localevaltevaltgetconfRtuitinfo(tselft	reposnametaccount((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyR s				cCsz|j�}|sdSt�|_td|jjdd|j�d||jf�|_|jjd�|jj	�dS(NttargettnamesKeep alive targsi(
tgetkeepaliveRtkaeventRRt	keepalivetgetnametkathreadt	setDaemontstart(Rt
keepalivetime((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytstartkeepalive1scCs0t|d�sdS|jj�|`|`dS(NR#(thasattrR#tsetR&(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyt
stopkeepalive;s

cCs|j�s|j�ndS(N(tgetholdconnectionopentdropconnections(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytholdordropconnectionsDscCs|jj�dS(N(Rtclose(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyR/HscCs |j�rdS|jdd�S(Nitholdconnectionopeni(tgetidlefolderstgetconfboolean(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyR.KscCs6|jdd�}|dkr.|j�r.dS|SdS(NR$iii<i�(t
getconfintR3(Rtnum((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyR"PscCs,|jjdks"td|��|jjS(s�Return the folder separator for the IMAP repository

        This requires that self.imapserver has been initialized with an
        acquireconnection() or it will still be `None`sW'%s' repository called getsep() before the folder separator was queried from the serverN(RtdelimRtAssertionError(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgetsepWs
cCs�|jr|jS|jj|j�d�r�|jd�}y|jj|�}Wn?tk
r�}td||ftj	j
�dt�d�nX|r�||_|jSn|jdd�}|dkr�||_|jStd|tj	j
��dS(sfReturn the configured hostname to connect to

        :returns: hostname as string or throws Exceptiontremotehostevals4remotehosteval option for repository '%s' failed:
%sit
remotehosts-No remote host for repository '%s' specified.N(
RRRRRRRt	ExceptionRtERRORtREPORR(Rthostte((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgethostas&		
	cCs|jddd�S(s�Remote identity is used for certain SASL mechanisms
        (currently -- PLAIN) to inform server about the ID
        we want to authorize as instead of our login name.tremote_identitytdefaultN(RR(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytget_remote_identity~scCs�dddddg}dddddg}|jdd|�}x>|D]6}||krFtd|d	|tjj��qFqFW|jjd
d|�|S(NtGSSAPItXOAUTH2sCRAM-MD5tPLAINtLOGINtauth_mechanismss,\s*sRepository %s: s%unknown authentication mechanism '%s'timaps"Using authentication mechanisms %s(tgetconflistRR=R>Rtdebug(Rt	supportedRCtmechstm((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytget_auth_mechanisms�s	

cCsXd}|j}|jj|j�d�r<|jd�}n|dkrU|j|�S|jj|j�d�r�|jd�}n|dkr�|Sytj�j|j	��}Wn+t
k
r�}|jtjkr��q�nX|r�|dSy"tjd�j|j	��}Wn4t
k
rE}|jtjtj
fkrT�qTnX|rT|dSdS(Ntremoteuserevalt
remoteuseris
/etc/netrc(RRRRRRRtnetrctauthenticatorsRAtIOErrorterrnotENOENTtEACCES(RtuserRt
netrcentrytinst((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgetuser�s0	

"
cCs_d}|jj|j�d�r3|jd�}n|dkrO|jj|�S|jdd�S(Ntremoteportevalt
remoteport(RRRRRRRR5(Rtport((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgetport�scCs|jdd�S(Ntipv6(R4R(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgetipv6�scCs|jdd�S(Ntssli(R4(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgetssl�scCs4tjjtjjtjjg}|jd|d�S(Nt
sslclientcert(tostpatht
expandusert
expandvarstabspatht
getconf_xformR(Rtxforms((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgetsslclientcert�s!cCs4tjjtjjtjjg}|jd|d�S(Ntsslclientkey(RfRgRhRiRjRkR(RRl((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgetsslclientkey�s!cCs�tjjtjjtjjg}|jd|d�}|jdd�dkr�t�}|dkr�t	�}|r�ddj
|�}nd}t|tjj
��q�n|dkr�dStjj|�s�d|j|f}t|tjj
��n|S(s#Determines CA bundle.
        
        Returns path to the CA bundle.  It is either explicitely specified
        or requested via "OS-DEFAULT" value (and we will search known
        locations for the current OS and distribution).

        If search via "OS-DEFAULT" route yields nothing, we will throw an
        exception to make our callers distinguish between not specified
        value and non-existent default CA bundle.

        It is also an error to specify non-existent file via configuration:
        it will error out later, but, perhaps, with less verbose explanation,
        so we will also throw an exception.  It is consistent with
        the above behaviour, so any explicitely-requested configuration
        that doesn't result in an existing file will give an exception.
        t
sslcacertfiles
OS-DEFAULTsPDefault CA bundle was requested, but no existing locations available.  Tried %s.s, sdDefault CA bundle was requested, but OfflineIMAP doesn't know any for your current operating system.sFCA certfile for repository '%s' couldn't be found.  No such file: '%s'N(RfRgRhRiRjRkRRR	R
tjoinRR=R>tisfileR (RRlt
cacertfilet
searchpathtreason((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgetsslcacertfile�s$!		cCs|jdd�S(Nt	tls_levelt
tls_compat(R(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgettlslevel�scCs|jdd�S(Ntssl_version(RR(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyt
getsslversion�scCsD|jdd�}g|jd�D]}|r"|j�j�^q"S(s�Return array of possible certificate fingerprints.

        Configuration item cert_fingerprint can contain multiple
        comma-separated fingerprints in hex form.tcert_fingerprinttt,(Rtsplittstriptlower(Rtvaluetf((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytget_ssl_fingerprintscCsB|jr|jS|jdd�}|dkr>||_|jSdS(Ntoauth2_request_url(RRR(RR�((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgetoauth2_request_urls		cCs|jdd�S(Ntoauth2_refresh_token(RR(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgetoauth2_refresh_tokenscCs|jdd�S(Ntoauth2_access_token(RR(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgetoauth2_access_tokenscCs|jdd�S(Ntoauth2_client_id(RR(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgetoauth2_client_idscCs|jdd�S(Ntoauth2_client_secret(RR(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgetoauth2_client_secret scCs|jdd�S(Nt
preauthtunnel(RR(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgetpreauthtunnel#scCs|jdd�S(Nttransporttunnel(RR(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgettransporttunnel&scCs|jdd�S(Nt	referenceR}(R(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgetreference)scCs|jdd�S(Ntdecodefoldernamesi(R4(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgetdecodefoldernames,scCs"|j}|j|jdd��S(Ntidlefolderss[](RRR(RR((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyR3/s	cCs1t|j��}|jdd�}t||�S(Ntmaxconnectionsi(tlenR3R5tmax(Rtnum1tnum2((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgetmaxconnections3scCs|jdd�S(Ntexpungei(R4(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyt
getexpunge8scCs�|jdd�}|dkr.|jj|�S|jdd�}|dkrP|S|jdd�}|dkr�ttjj|��}|j�j	�}|j
�|Sytj�j|j
��}Wn+tk
r�}|jtjkr,�q,n:X|r,|j�}|dks!||dkr,|dSny"tjd�j|j
��}Wn4tk
r�}|jtjtjfkr��q�n:X|r�|j�}|dks�||dkr�|dSndS(s�Return the IMAP password for this repository.

        It tries to get passwords in the following order:

        1. evaluate Repository 'remotepasseval'
        2. read password from Repository 'remotepass'
        3. read password from file specified in Repository 'remotepassfile'
        4. read password from ~/.netrc
        5. read password from /etc/netrc

        On success we return the password.
        If all strategies fail we return None.tremotepassevalt
remotepasstremotepassfileiis
/etc/netrcN(RRRRtopenRfRgRhtreadlineR�R1RSRTRARURVRWR\RX(RtpasswdtpasswordtpassfiletfdRZR[RY((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytgetpassword;s>

"
cCs|j�|j||�S(s5Return instance of OfflineIMAP representative folder.(t
getfoldertypeR(Rt
foldername((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyt	getfolderqscCs
tjjS(N(RtIMAPt
IMAPFolder(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyR�vscCs#|jj�}|jj|�dS(N(Rtacquireconnectiontreleaseconnection(Rtimapobj((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytconnectyscCs
d|_dS(N(RR(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyt
forgetfolders}scCsr|jdkr|jSg}|jj�}|j}|jdt�rR|j}nz|d|jj�d}Wd|jj	|�Xx�|D]�}|dks�t
|t�r�|dkr�q�ntj
|�\}}}gtj|�D]}	|	j�^q�}
d|
krq�ntj|�}|j|j�|j||��q�Wt|j�r|jj�}z�x�|jD]�}y|j|dt�WnNtk
r�}|jtjjkr��n|jj|t�dd	�qonX|j|j�|j||��qoWWd|jj	|�Xn|jdkr@|jd
d��n"d�}
|jd
|
|j��||_|jS(
s@Return a list of instances of OfflineIMAP representative folder.tsubscribedonlyt	directoryiNR}s	\noselecttreadonlyisInvalid folderinclude:tkeycSstj|j��S(N(tstrR�tgetvisiblename(tx((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyt<lambda>�scsdd�fd��Y}|S(svConverts a cmp= function into a key= function
                We need to keep cmp functions for backward compatibilitytKcs eZd�Z�fd�ZRS(cWs
||_dS(N(tobj(RR�R!((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyR�scs�|jj�|jj��S(N(R�R�(Rtother(tmycmp(s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyt__cmp__�s(t__name__t
__module__RR�((R�(s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyR��s	(((R�R�((R�s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pytcmp2key�s( RRRR�tlistR4tFalsetlsubR�R�t
isinstancet
basestringRt	imapsplitt	flagsplitR�tdequotetappendR�R�tfolderincludestselecttTrueRtseverityR=tFOLDERRterrorRt
foldersorttsort(RtretvalR�tlistfunctiont
listresulttstflagsR7R R�tflaglistR�R@R�((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyt
getfolders�sT	
(			cCs�|j�r)|j�|j�|}n|s>|j�}n|jj||�|jjradS|jj�}zN|j|�}|ddkr�t	d||t
|�ft	jj��nWd|jj
|�XdS(s*Create a folder on the IMAP server

        This will not update the list cached in :meth:`getfolders`. You
        will need to invoke :meth:`forgetfolders` to force new caching
        when you are done creating folders yourself.

        :param foldername: Full path of the folder to be created.NitOKs:Folder '%s'[%s] could not be created. Server responded: %s(R�R9Rt
makefolderRtdryrunRR�tcreateRR�R=R�R�(RR�R�tresult((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyR��s	(*R�R�RR*R-R0R/R.R"R9RARDRPR\R`RbRdRmRoRvRyR{R�R�R�R�R�R�R�R�R�R�R3R�R�R�R�R�R�R�R�R�(((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyRsP		
							
				!	
					)																	6					CtMappedIMAPRepositorycBseZd�ZRS(cCstS(N(R(R((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyR��s(R�R�R�(((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyR��s(t	threadingRRftsysRRSRVtofflineimap.repository.BaseRtofflineimapRRRRtofflineimap.folder.UIDMapsRtofflineimap.threadutilRtofflineimap.utils.distroR	R
RR�(((s?/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.pyt<module>s"��

Spamworldpro Mini