X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=mimedecode.py;h=c3e3ecffc13fba23137cdc8c955ab2bffe0f861b;hb=93b627c389e98f0ef7347035ee75a8603b6dd866;hp=9a23b7f36d934d6b828b35d151fdb634f81191b1;hpb=eefabcd05d2257ff8de79d5d291f721e06a3c827;p=mimedecode.git diff --git a/mimedecode.py b/mimedecode.py index 9a23b7f..c3e3ecf 100755 --- a/mimedecode.py +++ b/mimedecode.py @@ -47,11 +47,10 @@ def _decode_header(s): """Return a decoded string according to RFC 2047. NOTE: This is almost the same as email.Utils.decode. """ - from types import ListType import email.Header L = email.Header.decode_header(s) - if not isinstance(L, ListType): + if not isinstance(L, list): # s wasn't decoded return s @@ -87,8 +86,7 @@ def decode_header_param(msg, header, param): if msg.has_key(header): value = msg.get_param(param, header=header) if value: - from types import TupleType - if isinstance(value, TupleType): + if isinstance(value, tuple): new_value = _decode_header_param(value) else: new_value = _decode_header(value) @@ -105,6 +103,9 @@ def decode_headers(msg): for header, param in gopts.decode_header_params: decode_header_param(msg, header, param) + for header in gopts.remove_headers: + del msg[header] + def set_header(msg, header, value): "Replace header" @@ -283,6 +284,9 @@ class GlobalOptions: ("Content-Disposition", "filename"), ] + # A list of headers to remove + remove_headers = [] + totext_mask = [] # A list of content-types to decode binary_mask = [] # A list to pass through ignore_mask = [] # Ignore (skip, do not decode and do not include into output) @@ -298,7 +302,7 @@ def get_opt(): from getopt import getopt, GetoptError try: - options, arguments = getopt(sys.argv[1:], 'hVcCDPH:f:d:p:b:e:i:t:o:', + options, arguments = getopt(sys.argv[1:], 'hVcCDPH:f:d:p:r:b:e:i:t:o:', ['help', 'version', 'host']) except GetoptError: usage(1) @@ -324,6 +328,8 @@ def get_opt(): gopts.decode_header_params.append(value.split(':', 1)) elif option == '-P': gopts.decode_header_params = [] + elif option == '-r': + gopts.remove_headers.append(value) elif option == '-t': gopts.totext_mask.append(value) elif option == '-b':