Module: tools Branch: master Commit: 001ed5565377ccde1ecbbce75806a0a65bd31348 URL: https://source.winehq.org/git/tools.git/?a=commit;h=001ed5565377ccde1ecbbce7...
Author: Jeremy White jwhite@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("```", '```')