diff options
| author | 2022-07-01 23:19:21 -0700 | |
|---|---|---|
| committer | 2022-09-22 23:52:01 -0700 | |
| commit | e21107688347a89877957905c09f3b15535639a0 (patch) | |
| tree | 038317b3e1c1e87074b41cafd7c8d55e7c426e64 | |
| download | notmuch-collect-tasks-e21107688347a89877957905c09f3b15535639a0.tar.gz notmuch-collect-tasks-e21107688347a89877957905c09f3b15535639a0.zip | |
Automatically create tasks in org-mode for Fido emails
| -rwxr-xr-x | notmuch-collect-tasks | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/notmuch-collect-tasks b/notmuch-collect-tasks new file mode 100755 index 0000000..4eff658 --- /dev/null +++ b/notmuch-collect-tasks @@ -0,0 +1,42 @@ +#!/usr/bin/env sh +# -*- mode: scheme; -*- +IFS=" " +exec scsh -e main -s "$0" "$@" +!# + +(define message-query + '(from:fidobill@fidomobile.ca + and "subject:Your Fido bill is ready")) + +(define processed-tag-name "processed") + +(define (message->task message) + (let ((query (caadr (member ':query message))) + (subject (cadr (member ':subject message))) + (date (format-date "~Y-~m-~d ~a ~H:~M" (date)))) + (format #f "* TODO ~a +:PROPERTIES: +:CREATED: [~a] +:END: + +[[notmuch:~a][~a]]" subject date query subject))) + +(define (print-task task) + (format #t "~a~%~%" task)) + +(define (main args) + (let ((output-file (cadr args)) + (messages (run/sexp + (notmuch search --format=sexp + ,@message-query + and not ,(format #f "tag:~a" processed-tag-name))))) + (with-current-output-port + (open-output-file output-file (file-options create append)) + (for-each (lambda (message) + (print-task (message->task message))) + messages)) + (run (notmuch tag ,(format #f "+~a" processed-tag-name) ,@message-query) + (> /dev/null)) + (format #t "Created ~a task~a~%" + (length messages) + (if (= 1 (length messages)) "" "s")))) |
