summaryrefslogtreecommitdiff
path: root/alot
diff options
context:
space:
mode:
authorPatrick Totzke <patricktotzke@gmail.com>2016-12-06 21:04:45 +0000
committerGitHub <noreply@github.com>2016-12-06 21:04:45 +0000
commitda31729ee86f4a5619f571847701354d6448142a (patch)
tree2f80ee68fdcf3ac96978f22389689be737253eb8 /alot
parent87747310aa1bc3a26b04ee89cedeefc079680c06 (diff)
parenta7d8886b2a50bd24e0301448660fa3077ebe8e88 (diff)
Merge pull request #752 from jkoelker/pipeto_field_key
Allow specifing the mailcap field key for `pipeto`
Diffstat (limited to 'alot')
-rw-r--r--alot/commands/thread.py10
-rw-r--r--alot/db/utils.py5
2 files changed, 10 insertions, 5 deletions
diff --git a/alot/commands/thread.py b/alot/commands/thread.py
index 3286786c..1cdd6b38 100644
--- a/alot/commands/thread.py
+++ b/alot/commands/thread.py
@@ -598,6 +598,8 @@ class ChangeDisplaymodeCommand(Command):
'help': 'let the shell interpret the command'}),
(['--notify_stdout'], {'action': 'store_true',
'help': 'display cmd\'s stdout as notification'}),
+ (['--field_key'], {'help': 'mailcap field key for decoding',
+ 'default': 'copiousoutput'}),
],
)
class PipeCommand(Command):
@@ -608,7 +610,8 @@ class PipeCommand(Command):
def __init__(self, cmd, all=False, separately=False, background=False,
shell=False, notify_stdout=False, format='raw',
add_tags=False, noop_msg='no command specified',
- confirm_msg='', done_msg=None, **kwargs):
+ confirm_msg='', done_msg=None, field_key='copiousoutput',
+ **kwargs):
"""
:param cmd: shellcommand to open
:type cmd: str or list of str
@@ -637,6 +640,8 @@ class PipeCommand(Command):
:type confirm_msg: str
:param done_msg: notification message to show upon success
:type done_msg: str
+ :param field_key: malcap field key for decoding
+ :type field_key: str
"""
Command.__init__(self, **kwargs)
if isinstance(cmd, unicode):
@@ -652,6 +657,7 @@ class PipeCommand(Command):
self.noop_msg = noop_msg
self.confirm_msg = confirm_msg
self.done_msg = done_msg
+ self.field_key = field_key
@inlineCallbacks
def apply(self, ui):
@@ -697,7 +703,7 @@ class PipeCommand(Command):
pipestrings.append(mail.as_string())
elif self.output_format == 'decoded':
headertext = extract_headers(mail)
- bodytext = extract_body(mail)
+ bodytext = extract_body(mail, field_key=self.field_key)
msgtext = '%s\n\n%s' % (headertext, bodytext)
pipestrings.append(msgtext.encode('utf-8'))
diff --git a/alot/db/utils.py b/alot/db/utils.py
index 373f96b1..664aca5d 100644
--- a/alot/db/utils.py
+++ b/alot/db/utils.py
@@ -257,7 +257,7 @@ def extract_headers(mail, headers=None):
return headertext
-def extract_body(mail, types=None):
+def extract_body(mail, types=None, field_key='copiousoutput'):
"""
returns a body text string for given mail.
If types is `None`, `text/*` is used:
@@ -301,8 +301,7 @@ def extract_body(mail, types=None):
body_parts.append(string_sanitize(raw_payload))
else:
# get mime handler
- key = 'copiousoutput'
- handler, entry = settings.mailcap_find_match(ctype, key=key)
+ handler, entry = settings.mailcap_find_match(ctype, key=field_key)
tempfile_name = None
stdin = None