X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=mimedecode.py;h=1e6852ceadce0158f2468846045f04204101d0c0;hb=06204515308656fb4f08ebb96e636610ab7b7902;hp=c0a9ef3ac76371defeff55e2f53d4c3ab047c3c7;hpb=27550cf12d5e7e50f882e53e5e5a632e3758c667;p=mimedecode.git diff --git a/mimedecode.py b/mimedecode.py index c0a9ef3..1e6852c 100755 --- a/mimedecode.py +++ b/mimedecode.py @@ -1,18 +1,25 @@ #! /usr/local/bin/python -O -"""Decode MIME message. +"""Decode MIME message""" -Author: Oleg Broytmann -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 " +__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: @@ -28,7 +35,7 @@ me = os.path.basename(sys.argv[0]) def version(exit=1): sys.stdout.write("""\ BroytMann mimedecode.py version %s, %s -""" % (__version__, __copyright__)) +""" % (_version, __copyright__)) if exit: sys.exit(0) @@ -290,7 +297,25 @@ def decode_file(infile): 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 @@ -353,9 +378,10 @@ def init(): 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