minor cleanup to printmimestructure

make the source slightly easier to read.  no functional change.
This commit is contained in:
Jameson Graef Rollins 2018-06-12 17:21:09 -04:00 committed by David Bremner
parent 8ca911d13b
commit 0a3dff7b8a

View file

@ -24,7 +24,7 @@ from __future__ import print_function
import email import email
import sys import sys
def test(z, prefix=''): def print_part(z, prefix):
fname = '' if z.get_filename() is None else ' [' + z.get_filename() + ']' fname = '' if z.get_filename() is None else ' [' + z.get_filename() + ']'
cset = '' if z.get_charset() is None else ' (' + z.get_charset() + ')' cset = '' if z.get_charset() is None else ' (' + z.get_charset() + ')'
disp = z.get_params(None, header='Content-Disposition') disp = z.get_params(None, header='Content-Disposition')
@ -35,8 +35,23 @@ def test(z, prefix=''):
for d in disp: for d in disp:
if d[0] in [ 'attachment', 'inline' ]: if d[0] in [ 'attachment', 'inline' ]:
disposition = ' ' + d[0] disposition = ' ' + d[0]
if z.is_multipart():
nbytes = len(z.as_string())
else:
nbytes = len(z.get_payload())
print('{}{}{}{}{} {:d} bytes'.format(
prefix,
z.get_content_type(),
cset,
disposition,
fname,
nbytes,
))
def test(z, prefix=''):
if (z.is_multipart()): if (z.is_multipart()):
print(prefix + '┬╴' + z.get_content_type() + cset + disposition + fname, z.as_string().__len__().__str__() + ' bytes') print_part(z, prefix+'┬╴')
if prefix.endswith('└'): if prefix.endswith('└'):
prefix = prefix.rpartition('└')[0] + ' ' prefix = prefix.rpartition('└')[0] + ' '
if prefix.endswith('├'): if prefix.endswith('├'):
@ -49,6 +64,6 @@ def test(z, prefix=''):
test(parts[i], prefix + '└') test(parts[i], prefix + '└')
# FIXME: show epilogue? # FIXME: show epilogue?
else: else:
print(prefix + '─╴'+ z.get_content_type() + cset + disposition + fname, z.get_payload().__len__().__str__(), 'bytes') print_part(z, prefix+'─╴')
test(email.message_from_file(sys.stdin), '└') test(email.message_from_file(sys.stdin), '└')