X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=mimedecode.py;h=e63aedcc8664c82bdf89ae915d3ac59666e2c4a0;hb=34ad6ae1312194ecb89c3ec482f888b8bd05754a;hp=9af561e90ddc4b87616c2d84f5041eae06be8ef9;hpb=6f1f365730f3a886ce31abe39cc4cc0f992206f0;p=mimedecode.git diff --git a/mimedecode.py b/mimedecode.py index 9af561e..e63aedc 100755 --- a/mimedecode.py +++ b/mimedecode.py @@ -34,12 +34,9 @@ def output_headers(msg): output("\n") # End of headers -def recode(s, charset): - return unicode(s, charset, "replace").encode(g.default_encoding, "replace") - def recode_if_needed(s, charset): if charset and charset.lower() <> g.default_encoding: - s = recode(s, charset) + s = unicode(s, charset, "replace").encode(g.default_encoding, "replace") return s @@ -312,7 +309,10 @@ def decode_part(msg): left_binary = False for content_type in masks: - if content_type in g.binary_mask: + if content_type in g.totext_mask or \ + content_type in g.decoded_binary_mask: + break + elif content_type in g.binary_mask: left_binary = True break @@ -338,7 +338,7 @@ def decode_part(msg): output("\nMessage body of type %s skipped.\n" % ctype) break elif content_type in g.error_mask: - raise ValueError, "content type %s prohibited" % ctype + break else: # Neither content type nor masks were listed - decode by default outstring = totext(msg, outstring) @@ -351,6 +351,10 @@ def decode_part(msg): elif content_type in g.save_message_mask: _save_message(msg, outstring, save_headers=True, save_body=True) + for content_type in masks: + if content_type in g.error_mask: + raise ValueError, "content type %s prohibited" % ctype + def decode_multipart(msg): "Decode multipart"