diff mbox

[dim,1/2] dim: Add support for multiple messages in extract-tags

Message ID 20170323210731.38313-1-seanpaul@chromium.org (mailing list archive)
State New, archived
Headers show

Commit Message

Sean Paul March 23, 2017, 9:07 p.m. UTC
Make extract-tags process tags from all messages in the supplied
mbox. This allows the user to tag multiple replies and extract
all tags at once.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
---
 dim | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)
diff mbox

Patch

diff --git a/dim b/dim
index 989674a..43ea794 100755
--- a/dim
+++ b/dim
@@ -342,25 +342,27 @@  if message_id is not None:
 EOF
 }
 
-message_print_body ()
+mbox_cat_messages ()
 {
 	python2 <<EOF
 import email
+import mailbox
 
 def print_part(part):
     mtype = part.get_content_maintype()
     if mtype == 'text':
         print(part.get_payload(decode=True))
 
-def print_msg(file):
-    msg = email.message_from_file(file)
+def print_msg(msg):
     if msg.is_multipart():
         for part in msg.get_payload():
             print_part(part)
     else:
         print_part(msg)
 
-print_msg(open('$1', 'r'))
+mbox = mailbox.mbox('$1', create=False)
+for m in mbox.values():
+    print_msg(m)
 EOF
 }
 
@@ -1157,7 +1159,7 @@  function dim_extract_tags
 
 	cat > $file
 
-	tags=$(message_print_body "$file" | grep -ai '^[^>]*[A-Za-z-]\+: [^ ]')
+	tags=$(mbox_cat_messages "$file" | grep -ai '^[^>]*[A-Za-z-]\+: [^ ]')
 
 	rm -f $file