#! /usr/local/bin/python -O
-"""Decode MIME message.
+"""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.0"
+__version__ = "$Revision$"[11:-2]
+__date__ = "$Date$"[7:-2]
+__revision__ = "$Id$"[5:-2]
+__author__ = "Oleg Broytmann <phd@phd.pp.ru>"
+__copyright__ = "Copyright (C) 2001-2006 PhiloSoft Design"
+__license__ = "GNU GPL"
import sys, os
import email
+try:
+ import locale
+ use_locale = True
+except ImportError:
+ use_locale = False
+
try:
from cStringIO import StringIO
except ImportError:
def version(exit=1):
sys.stdout.write("""\
BroytMann mimedecode.py version %s, %s
-""" % (__version__, __copyright__))
+""" % (_version, __copyright__))
if exit: sys.exit(0)
class GlobalOptions:
- default_charset = sys.getdefaultencoding()
+ if use_locale:
+ # Get the default charset.
+ try:
+ lcAll = locale.setlocale(locale.LC_ALL, '').split('.')
+ except locale.Error, err:
+ print >> sys.stderr, "WARNING:", err
+ lcAll = []
+
+ if len(lcAll) == 2:
+ default_charset = lcAll[1]
+ else:
+ try:
+ default_charset = locale.getpreferredencoding()
+ except locale.Error, err:
+ print >> sys.stderr, "WARNING:", err
+ default_charset = sys.getdefaultencoding()
+ else:
+ default_charset = sys.getdefaultencoding()
+
recode_charset = 1 # recode charset of message body
decode_headers = ["Subject", "From"] # A list of headers to decode
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