diff options
author | Daniel Kahn Gillmor <dkg@fifthhorseman.net> | 2019-09-10 12:51:38 -0400 |
---|---|---|
committer | Daniel Kahn Gillmor <dkg@fifthhorseman.net> | 2019-09-14 14:58:06 -0400 |
commit | 1de22d43cdbbb964ea51e8d807ea808b174a24a2 (patch) | |
tree | 22edfeba666683ba98c5d646cfb6aec7a16624a0 /printmimestructure | |
parent | 37946242391b530d01da277918e4531f3855c875 (diff) | |
download | mailscripts-1de22d43cdbbb964ea51e8d807ea808b174a24a2.tar.gz |
rename printmimestructure to email-print-mime-structure
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Diffstat (limited to 'printmimestructure')
-rwxr-xr-x | printmimestructure | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/printmimestructure b/printmimestructure deleted file mode 100755 index 49e7208..0000000 --- a/printmimestructure +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -# Author: Daniel Kahn Gillmor <dkg@fifthhorseman.net> -# License: GPLv3+ - -# This script reads a MIME message from stdin and produces a treelike -# representation on it stdout. - -# Example: -# -# 0 dkg@alice:~$ printmimestructure < 'Maildir/cur/1269025522.M338697P12023.monkey,S=6459,W=6963:2,Sa' -# └┬╴multipart/signed 6546 bytes -# ├─╴text/plain inline 895 bytes -# └─╴application/pgp-signature inline [signature.asc] 836 bytes -# 0 dkg@alice:~$ - -# If you want to number the parts, i suggest piping the output through -# something like "cat -n" - -import email -import sys - -def print_part(z, prefix): - fname = '' if z.get_filename() is None else ' [' + z.get_filename() + ']' - cset = '' if z.get_charset() is None else ' (' + z.get_charset() + ')' - disp = z.get_params(None, header='Content-Disposition') - if (disp is None): - disposition = '' - else: - disposition = '' - for d in disp: - if d[0] in [ 'attachment', 'inline' ]: - 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()): - print_part(z, prefix+'┬╴') - if prefix.endswith('└'): - prefix = prefix.rpartition('└')[0] + ' ' - if prefix.endswith('├'): - prefix = prefix.rpartition('├')[0] + '│' - parts = z.get_payload() - i = 0 - while (i < parts.__len__()-1): - test(parts[i], prefix + '├') - i += 1 - test(parts[i], prefix + '└') - # FIXME: show epilogue? - else: - print_part(z, prefix+'─╴') - -test(email.message_from_file(sys.stdin), '└') |