summaryrefslogtreecommitdiff
path: root/alot/db
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2021-01-13 15:01:47 +0100
committerAnton Khirnov <anton@khirnov.net>2021-01-13 15:01:47 +0100
commit13916b645f435a97803f4b0cbf86c426222d52f5 (patch)
treec5adeed8dff16cdaa9cb3dd828ae4df72bd5355c /alot/db
parent371bf6414bb181a3856648d877b9f1980da1bfd7 (diff)
db/message: passthrough text parts if there is no handler
Diffstat (limited to 'alot/db')
-rw-r--r--alot/db/message.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/alot/db/message.py b/alot/db/message.py
index 61f95383..41654c4a 100644
--- a/alot/db/message.py
+++ b/alot/db/message.py
@@ -34,13 +34,13 @@ def _render_part(part, field_key='copiousoutput'):
ctype = part.get_content_type()
raw_payload = part.get_content()
- if isinstance(raw_payload, str):
- raw_payload = raw_payload.encode('utf-8')
-
rendered_payload = None
# get mime handler
_, entry = settings.mailcap_find_match(ctype, key=field_key)
if entry is not None:
+ if isinstance(raw_payload, str):
+ raw_payload = raw_payload.encode('utf-8')
+
tempfile_name = None
stdin = None
handler_raw_commandstring = entry['view']
@@ -75,6 +75,11 @@ def _render_part(part, field_key='copiousoutput'):
# remove tempfile
if tempfile_name:
os.unlink(tempfile_name)
+ elif part.get_content_maintype() == 'text':
+ # return text parts without a handler as-is
+ rendered_payload = raw_payload
+ if not isinstance(rendered_payload, str):
+ rendered_payload = rendered_payload.decode('utf-8', errors = 'backslashreplace')
return rendered_payload