summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Alejandro <ivanalejandro0@gmail.com>2014-01-17 14:40:44 -0300
committerIvan Alejandro <ivanalejandro0@gmail.com>2014-01-17 15:33:19 -0300
commit3117dd17ebbce9dcf31ecb2951ba58ed67bcf7ce (patch)
tree9c9c97be243360f29347ee9013604de21c5b8e85 /src
parent646dd2fd5fb3980f08490dcba03948164ab62bdf (diff)
Support str type in email charset detection.
Diffstat (limited to 'src')
-rw-r--r--src/leap/common/mail.py9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/leap/common/mail.py b/src/leap/common/mail.py
index 2f2146d..b630c90 100644
--- a/src/leap/common/mail.py
+++ b/src/leap/common/mail.py
@@ -20,26 +20,25 @@ Utility functions for email.
import email
import re
-from leap.common.check import leap_assert_type
-
def get_email_charset(content, default="utf-8"):
"""
Mini parser to retrieve the charset of an email.
:param content: mail contents
- :type content: unicode
+ :type content: unicode or str
:param default: optional default value for encoding
:type default: str or None
:returns: the charset as parsed from the contents
:rtype: str
"""
- leap_assert_type(content, unicode)
+ if isinstance(content, unicode):
+ content.encode("utf-8", "replace")
charset = default
try:
- em = email.message_from_string(content.encode("utf-8", "replace"))
+ em = email.message_from_string(content)
# Miniparser for: Content-Type: <something>; charset=<charset>
charset_re = r'''charset=(?P<charset>[\w|\d|-]*)'''
charset = re.findall(charset_re, em["Content-Type"])[0]