Add hooks for muting and spamming mails
This commit is contained in:
parent
423d9b4952
commit
b9bbc9d1ae
@ -87,6 +87,16 @@ theme = "mutt"
|
||||
x = toggletags spam,inbox
|
||||
a = untag inbox
|
||||
A = tag inbox
|
||||
1 = call hooks.mute(ui,1)
|
||||
2 = call hooks.mute(ui,2)
|
||||
3 = call hooks.mute(ui,3)
|
||||
4 = call hooks.mute(ui,4)
|
||||
5 = call hooks.mute(ui,5)
|
||||
6 = call hooks.mute(ui,6)
|
||||
7 = call hooks.mute(ui,7)
|
||||
8 = call hooks.mute(ui,8)
|
||||
9 = call hooks.mute(ui,9)
|
||||
i = call hooks.spam(ui)
|
||||
|
||||
[[thread]]
|
||||
a = untag inbox ; fold
|
||||
@ -94,6 +104,16 @@ theme = "mutt"
|
||||
n = nextpart
|
||||
p = prevpart
|
||||
u = pipeto --background selecturl
|
||||
1 = call hooks.mute(ui,1)
|
||||
2 = call hooks.mute(ui,2)
|
||||
3 = call hooks.mute(ui,3)
|
||||
4 = call hooks.mute(ui,4)
|
||||
5 = call hooks.mute(ui,5)
|
||||
6 = call hooks.mute(ui,6)
|
||||
7 = call hooks.mute(ui,7)
|
||||
8 = call hooks.mute(ui,8)
|
||||
9 = call hooks.mute(ui,9)
|
||||
i = call hooks.spam(ui)
|
||||
|
||||
[tags]
|
||||
|
||||
|
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
async def mute(ui, days):
|
||||
from datetime import date, timedelta
|
||||
datestr = str(date.today() + timedelta(days=days))
|
||||
await ui.apply_commandline(f'toggletags inbox,muted,muted/{datestr}')
|
||||
|
||||
async def spam(ui):
|
||||
from alot.buffers import EnvelopeBuffer
|
||||
from alot.db.envelope import Envelope
|
||||
message = ui.current_buffer.get_selected_message()
|
||||
message.add_tags(['spam'])
|
||||
message.remove_tags(['unread'])
|
||||
envelope = Envelope(
|
||||
headers=dict(
|
||||
From=['Felix Van der Jeugt <felix.vanderjeugt@ugent.be>'],
|
||||
To=['spam@ugent.be'],
|
||||
Subject=['spam'],
|
||||
References=['<' + message.get_message_id() + '>']),
|
||||
bodytext='spam',
|
||||
tags=['spam'])
|
||||
envelope.attach(message.get_filename())
|
||||
ui.buffer_open(EnvelopeBuffer(ui, envelope))
|
@ -50,6 +50,11 @@ for mid in $(notmuch search --output=messages tag:new); do
|
||||
done
|
||||
done
|
||||
|
||||
# Unmute threads with new messages
|
||||
for mutetag in $(notmuch search --output=tags -- tag:muted and thread:{tag:new} | grep 'muted/'); do
|
||||
notmuch tag -muted -"$mutetag" +inbox -- tag:"$mutetag" and thread:{tag:new}
|
||||
done
|
||||
|
||||
# Github notifications
|
||||
addtag github "from:notifications@github.com"
|
||||
|
||||
@ -66,3 +71,12 @@ notmuch search tag:new | cut -d' ' --complement -f1 | xargs -0 --no-run-if-empty
|
||||
# Inbox remaining not-spam
|
||||
addtag inbox "not tag:spam"
|
||||
notmuch tag -new -- tag:new
|
||||
|
||||
# Unmute threads on their day of unmuting
|
||||
today="$(date +'%s')"
|
||||
for mutetag in $(notmuch search --output=tags tag:muted | grep 'muted/'); do
|
||||
until="$(date -d "${mutetag#*/}" +'%s')"
|
||||
if [ "$today" -gt "$until" ]; then
|
||||
notmuch tag -muted -"$mutetag" +inbox -- tag:"$mutetag"
|
||||
fi
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user