186 lines
6.5 KiB
Lua
186 lines
6.5 KiB
Lua
function main()
|
|
local sanchayan = IMAP {
|
|
server = 'imap.gmail.com',
|
|
username = 'maitysanchayan@gmail.com',
|
|
password = get_pwd_sanchayan(),
|
|
ssl = 'tls1',
|
|
}
|
|
|
|
local victor = IMAP {
|
|
server = 'imap.gmail.com',
|
|
username = 'victorascroft@gmail.com',
|
|
password = get_pwd_victor(),
|
|
ssl = 'tls1',
|
|
}
|
|
|
|
-- Make sure the account is configured properly
|
|
sanchayan.INBOX:check_status()
|
|
-- sanchayan['[Gmail]/Trash']:check_status()
|
|
-- sanchayan['[Gmail]/Spam']:check_status()
|
|
victor.INBOX:check_status()
|
|
-- victor['[Gmail]/Trash']:check_status()
|
|
-- victor['[Gmail]/Spam']:check_status()
|
|
|
|
-- Get all mail from INBOX
|
|
mails = sanchayan.INBOX:select_all()
|
|
|
|
-- Move mailing lists from INBOX to correct folders
|
|
move_mailing_lists(sanchayan, mails)
|
|
|
|
mails = victor.INBOX:select_all()
|
|
move_mailing_lists(victor, mails)
|
|
|
|
-- Get all mail from Sent Mail
|
|
mails = sanchayan.Sent:select_all()
|
|
|
|
-- Move mailing lists from Sent mail to correct folders
|
|
move_mailing_lists(sanchayan, mails)
|
|
|
|
mails = victor.Sent:select_all()
|
|
move_mailing_lists(victor, mails)
|
|
|
|
-- Get all mail from trash
|
|
mails = sanchayan['[Gmail]/Trash']:select_all()
|
|
imap_trash = sanchayan['Trash']:select_all()
|
|
|
|
-- Move mailing lists from trash to correct folders
|
|
move_to_gmail_trash(sanchayan, imap_trash, '[Gmail]/Trash')
|
|
delete_from_trash(sanchayan, mails)
|
|
|
|
mails = victor['[Gmail]/Trash']:select_all()
|
|
imap_trash = victor['Trash']:select_all()
|
|
|
|
-- Move mailing lists from trash to correct folders
|
|
move_to_gmail_trash(victor, imap_trash, '[Gmail]/Trash')
|
|
delete_from_trash(victor, mails)
|
|
|
|
-- Get all mail from spam
|
|
mails = sanchayan['[Gmail]/Spam']:select_all()
|
|
|
|
-- Move mailing lists from spam to correct folders
|
|
move_mailing_lists(sanchayan, mails)
|
|
|
|
mails = victor['[Gmail]/Spam']:select_all()
|
|
move_mailing_lists(victor, mails)
|
|
|
|
end
|
|
|
|
function move_mailing_lists(account, mails)
|
|
-- Stefan Agner
|
|
move_if_to_contains(account, mails, "stefan@agner.ch", "Stefan")
|
|
move_if_from_contains(account, mails, "stefan@agner.ch","Stefan")
|
|
move_if_cc_contains(account, mails, "stefan@agner.ch","Stefan")
|
|
move_if_to_contains(account, mails, "stefan.agner@toradex.com", "Stefan")
|
|
move_if_from_contains(account, mails, "stefan.agner@toradex.com","Stefan")
|
|
move_if_cc_contains(account, mails, "stefan.agner@toradex.com","Stefan")
|
|
|
|
--Barebox
|
|
move_if_to_contains(account, mails, "barebox@lists.infradead.org", "Barebox")
|
|
move_if_from_contains(account, mails, "barebox@lists.infradead.org","Barebox")
|
|
move_if_cc_contains(account, mails, "barebox@lists.infradead.org", "Barebox")
|
|
|
|
--Buildroot
|
|
move_if_to_contains(account, mails, "buildroot@busybox.net", "Buildroot")
|
|
move_if_from_contains(account, mails, "buildroot@busybox.net","Buildroot")
|
|
move_if_cc_contains(account, mails, "buildroot@busybox.net", "Buildroot")
|
|
move_if_to_contains(account, mails, "buildroot@buildroot.org", "Buildroot")
|
|
move_if_from_contains(account, mails, "buildroot@buildroot.org","Buildroot")
|
|
move_if_cc_contains(account, mails, "buildroot@buildroot.org", "Buildroot")
|
|
move_if_to_contains(account, mails, "buildroot@uclibc.org", "Buildroot")
|
|
move_if_from_contains(account, mails, "buildroot@uclibc.org","Buildroot")
|
|
move_if_cc_contains(account, mails, "buildroot@uclibc.org", "Buildroot")
|
|
|
|
|
|
-- Linux Kernel
|
|
move_if_to_contains(account, mails, "lists.infradead.org", "Linux Kernel")
|
|
move_if_from_contains(account, mails, "lists.infradead.org", "Linux Kernel")
|
|
move_if_cc_contains(account, mails, "lists.infradead.org", "Linux Kernel")
|
|
move_if_to_contains(account, mails, "vger.kernel.org", "Linux Kernel")
|
|
move_if_from_contains(account, mails, "vger.kernel.org", "Linux Kernel")
|
|
move_if_cc_contains(account, mails, "vger.kernel.org", "Linux Kernel")
|
|
|
|
-- U boot
|
|
move_if_to_contains(account, mails, "u-boot@lists.denx.de", "Uboot")
|
|
move_if_from_contains(account, mails, "u-boot@lists.denx.de", "Uboot")
|
|
move_if_cc_contains(account, mails, "u-boot@lists.denx.de", "Uboot")
|
|
|
|
-- Jobs
|
|
move_if_from_contains(account, mails, "monster.com","Jobs")
|
|
move_if_from_contains(account, mails, "naukri.com","Jobs")
|
|
|
|
-- OE
|
|
move_if_to_contains(account, mails, "openembedded-devel@lists.openembedded.org","Openembedded")
|
|
move_if_from_contains(account, mails, "openembedded-devel@lists.openembedded.org","Openembedded")
|
|
move_if_cc_contains(account, mails, "openembedded-devel@lists.openembedded.org","Openembedded")
|
|
|
|
-- Kernel Newbies
|
|
move_if_to_contains(account, mails, "kernelnewbies@kernelnewbies.org", "kernel newbies")
|
|
move_if_from_contains(account, mails, "kernelnewbies@kernelnewbies.org","kernel newbies")
|
|
move_if_cc_contains(account, mails, "kernelnewbies@kernelnewbies.org","kernel newbies")
|
|
end
|
|
|
|
function move_if_subject_contains(account, mails, subject, mailbox)
|
|
filtered = mails:contain_subject(subject)
|
|
filtered:move_messages(account[mailbox]);
|
|
end
|
|
|
|
function move_if_to_contains(account, mails, to, mailbox)
|
|
filtered = mails:contain_to(to)
|
|
filtered:move_messages(account[mailbox]);
|
|
end
|
|
|
|
function move_if_from_contains(account, mails, from, mailbox)
|
|
filtered = mails:contain_from(from)
|
|
filtered:move_messages(account[mailbox]);
|
|
end
|
|
|
|
function move_if_cc_contains(account, mails, cc, mailbox)
|
|
filtered = mails:contain_cc(cc)
|
|
filtered:move_messages(account[mailbox]);
|
|
end
|
|
|
|
function move_to_gmail_trash(account, mails, mailbox)
|
|
filtered = mails:select_all()
|
|
filtered:move_messages(account[mailbox])
|
|
end
|
|
|
|
function delete_mail_from(account, mails, from)
|
|
filtered = mails:contain_from(from)
|
|
filtered:delete_messages()
|
|
end
|
|
|
|
function delete_mail_if_subject_contains(account, mails, subject)
|
|
filtered = mails:contain_subject(subject)
|
|
filtered:delete_messages()
|
|
end
|
|
|
|
function delete_from_trash(account, mails)
|
|
filtered = mails:select_all()
|
|
filtered:delete_messages()
|
|
end
|
|
|
|
-- Utility function to get IMAP password from file
|
|
function get_imap_password(file)
|
|
local home = os.getenv("HOME")
|
|
local file = home .. "/" .. file
|
|
local str = io.open(file):read()
|
|
return str;
|
|
end
|
|
|
|
function get_pwd_victor()
|
|
local cmd = "gpg2 --use-agent --quiet --batch --decrypt ~/.victor.gpg"
|
|
local fd = io.popen(cmd, 'r')
|
|
pass = fd:read("*a")
|
|
fd:close()
|
|
return pass;
|
|
end
|
|
|
|
function get_pwd_sanchayan()
|
|
local cmd = "gpg2 --use-agent --quiet --batch --decrypt ~/.sanchayan.gpg"
|
|
local fd = io.popen(cmd, 'r')
|
|
pass = fd:read("*a")
|
|
fd:close()
|
|
return pass;
|
|
end
|
|
|
|
main() -- Call the main function
|