Viewing File: /opt/alt/python35/lib64/python3.5/__pycache__/nntplib.cpython-35.opt-2.pyc



]F@sddlZddlZddlZddlZddlZyddlZWnek
rfdZYnXdZddlm	Z
ddlmZdddd	d
ddd
gZdZ
GdddeZGdddeZGdd	d	eZGdd
d
eZGdddeZGdddeZdZdZdddddddddd d!d"hZd#d$d%d&d'd(d)gZd*d(d+d)iZd,Zejd-d.d/d0d1gZejd2d3d4d+gZd5d
Z	d6d7Zdd8d9Zdd:d;Z dd<d=Z!er.d>d?Z"Gd@dAdAZ#GdBdde#Z$erGdCdDdDe#Z%ej&dDe'dEkrddl(Z(e(j)dFdGZ*e*j+dHdIdJdKdLdMe*j+dNdOdJdPdLdQe*j+dRdSdJdTdUe,dLdVeefe*j+dWdXdJdYdUe,dLdZe*j+d[d\d]d^dJddLd_e*j-Z.e.j/Z/e.jre/dTkreZ/e$d`e.j0dae/Z1n+e/dTkreZ/e%d`e.j0dae/Z1e1j2Z3dbe3kre1j4e1j5e.j5\Z6Z7Z8Z9Z:e;dce:dde7dee8dfe9dgdhZ<e=e,e9e.j>dTZ8e1j?e8e9\Z6Z@xe@D]z\ZAZBe	eBd$jCdidTdZDe	eBd#ZEe,eBd)ZFe;djjGeAe<eDdke<eEdleFquWe1jHdS)mNFT)
decode_header)_GLOBAL_DEFAULT_TIMEOUTNNTP	NNTPErrorNNTPReplyErrorNNTPTemporaryErrorNNTPPermanentErrorNNTPProtocolError
NNTPDataErrorric@seZdZddZdS)rcGsCtj||y|d|_Wntk
r>d|_YnXdS)NrzNo response given)	Exception__init__response
IndexError)selfargsr,/opt/alt/python35/lib64/python3.5/nntplib.pyrbs

zNNTPError.__init__N)__name__
__module____qualname__rrrrrr`sc@seZdZdS)rN)rrrrrrrrisc@seZdZdS)rN)rrrrrrrrmsc@seZdZdS)rN)rrrrrrrrqsc@seZdZdS)r	N)rrrrrrrr	usc@seZdZdS)r
N)rrrrrrrr
yswi3Z100Z101211215Z220Z221Z222Z224Z225Z230Z231Z282subjectfromdatez
message-idZ
referencesz:bytesz:linesbytesliness
	GroupInfogrouplastfirstflagArticleInfoZnumber
message_idcCskg}xUt|D]G\}}t|trM|j|j|pCdq|j|qWdj|S)Nascii)_email_decode_header
isinstancerappenddecodejoin)Z
header_strpartsvencrrrrscCsg}x|D]}|ddkrR|ddjd\}}}d|}n|jd\}}}|j}tj||}|j|q
Wt}t|t|krtd|dt||krtd|S)Nr:z$LIST OVERVIEW.FMT response too shortz*LIST OVERVIEW.FMT redefines default fields)	partitionlower_OVERVIEW_FMT_ALTERNATIVESgetr)_DEFAULT_OVERVIEW_FMTlenr
)rfmtlinename_suffixdefaultsrrr_parse_overview_fmts
"
r=cCs-tt}g}x|D]}i}|jd^}}t|}xt|D]\}	}
|	t|krtqS||	}|jd}|	|kr|r|d}
|
r|
dt|
j|
krtd|
r|
t|
dnd}
|
|||	<qSW|j||fqW|S)N	r/z: z?OVER/XOVER response doesn't include names of additional headers)	r6r5splitint	enumerate
startswithr2r
r))rr7Zdata_process_funcZ
n_defaultsZoverviewr8ZfieldsZarticle_numbertokensitoken
field_nameZis_metadatahrrr_parse_overviews&


("rHcCs|dkr,|dd}|dd	}t|dd}t|dd}t|dd}t|dd
}t|dd}t|d
d}|dkr|d7}n|dkr|d7}tj||||||S)NFidiliirNrO)r@datetime)date_strtime_strZhoursZminutesZsecondsyearZmonthZdayrrr_parse_datetimes

rTcCstt|tjsd}ndj|}|j}|rX|d}dj||}ndj||}||fS)NZ000000z({0.hour:02d}{0.minute:02d}{0.second:02d}rMz{0:02d}{1.month:02d}{1.day:02d}z{0:04d}{1.month:02d}{1.day:02d})r(rPformatrS)ZdtlegacyrRyrQrrr_unparse_datetimes
		
rXcCs+|dkrtj}|j|d|S)NZserver_hostname)sslZ_create_stdlib_contextZwrap_socket)sockcontexthostnamerrr_encrypt_onsr]c@seZdZdZdZdeddZddZdd	Zd
dZ	dd
Z
ddZeZddZ
ddZdddZddZdddZddZdddZddd Zd!d"Zd#d$Zd%d&Zd'dd(d)Zd'dd*d+Zdd'dd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd'dd6d7Zd8d9Z d:d;Z!dd<d=Z"d>d?Z#d@dAZ$ddBdCZ%dd'ddDdEZ&dd'ddFdGZ'dd'ddHdIZ(dJdKZ)d'ddLdMZ*d'ddNdOZ+d'ddPdQZ,d'ddRdSZ-dTdUZ.dVdWZ/dXdYZ0dZd[Z1d\d]Z2d^d_Z3d`daZ4ddddbdcZ5dddeZ6e7rddfdgZ8dS)h	_NNTPBasezutf-8surrogateescapeNcCs||_||_d|_|j|_d|_|jd|_|rd|jkr|j|jsd|_|jd|_	d|_
dS)NrFREADER)hostfile	debugging_getrespwelcome_capsgetcapabilitiesreadermode_afterauth_setreadermodetls_on
authenticated)rrbra
readermodetimeoutrrrr8s				
		
		
	z_NNTPBase.__init__cCs|S)Nr)rrrr	__enter__gsz_NNTPBase.__enter__cscfdd}|r_z-yjWnttfk
rFYnXWd|r^jXdS)Ncs
tdS)Nrb)hasattrr)rrr<lambda>ksz$_NNTPBase.__exit__.<locals>.<lambda>)quitOSErrorEOFError_close)rrZis_connectedr)rr__exit__js			z_NNTPBase.__exit__cCs&|jrtdt|j|jS)Nz	*welcome*)rcprintreprre)rrrr
getwelcomeus	z_NNTPBase.getwelcomec
Cs|jdkrd|_d|_y|j\}}Wn!ttfk
rZi|_YnTX||_d|krttt|d|_d|krdj	|d|_|jS)Nr0VERSIONZIMPLEMENTATION )
rfnntp_versionZnntp_implementationcapabilitiesrrmaxmapr@r+)rrespcapsrrrrg~s			z_NNTPBase.getcapabilitiescCs
||_dS)N)rc)rlevelrrrset_debuglevelsz_NNTPBase.set_debuglevelcCsM|t}|jdkr,tdt||jj||jjdS)Nr0z*put*)_CRLFrcrvrwrbwriteflush)rr8rrr_putlines

z_NNTPBase._putlinecCsE|jrtdt||j|j|j}|j|dS)Nz*cmd*)rcrvrwencodeencodingerrorsr)rr8rrr_putcmds	z_NNTPBase._putcmdTcCs|jjtd}t|tkr4td|jdkrVtdt||sbt|r|ddt	kr|dd}n&|ddt	kr|dd}|S)	Nr0z
line too longz*get*rJrOrOr)
rbreadline_MAXLINEr6r
rcrvrwrsr)rZ
strip_crlfr8rrr_getlinesz_NNTPBase._getlinecCs|j}|jr(tdt||j|j|j}|dd}|dkrht||dkrt||dkrt	||S)Nz*resp*r045Z123)
rrcrvrwr*rrrrr	)rrcrrrrds	z_NNTPBase._getrespc
CsDd}z t|ttfr1t|d}}|j}|ddtkr_t|g}|dk	rdtdf}x|jd}||krP|j	dr|dd}|j
|qWnRd}xI|j}||krP|j	dr|dd}|j|qWWd|r9|jX||fS)Nwb.s.
Fs..r0)
r(strropenrd	_LONGRESPrrrrBrr)close)rrbZ
openedFilerrZterminatorsr8
terminatorrrr_getlongresps8	z_NNTPBase._getlongrespcCs|j||jS)N)rrd)rr8rrr	_shortcmds
z_NNTPBase._shortcmdcCs|j||j|S)N)rr)rr8rbrrr_longcmds
z_NNTPBase._longcmdcs?j|j|\}}|fdd|DfS)Ncs(g|]}|jjjqSr)r*rr).0r8)rrr
<listcomp>s	z,_NNTPBase._longcmdstring.<locals>.<listcomp>)rr)rr8rbrlistr)rr_longcmdstrings
z_NNTPBase._longcmdstringcCswy|jSWntk
rYnXy|jd\}}Wn"tk
r]tdd}Yn
Xt|}||_|S)NzLIST OVERVIEW.FMT)Z_cachedoverviewfmtAttributeErrorrrr5r=)rrrr7rrr_getoverviewfmts

	z_NNTPBase._getoverviewfmtcCsdd|DS)NcSs"g|]}t|jqSr)rr?)rr8rrrr$s	z(_NNTPBase._grouplist.<locals>.<listcomp>r)rrrrr
_grouplist"sz_NNTPBase._grouplistcCsRi}|jd\}}x*|D]"}|j^}}|||<q"W||fS)NZCAPABILITIES)rr?)rrrrr8r9rCrrrr|&s
z_NNTPBase.capabilitiesrbcCst|tjtjfs6tdj|jjt||jdk\}}dj||}|j	||\}}||j
|fS)NzAthe date parameter must be a date or datetime object, not '{:40}'rJzNEWGROUPS {0} {1})r(rPr	TypeErrorrU	__class__rrXr{rr)rrrbrQrRcmdrrrrr	newgroups4sz_NNTPBase.newgroupscCsyt|tjtjfs6tdj|jjt||jdk\}}dj|||}|j	||S)NzAthe date parameter must be a date or datetime object, not '{:40}'rJzNEWNEWS {0} {1} {2})
r(rPrrrUrrrXr{r)rrrrbrQrRrrrrnewnewsDsz_NNTPBase.newnewscCsJ|dk	rd|}nd}|j||\}}||j|fS)NzLIST ACTIVE LIST)rr)r
group_patternrbcommandrrrrrrTs

z_NNTPBase.listcCstjd}|jd|\}}|jdsP|jd|\}}i}xU|D]M}|j|j}|r]|jdd\}	}
|s|
S|
||	<q]W|r||fSdSdS)Nz^(?P<group>[^ 	]+)[ 	]+(.*)$zLIST NEWSGROUPS rzXGTITLE r0rJr&)recompilerrBsearchstripr)rrZ
return_allline_patrrgroupsraw_linematchr9Zdescrrr_getdescriptionscs

z_NNTPBase._getdescriptionscCs|j|dS)NF)r)rrrrrdescriptionzsz_NNTPBase.descriptioncCs|j|dS)NT)r)rrrrrdescriptionssz_NNTPBase.descriptionscCs|jd|}|jds.t||j}d}}}t|}|dkr|d}|dkr|d}|dkr|d}|dkr|dj}|t|t|t||fS)NzGROUP rrr0rJrrK)rrBrr?r6r2r@)rr9rwordscountr!r nrrrrs



z_NNTPBase.groupcCs|jd|S)NZHELP)r)rrbrrrhelpsz_NNTPBase.helpcCsN|jdst||j}t|d}|d}|||fS)NZ22r0rJ)rBrr?r@)rrrart_numr$rrr
_statparses
z_NNTPBase._statparsecCs|j|}|j|S)N)rr)rr8rrrr_statcmdsz_NNTPBase._statcmdcCs-|r|jdj|S|jdSdS)NzSTAT {0}ZSTAT)rrU)rmessage_specrrrstats	z_NNTPBase.statcCs
|jdS)NZNEXT)r)rrrrnextsz_NNTPBase.nextcCs
|jdS)NZLAST)r)rrrrr sz_NNTPBase.lastcCsF|j||\}}|j|\}}}|t|||fS)N)rrr#)rr8rbrrrr$rrr_artcmdsz_NNTPBase._artcmdcCs4|dk	rdj|}nd}|j||S)NzHEAD {0}ZHEAD)rUr)rrrbrrrrheadsz_NNTPBase.headcCs4|dk	rdj|}nd}|j||S)NzBODY {0}ZBODY)rUr)rrrbrrrrbodysz_NNTPBase.bodycCs4|dk	rdj|}nd}|j||S)NzARTICLE {0}ZARTICLE)rUr)rrrbrrrrarticlesz_NNTPBase.articlecCs
|jdS)NZSLAVE)r)rrrrslavesz_NNTPBase.slavecsbtjd|jdj|||\}}fdd|fdd|DfS)Nz^([0-9]+) ?(.*)
?zXHDR {0} {1}cs)j|}|r%|jddS|S)Nr0rJ)rr)r8m)patrr
remove_numbersz%_NNTPBase.xhdr.<locals>.remove_numbercsg|]}|qSrr)rr8)rrrrs	z"_NNTPBase.xhdr.<locals>.<listcomp>)rrrrU)rZhdrrrbrrr)rrrxhdr
s	$z_NNTPBase.xhdrcCsC|jdj|||\}}|j}|t||fS)Nz
XOVER {0}-{1})rrUrrH)rstartendrbrrr7rrrxovers	z_NNTPBase.xoverc	Csd|jkrdnd}t|ttfr[|\}}|dj||pQd7}n|dk	ru|d|}|j||\}}|j}|t||fS)NZOVERZXOVERz {0}-{1}r&rz)rfr(tuplerrUrrrH)	rrrbrrrrrr7rrrover(sz_NNTPBase.overc	Cstjdtdtjd}|jd||\}}g}xB|D]:}|j|j}|rK|j|j	ddqKW||fS)NzFThe XGTITLE extension is not actively used, use descriptions() insteadrJz^([^ 	]+)[ 	]+(.*)$zXGTITLE r0)
warningswarnDeprecationWarningrrrrrr)r)	rrrbrrZ	raw_linesrrrrrrxgtitleCs	

z_NNTPBase.xgtitlecCstjdtd|jdj|}|jdsFt|y|j\}}Wntk
r|t|YnX||fSdS)Nz(The XPATH extension is not actively usedrJz	XPATH {0}Z223)	rrrrrUrBrr?
ValueError)ridrZresp_numpathrrrxpathUs	

z_NNTPBase.xpathcCs|jd}|jds*t||j}t|dkrTt||d}t|dkr|t||t|dfS)NZDATEZ111rJr0)rrBrr?r6r
rT)rrelemrrrrris
z_NNTPBase.datecCs|j|}|jds*t|t|ttfrK|j}xY|D]Q}|jtsz|j	dt}|jdrd|}|j
j|qRW|j
jd|j
j|j
S)N3s
rs.
)rrBrr(r	bytearray
splitlinesendswithrrstriprbrrrd)rrfrr8rrr_postzs


z_NNTPBase._postcCs|jd|S)NZPOST)r)rdatarrrpostsz_NNTPBase.postcCs|jdj||S)Nz	IHAVE {0})rrU)rr$rrrrihavesz_NNTPBase.ihavecCs|jj|`dS)N)rbr)rrrrrts
z_NNTPBase._closec
Cs%z|jd}Wd|jX|S)NZQUIT)rrt)rrrrrrqsz_NNTPBase.quitcCsT|jrtd|r/|r/tdyU|r|rddl}|j}|j|j}|r|d}|d}Wntk
rYnX|sdS|jd|}|jdr|st|n.|jd|}|jdst	|d|_
|j|jrPd	|j
krP|j
d|_
|jdS)
NzAlready logged in.z7At least one of `user` and `usenetrc` must be specifiedrrJzauthinfo user Z381zauthinfo pass Z281r`)rkrnetrcZauthenticatorsrarrrrBrrrfrgrhri)ruserpasswordusenetrcrZcredentialsZauthrrrrlogins<		


	

	z_NNTPBase.logincCsty|jd|_WnWtk
r*YnFtk
ro}z&|jjdrZd|_nWYdd}~XnXdS)Nzmode readerZ480T)rrerrr
rBrh)rerrrris
z_NNTPBase._setreadermodecCs|jrtd|jr*td|jd}|jdr|jjt|j||j	|_|jj
d|_d|_d|_|jnt
ddS)NzTLS is already enabled.z+TLS cannot be started after authentication.STARTTLSZ382rwbTzTLS failed to start.)rjrrkrrBrbrr]rZramakefilerfrgr)rr[rrrrstarttlss		
		
z_NNTPBase.starttls)9rrrrrrrrnrurxrgrdebugrrrrdrrrrrrr|rrrrrrrrrrrrr rrrrrrrrrrrrrrrtrqrri	_have_sslrrrrrr^(sj
.	.



		)
r^c@s:eZdZeddddeddZddZdS)rNFc	Cs||_||_tj||f||_d}yN|jjd}tj||||||sm|r|j|||Wn(|r|j	|jj	YnXdS)Nr)
raportsocketcreate_connectionrZrr^rrr)	rrarrrrlrrmrbrrrrs		


z
NNTP.__init__c
Cs&ztj|Wd|jjXdS)N)r^rtrZr)rrrrrt!szNNTP._close)rrr	NNTP_PORTrrrtrrrrrs	"c	@s=eZdZedddddeddZddZdS)NNTP_SSLNFc	
Cstj||f||_d}	ylt|j|||_|jjd}	tj||	|d|d||sy|r|j|||Wn(|	r|	j|jjYnXdS)Nrrlrm)	rrrZr]rr^rrr)
rrarrrZssl_contextrlrrmrbrrrr+s


zNNTP_SSL.__init__c
Cs&ztj|Wd|jjXdS)N)r^rtrZr)rrrrrtAszNNTP_SSL._close)rrr
NNTP_SSL_PORTrrrtrrrrr)s
	r__main__rzJ        nntplib built-in demo - display the latest articles in a newsgroupz-gz--groupdefaultzgmane.comp.python.generalrz3group to fetch messages from (default: %(default)s)z-sz--serverznews.gmane.orgz+NNTP server hostname (default: %(default)s)z-pz--portr0typez#NNTP port number (default: %s / %s)z-nz
--nb-articles
z2number of articles to fetch (default: %(default)s)z-Sz--sslaction
store_truezuse NNTP over SSLrarrZGroupZhaszarticles, rangeZtocCs.t||kr*|d|dd}|S)NrKz...)r6)sZlimrrrcutlsr<z{:7} {:20} {:42} ({})*)IrrcollectionsrPrrYImportErrorrZemail.headerrr'r__all__rrrrrrr	r
rrrr5r3r
namedtuplerr#r=rHrTrXr]r^rrr)rargparseArgumentParserparseradd_argumentr@
parse_argsrrZserverrrgrrrrrr!r r9rvrrZnb_articlesrZ	overviewsZartnumrr?ZauthorrrrUrqrrrr<module>Bs
							-
			



! 	)
Back to Directory File Manager