Viewing File: /usr/local/cpanel/3rdparty/mailman/Mailman/Handlers/Scrubber.pyc

ó
)¿Úhc@s4dZddlmZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZm
Z
ddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlm Z ddl!m"Z"ej#dƒZ$ej#dƒZ%ej#dƒZ&dZ'dZ(ye)e*fWne+k
rªdZ)dZ*nXyddl,m-Z-Wn)e.k
rêddl,Z,e)d„Z-nXd„Z/d„Z0d„Z1d„Z2dd„Z4d „Z5e)d!„Z6dS("s Cleanse a message for archiving.iÿÿÿÿ(t
nested_scopesN(tStringIO(tIntTypet
StringType(t	parsedate(tHeaderParser(t	Generator(tCharset(tmm_cfg(tUtils(tLockFile(tMessage(tDiscardMessage(t_(tsyslog(tsha_news[/\\:]s[^-\w.]s^\.*s<br>
t ii(tguess_all_extensionscsOg‰‡‡fd†}|tjƒ|rKttdƒrK|tjƒnˆS(Ncs=x6|jƒD](\}}|ˆkr
ˆj|ƒq
q
WdS(N(titemstappend(tmaptett(talltctype(s?/usr/local/cpanel/3rdparty/mailman/Mailman/Handlers/Scrubber.pytcheckFstcommon_types(t	mimetypest	types_mapthasattrR(RtstrictR((RRs?/usr/local/cpanel/3rdparty/mailman/Mailman/Handlers/Scrubber.pyRCs
cCs”y
tj}Wntk
r&t}nX|r>|d
kr>dSt|dtƒ}||kr`|S|jd	krsdS|jd
kr†dS|o“|dS(Nstext/phps
text/x-phpsapplication/phpsapplication/x-phpsapplication/x-httpd-phpsapplication/x-httpd-php-sources.binRsapplication/octet-streams
text/plains.txti(stext/phps
text/x-phpsapplication/phpsapplication/x-phpsapplication/x-httpd-phpsapplication/x-httpd-php-source(RtSCRUBBER_ALLOW_SCRIPT_EXTENSIONtAttributeErrortFalseRtlower(RtexttallowR((s?/usr/local/cpanel/3rdparty/mailman/Mailman/Handlers/Scrubber.pytguess_extensionRs


cCs6ytj||ƒSWntttfk
r1dSXdS(N(ttimetstrftimet	TypeErrort
ValueErrort
OverflowErrortNone(tfmtR((s?/usr/local/cpanel/3rdparty/mailman/Mailman/Handlers/Scrubber.pyt
safe_strftimeisc
CsÞd}|jdƒ}|r*t|ƒ}n!tj|jdtjƒƒƒ}t||ƒ}|sŠ|jdƒ}|rŠt||ƒ}qŠn|sn|jƒjƒ}yŽidd6dd6d	d
6dd6d
d6dd6dd6dd6dd6dd6dd6dd6j|d	dƒ}t|dƒ}	t|dƒ}
Wn%tt	fk
rWd}}	}
nXd|
||	f}n|szt
‚|d}|dkrªtj
|ƒ}|d <nt|ƒjƒ}tjjd!||d |d"ƒS(#Ns%Y%m%dtDatet
received_timesX-List-Received-DateitJanitFebitMaritApritMayitJunitJulitAugi	tSepi
tOctitNovitDecis%04d%02d%02ds
message-ids
Message-IDtattachmentsiüÿÿÿ(tgetRR&tgmtimeR-tget_unixfromtsplittintt
IndexErrorR)tAssertionErrorR+R	tunique_message_idRt	hexdigesttostpathtjoin(
tmlisttmsgtmsgdataR,tdatestrtnowtdatedirtpartstmonthtdaytyeartmsgidtdigest((s?/usr/local/cpanel/3rdparty/mailman/Mailman/Handlers/Scrubber.pytcalculate_attachments_dirps6!--
cCsC|d=|d=t|tƒr/|jdƒ}n|j||ƒdS(Nscontent-typescontent-transfer-encodingsus-ascii(t
isinstancetunicodetencodetset_payload(RJttexttcharset((s?/usr/local/cpanel/3rdparty/mailman/Mailman/Handlers/Scrubber.pytreplace_payload_by_textœs
cCs®tj}t}|dkr$i}n|r:|js:dSnt|||ƒ}d}tj|jƒ}t	|ƒj
pv|}d}	}
xh|jƒD]Z}|jƒ}|dkrŽ|dkrê|j
|ƒ}|jdƒ}	|jdƒ}
n|jddƒjƒdkrä|j
ƒrätjdƒ}
zt|||ƒ}Wdtj|
ƒX|jtdƒƒ}tj||ƒ}t|td	ƒ|ƒqänV|d
krt|tƒr|dkrÝ|rÄt‚nt|tdƒ|ƒqä|dkrìqä|d
krMtjdƒ}
zt|||dtƒ}Wdtj|
ƒXt|tdƒ|ƒqätj|jdtƒƒ}d„}g|jdƒD]}||ƒ^q}dtj |ƒd}|j!|ƒ|d=tjdƒ}
zt|||dtƒ}Wdtj|
ƒXt|tdƒ|ƒnË|dkrï|jdƒ}tjdƒ}
zt|||ƒ}Wdtj|
ƒX|jdtdƒƒ}tj||ƒ}|jdtdƒƒ}|jdtdƒƒ}t"t#|ƒƒ}t|tdƒ|ƒnõ|jƒrä|j$ƒrä|jdtƒ}|jƒ}|dkr8qnt"|ƒ}tjdƒ}
zt|||ƒ}Wdtj|
ƒX|jdtdƒƒ}tj||ƒ}|jtdƒƒ}tj||ƒ}t|tdƒ|ƒnt}qW|j$ƒrª|s
|d kr|}nt	|ƒj
p(|}g}xÔ|jƒD]Æ}|jƒs>|j$ƒrcq>n|jƒ}|dkr¬|d
ks“|dkr¬|j%td!ƒƒq>ny|jdtƒpÄd}Wn,t&j't(fk
rö|jƒpðd}nX|j)ƒ}|rt#|ƒ}n|j
ƒ}|rÉ||krÉyt*||d"ƒ}Wn/t+t,t-t.fk
r}t*|d#d"ƒ}nXy|j/|d"ƒ}WqÉt+t,t-t.fk
rÅ|j/|d"ƒ}qÉXnt|t0ƒr>|j1dƒsô|d7}n|j%|ƒq>q>Wtd$ƒ}y(t*||d"ƒ}|j/|d"ƒ}Wnt+t,t-t.fk
r[nXt||j |ƒ|ƒ|	rŽ|j2d%|	ƒn|
rª|j2d&|
ƒqªn|S('Ns
text/plaintformattdelspscontent-dispositiontt
attachmentis
not availablesYAn embedded and charset-unspecified text was scrubbed...
Name: %(filename)s
URL: %(url)s
s	text/htmlis$HTML attachment scrubbed and removeditfilter_htmls0An HTML attachment was scrubbed...
URL: %(url)s
tdecodecSs|jdƒjddƒS(NiRs&nbsp;(t
expandtabstreplace(ts((s?/usr/local/cpanel/3rdparty/mailman/Mailman/Handlers/Scrubber.pyt	doreplacess
s<tt>
s
</tt>
scontent-transfer-encodingsmessage/rfc822tsubjects
no subjecttdatesno datetfromsunknown sendersrAn embedded message was scrubbed...
From: %(who)s
Subject: %(subject)s
Date: %(date)s
Size: %(size)s
URL: %(url)s
scontent-descriptionszA non-text attachment was scrubbed...
Name: %(filename)s
Type: %(ctype)s
Size: %(size)d bytes
Desc: %(desc)s
URL: %(url)s
sus-asciis&Skipped content of type %(partctype)s
Rdtasciis(-------------- next part --------------
tFormattDelSp(3RtARCHIVE_HTML_SANITIZERtTrueR+tscrub_nondigestRUR	t
GetCharSettpreferred_languageRtoutput_charsettwalktget_content_typetget_content_charsett	get_paramR=R"RFtumasktsave_attachmenttget_filenameR
tonelineR\RVRRR!twebsafetget_payloadR@tBRRHRYtlentstrtis_multipartRtbinasciitErrorR(tget_charsetRWtUnicodeErrortLookupErrorR)RCRXRtendswitht	set_param(RIRJRKtsanitizetoutertdirR[tlcsett	lcset_outR]R^tpartRtomaskturltfilenametpayloadRfRetlinestsubmsgRgRhtwhotsizetdescRZt	partctypeRtpartcharsettsep((s?/usr/local/cpanel/3rdparty/mailman/Mailman/Handlers/Scrubber.pytprocess¨s			

			
		(
			
	



cCsey3tj|dƒd„}tjj||dƒWn+tk
r`}|jtjkra‚qanXdS(NiýcSstj|dƒdS(Niý(RFtchmod(targtdirnametnames((s?/usr/local/cpanel/3rdparty/mailman/Mailman/Handlers/Scrubber.pyttwiddle¨s(RFtmakedirsRGRsR+tOSErrorterrnotEEXIST(RŠRŸR((s?/usr/local/cpanel/3rdparty/mailman/Mailman/Handlers/Scrubber.pyR ¢s	cCsrtjj|jƒ|ƒ}t|ƒ|jdtƒ}|jƒ}tj	|j
ƒ}tj|jdƒ|ƒ}tjj
|ƒ\}}	tjr©|	p£t||	ƒ}
nt||	ƒ}
|
sÜ|dkrÓd}
qÜd}
ntjd|
ƒ}
d}tjj|dƒ}tj|ƒ}
|
jƒzÄ|s5tjr>d}nGtj|ƒ}|d}tjd|ƒ}tjd|ƒ}|d	 }d
}d}xQträtjj||||
ƒ}tjj|ƒrà|d7}d|}q”Pq”WWd|
jƒX|rÑ|d
krÑtjj
|ƒ\}}
|d|
}t|dƒ}zr|j|ƒ|jƒtji|d6}tj |dƒ}|j!ƒ}|jƒ}|r¬t"dd|ƒnWdtj#|ƒXd}
|d}n0|dkr|jƒ}tj$t%|ƒƒ}nt|dƒ}|j|ƒ|jƒ|j&ƒ}|ddkrP|d7}nd|d||||
f}|S(NRbR_smessage/rfc822s.txts.binsattachments.lockR`iÿÿÿÿiðiis-%04ds	text/htmls-tmptwRtrterrors.HTML sanitizer exited with non-zero status: %st/t<s
%s/%s%s%s>('RFRGRHtarchive_dirR R|RnRtR	RpRqRzRytsplitextRt*SCRUBBER_USE_ATTACHMENT_FILENAME_EXTENSIONR%tsretsubR+R
tlockt%SCRUBBER_DONT_USE_ATTACHMENT_FILENAMEtpreR@tdretexiststunlocktopentwritetcloseRmtpopentreadRtunlinkR{RtGetBaseArchiveURL(RIRJRŠRatfsdirtdecodedpayloadRR‹RtfnextR#RGtlockfileR®tfilebaseROtcountertextratbasettmppathtfptcmdtprogfptstatusR“tbaseurlR((s?/usr/local/cpanel/3rdparty/mailman/Mailman/Handlers/Scrubber.pyRx°s‚
			
	

	

	





(7t__doc__t
__future__RRFtreR&R¢Rttempfilet	cStringIORttypesRRtemail.UtilsRtemail.ParserRtemail.GeneratorRt
email.CharsetRtMailmanRR	R
RtMailman.ErrorsRtMailman.i18nR
tMailman.Logging.SyslogRt
Mailman.UtilsRtcompileR°R¬R±R}tSPACERnR!t	NameErrorRRtImportErrorR%R-RUR\R+RšR Rx(((s?/usr/local/cpanel/3rdparty/mailman/Mailman/Handlers/Scrubber.pyt<module>sV


			,	ú	
Back to Directory File Manager