Jeremy White : gitlab: Handle email encoded in a non utf-8 charset.
Alexandre Julliard
julliard at winehq.org
Mon Jun 6 15:05:08 CDT 2022
Module: tools
Branch: master
Commit: 001ed5565377ccde1ecbbce75806a0a65bd31348
URL: https://source.winehq.org/git/tools.git/?a=commit;h=001ed5565377ccde1ecbbce75806a0a65bd31348
Author: Jeremy White <jwhite at codeweavers.com>
Date: Fri Jun 3 10:16:47 2022 -0500
gitlab: Handle email encoded in a non utf-8 charset.
See https://www.winehq.org/pipermail/wine-devel/2022-June/218864.html.
---
gitlab/gitlab-to-mail/mailtogitlab.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/gitlab/gitlab-to-mail/mailtogitlab.py b/gitlab/gitlab-to-mail/mailtogitlab.py
index ecc73fc..bc9944a 100755
--- a/gitlab/gitlab-to-mail/mailtogitlab.py
+++ b/gitlab/gitlab-to-mail/mailtogitlab.py
@@ -53,6 +53,7 @@ def find_mr(mail):
def get_email_body(mail):
+ charset = mail.get_content_charset(failobj='UTF-8')
if mail.is_multipart():
result = ""
for part in mail.walk():
@@ -60,14 +61,14 @@ def get_email_body(mail):
payload = part.get_payload(decode=True)
# Skip things that look like a mailman tail
if not re.search(r"^--[ ]*[\r\n]*.*mailing list[ \r\n]*.*[\r\n]^https", payload.decode(), re.MULTILINE):
- result += payload.decode()
+ result += payload.decode(encoding=charset)
return result
else:
if mail.get_content_type() != "text/plain":
return ""
payload = mail.get_payload(decode=True)
- return payload.decode()
+ return payload.decode(encoding=charset)
def escape_body(body):
return body.replace("```", '\`\`\`')
More information about the wine-cvs
mailing list