better header decoding
This commit is contained in:
14
generate.py
14
generate.py
@@ -29,11 +29,15 @@ IMPORT_RE = re.compile(r"@import\((.*)\)")
|
|||||||
FILE_RE = re.compile(r"@file\((.*)\)")
|
FILE_RE = re.compile(r"@file\((.*)\)")
|
||||||
|
|
||||||
def decode_header(header):
|
def decode_header(header):
|
||||||
decoded_header = email.header.decode_header(header)[0]
|
decoded_headers = email.header.decode_header(header)
|
||||||
encoding = decoded_header[1] or "ascii"
|
header_strs = []
|
||||||
if encoding == "unknown-8bit":
|
for dheader in decoded_headers:
|
||||||
encoding = "ascii"
|
encoding = dheader[1] or "ascii"
|
||||||
return decoded_header[0].decode(encoding, errors="replace") if isinstance(decoded_header[0], bytes) else decoded_header[0]
|
if encoding == "unknown-8bit":
|
||||||
|
encoding = "ascii"
|
||||||
|
result = dheader[0].decode(encoding, errors="replace") if isinstance(dheader[0], bytes) else dheader[0]
|
||||||
|
header_strs.append(result)
|
||||||
|
return "".join(header_strs)
|
||||||
|
|
||||||
def get_body_text(msg):
|
def get_body_text(msg):
|
||||||
# from https://stackoverflow.com/a/1463144
|
# from https://stackoverflow.com/a/1463144
|
||||||
|
|||||||
Reference in New Issue
Block a user