diff --git a/mail/.config/imapfilter/filters/rollup-dump.lua b/mail/.config/imapfilter/filters/rollup-dump.lua index cef898d..4ebefe9 100644 --- a/mail/.config/imapfilter/filters/rollup-dump.lua +++ b/mail/.config/imapfilter/filters/rollup-dump.lua @@ -1,21 +1,37 @@ function sendToFolder(folderFrom, folderTo, senders) + local messages = folderFrom:select_all() for _, sender in pairs(senders) do - messages = folderFrom:contain_from(sender) - messages:mark_seen() - messages:move_messages(folderTo) + local filtered=messages:contain_from(sender) + filtered:mark_seen() + filtered:move_messages(folderTo) end end -function getSenderList(file) +-- will set filters to be grabbed from XDG-compliant filter directory +-- can be overridden with env var IMAPFILTER_ROLLUPFILE +function getRollupFile(fname) + 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) local rollupSenders={} - local file = io.open(file) + local file = io.open(rollupfile) if file then for line in file:lines() do table.insert(rollupSenders, line) end else - print("ERROR: rollup did not find rollup.txt file containing mail addresses.") + print("ERROR: rollup did not find rollup.txt file containing mail addresses at " .. rollupfile or "" ) end return rollupSenders end @@ -23,5 +39,5 @@ end sendToFolder ( accounts.gmail["Inbox"], accounts.gmail["Dump"], - getSenderList(getConfigDir() .. "/rollup.txt") + getSenderList(getRollupFile()) )