dotfiles/office/.config/imapfilter/filters/rollup-dump.lua

41 lines
1.2 KiB
Lua
Raw Normal View History

function sendToFolder(folderFrom, folderTo, senders)
2020-11-06 14:03:33 +00:00
local messages = folderFrom:select_all()
for _, sender in pairs(senders) do
local filtered = messages:contain_from(sender)
filtered:mark_seen()
filtered:move_messages(folderTo)
end
end
-- will set filters to be grabbed from XDG-compliant filter directory
-- can be overridden with env var IMAPFILTER_ROLLUPFILE
function getRollupFile(fname)
2020-11-06 14:03:33 +00:00
local f
local fname = fname or "rollup.txt"
if os.getenv("IMAPFILTER_ROLLUPFILE") then
f = os.getenv("IMAPFILTER_ROLLUPFILE")
elseif os.getenv("XDG_DATA_HOME") then
f = os.getenv("XDG_DATA_HOME") .. "/imapfilter/" .. fname
else
f = os.getenv("HOME") .. "/.local/share/imapfilter/" .. fname
end
return f
end
function getSenderList(rollupfile)
2020-11-06 14:03:33 +00:00
local rollupSenders = {}
2020-11-06 14:03:33 +00:00
local file = io.open(rollupfile)
if file then
for line in file:lines() do table.insert(rollupSenders, line) end
else
print(
"rollup did not find rollup.txt file containing mail addresses at " ..
rollupfile or ". Skipping.")
end
2020-11-06 14:03:33 +00:00
return rollupSenders
end
2020-11-06 14:03:33 +00:00
sendToFolder(accounts.gmail["Inbox"], accounts.gmail["Dump"],
getSenderList(getRollupFile()))