-#! /usr/local/bin/python -O
-"""Decode MIME message.
+#! /usr/bin/env python
+"""Decode MIME message"""
-Author: Oleg Broytmann <phd@phd.pp.ru>
-Copyright: (C) 2001-2002 PhiloSoft Design
-License: GPL
-"""
-__version__ = "2.0.0"
-__copyright__ = "Copyright (C) 2001-2002 PhiloSoft Design"
+__version__ = "2.1.1"
+__author__ = "Oleg Broytman <phd@phdru.name>"
+__copyright__ = "Copyright (C) 2001-2012 PhiloSoft Design"
+__license__ = "GNU GPL"
import sys, os
def version(exit=1):
sys.stdout.write("""\
-BroytMann mimedecode.py version %s, %s
-""" % (__version__, __copyright__))
+Broytman mimedecode.py version %s, %s
+""" % (_version, __copyright__))
if exit: sys.exit(0)
def recode(s, charset):
- return unicode(s, charset, "replace").encode(GlobalOptions.default_charset, "replace")
+ return unicode(s, charset, "replace").encode(GlobalOptions.default_encoding, "replace")
def recode2(s, charset):
- if charset and charset <> GlobalOptions.default_charset:
+ if charset and charset.lower() <> GlobalOptions.default_encoding:
s = recode(s, charset)
return s
"Recode charset of the message to the default charset"
save_charset = charset = msg.get_content_charset()
- if charset and charset <> GlobalOptions.default_charset:
+ if charset and charset.lower() <> GlobalOptions.default_encoding:
s = recode2(s, charset)
content_type = msg.get_content_type()
- set_content_type(msg, content_type, GlobalOptions.default_charset)
- msg["X-MIME-Autoconverted"] = "from %s to %s by %s id %s" % (save_charset, GlobalOptions.default_charset, host_name, me)
+ set_content_type(msg, content_type, GlobalOptions.default_encoding)
+ msg["X-MIME-Autoconverted"] = "from %s to %s by %s id %s" % (save_charset, GlobalOptions.default_encoding, host_name, me)
return s
class GlobalOptions:
- default_charset = sys.getdefaultencoding()
+ from m_lib.defenc import default_encoding
recode_charset = 1 # recode charset of message body
decode_headers = ["Subject", "From"] # A list of headers to decode
elif option == '-C':
GlobalOptions.recode_charset = 0
elif option == '-f':
- GlobalOptions.default_charset = value
+ GlobalOptions.default_encoding = value
elif option == '-d':
GlobalOptions.decode_headers.append(value)
elif option == '-D':
if __name__ == "__main__":
arguments = init()
- if len(arguments) == 0:
+ la = len(arguments)
+ if la == 0:
infile = sys.stdin
- elif len(arguments) <> 1:
+ elif la <> 1:
usage(1)
elif arguments[0] == '-':
infile = sys.stdin