#!/bin/bash
# File              : toggle_spam
# Author            : Jeff LANCE <email@jefflance.me>
# Date              : 10.02.2015
# Last Modified Date: 07.05.2020
# Last Modified By  : Jeff LANCE <email@jefflance.me>
#
# $1 = message id

# All directory names relative to mail folder's root
DIR_JUNK="junk" # Junk directory path
DIR_INBOX="inbox"      # Inbox directory path

# Get thread ID and message ID
TID=$1
MID=$2

FILE=$(notmuch search --exclude=false --output=files\
       "thread:${TID}" "${MID:+id:$MID}")

# Unspam it if it's spam
if [[ $(notmuch search "thread:${TID}" "${MID:+id:$MID}" \
  and tag:spam \
  and folder:/${DIR_JUNK}/) ]]; then
  # unspam mail and reset inbox status
  notmuch tag -spam +inbox -- "thread:${TID}" "${MID:+id:$MID}"
  # Set mail as ham for bogofilter
  echo "Unspam mail: ${TID}"
  echo ${FILE} | bogofilter -Sn -l
else
  # Spam it 
  notmuch tag -inbox +spam -- "thread:${TID}" "${MID:+id:$MID}"
  # Set mail as spam for bogofilter
  echo "Spam mail: ${TID}"
  echo ${FILE} | bogofilter -Ns -l
fi

# Move mail with afew
afew --move-mails

exit 0


# vim:ft=sh