jaromail

a commandline tool to easily and privately handle your e-mail
git clone git://parazyd.org/jaromail.git
Log | Files | Refs | Submodules | README

commit 290ba973c78e6a88203859509f73782d345ee321
parent f730d9a11e98ec8415e25468507ca27e04dc0045
Author: Jaromil <jaromil@dyne.org>
Date:   Thu, 30 Oct 2014 17:13:36 +0100

parse and print From: emails using learn (also in dryrun) for easy import in groups

Diffstat:
Msrc/zlibs/addressbook | 38+++++++++++++++++++++++++++++++-------
1 file changed, 31 insertions(+), 7 deletions(-)

diff --git a/src/zlibs/addressbook b/src/zlibs/addressbook @@ -170,11 +170,15 @@ sender_isknown() { } learn() { - func "learn ${PARAM[1]} from mail in stdin" + func "learning ${PARAM[1]} in stdin piped mails" + [[ $DRYRUN == 1 ]] && { + func "dryrun parsing ${PARAM[1]} in stdin piped mails" } what=sender - { test -z ${PARAM[1]} } || { what=${PARAM[1]} } + [[ "${PARAM[1]}" != "" ]] && { what=${PARAM[1]} } + buffer=`cat` + case ${PARAM[1]} in sender) # simple: one address only on From: @@ -182,7 +186,11 @@ learn() { # (Q) eliminates quotes, then word split email="${(Q)head[(ws:,:)1]}" name="${(Q)head[(ws:,:)2]}" - insert_address "$email" "$name" + print "$name" "<$email>" + [[ $DRYRUN == 1 ]] || { + insert_address "$email" "$name" + { test $? = 0 } && { act "new: $_name <${_email}>" } + } return 0 ;; @@ -192,8 +200,13 @@ learn() { # (Q) eliminates quotes, then word split email="${(Q)h[(ws:,:)1]}" name="${(Q)h[(ws:,:)2]}" - insert_address "$email" "$name" - { test $? = 0 } && { act "new: $_name <${_email}>" } + + print "$name" "<$email>" + + [[ $DRYRUN == 1 ]] || { + insert_address "$email" "$name" + { test $? = 0 } && { act "new: $_name <${_email}>" } + } done return 0 ;; @@ -204,7 +217,12 @@ learn() { # (Q) eliminates quotes, then word split email="${(Q)h[(ws:,:)1]}" name="${(Q)h[(ws:,:)2]}" - insert_address "$email" "$name" + print "$name" "<$email>" + + [[ $DRYRUN == 1 ]] || { + insert_address "$email" "$name" + { test $? = 0 } && { act "new: $_name <${_email}>" } + } done head="`print $buffer | ${WORKDIR}/bin/fetchaddr -x Cc -a`" @@ -212,7 +230,12 @@ learn() { # (Q) eliminates quotes, then word split email="${(Q)h[(ws:,:)1]}" name="${(Q)h[(ws:,:)2]}" - insert_address "$email" "$name" + print "$name" "<$email>" + + [[ $DRYRUN == 1 ]] || { + insert_address "$email" "$name" + { test $? = 0 } && { act "new: $_name <${_email}>" } + } done return 0 ;; @@ -221,6 +244,7 @@ learn() { error "Unknown learning function: $what" ;; esac return 1 + } forget() {