diff options
Diffstat (limited to '.config/maildirproc')
-rw-r--r-- | .config/maildirproc/att.rc (renamed from .config/maildirproc/default.rc) | 0 | ||||
-rw-r--r-- | .config/maildirproc/purdue.rc | 191 |
2 files changed, 191 insertions, 0 deletions
diff --git a/.config/maildirproc/default.rc b/.config/maildirproc/att.rc index 71bc00c..71bc00c 100644 --- a/.config/maildirproc/default.rc +++ b/.config/maildirproc/att.rc diff --git a/.config/maildirproc/purdue.rc b/.config/maildirproc/purdue.rc new file mode 100644 index 0000000..6d4b913 --- /dev/null +++ b/.config/maildirproc/purdue.rc @@ -0,0 +1,191 @@ +# -*- mode: python; indent-tabs-mode: t -*- + +import os +import subprocess + +processor.maildir_base = "~/Maildir.purdue" +processor.auto_reload_rcfile = True +processor.logfile = os.getenv('XDG_CACHE_HOME', "~/.cache")+"/maildirproc/purdue.log" + +def is_to_or_from(mail,address): + """ + Return true if [mail] is to or from an address that contains [address]. + """ + return ( + mail["From"].contains(address) + or mail.target.contains(address)) +def is_to_or_from_re(mail,address): + """ + Return true if [mail] is to or from an address that matches the + regex [address]. + """ + return ( + mail["From"].matches(address) + or mail.target.matches(address)) + +def piazza_topic(mail, topic): + return ( + is_to_or_from(mail, topic+" on Piazza") + or mail["Subject"].contains(topic+" on Piazza")) + +def my_filters(mail): + # Generic stuff ######################################################## + + if ( + False + or mail["Subject"].contains("[PASE]") + or is_to_or_from(mail,"Purduealumni@purdue.edu") + or is_to_or_from(mail,"pase@purdue.edu") + ): + mail.move("INBOX.crap.PASE") + return + + if mail["Subject"].contains("[PLUG]"): + mail.move("INBOX.crap.PLUG") + return + + if mail["From"].matches(".*bursar.*@purdue\.edu"): + mail.move("INBOX.tuition") + return + + if mail["From"].contains("mailhub-admin@purdue.edu"): + mail.move("INBOX.crap.mailhub-admin") + return + + if mail["From"].matches("pmx-.*@purdue.edu"): + mail.move("INBOX.crap.spam") + return + + if is_to_or_from(mail,"linkedin.com"): + mail.move("INBOX.crap.LinkedIn") + return + + if is_to_or_from(mail,"follet.com"): + mail.move("INBOX.Follet") + return + + if ( + False + or is_to_or_from(mail,"@edrtrust.com") + or is_to_or_from(mail,"@propertysolutions.com") + or is_to_or_from(mail,"collegestationapartments@gmail.com") + or is_to_or_from_re(mail,"collegestationca\..*@gmail.com") + or is_to_or_from(mail, "@duke-energy.com") + ): + mail.move("INBOX.housing.CollegeStation") + return + + if mail["From"].matches("facebook(|mail)\.com"): + mail.move("INBOX.crap.Facebook") + return + + if ( + False + or is_to_or_from(mail,"@cable.comcast.com") + or is_to_or_from(mail,"@apexsystemsinc.com") + ): + mail.move("INBOX.work.Comcast") + return + + if ( + False + or mail["Subject"].contains("[CS Opportunity Update]") + or mail["Subject"].contains("[CS Majors]") + ): + mail.move("INBOX.crap.CS") + return + if (mail["From"].contains("shumakl@cs.purdue.edu") and mail["Subject"].matches("^cron:")): + mail.move("INBOX.crap.cron") + return + + # Fall 2012 ############################################################ + + if mail["Subject"].contains("Fall-2012-SCI-21000-001:"): + mail.move("INBOX.classes.2012-2.SCI210") + if mail["Subject"].contains("fall-2012-cs-18000"): + mail.move("INBOX.classes.2012-2.CS180") + return + if piazza_topic(mail, "CS 18000"): + mail.move("INBOX.classes.2012-2.CS180.Piazza") + return + if mail["Subject"].contains("Fall-2012-SOC-10000"): + mail.move("INBOX.classes.2012-2.SOC100") + return + + # Spring 2013 ########################################################## + + if mail["Subject"].contains("[CS240] Submission result for"): + mail.move("INBOX.classes.2013-1.CS240.autograder") + return + if mail["Subject"].contains("[CS240]") or mail["Subject"].contains("Spring-2013-CS-24000"): + mail.move("INBOX.classes.2013-1.CS240") + return + if piazza_topic(mail, "CS 240"): + mail.move("INBOX.classes.2013-1.CS240.Piazza") + return + if mail["Subject"].matches(".*(PHYS|CHIP)\s*220.*") or is_to_or_from(mail,"srdas@purdue.edu"): + mail.move("INBOX.classes.2013-1.PHYS220") + return + if mail["Subject"].contains("Spring-2013-SOC-22000"): + mail.move("INBOX.classes.2013-1.SOC220") + return + + # Fall 2013 ############################################################ + + if mail["Subject"].contains("Fall-2013-CS-25000"): + mail.move("INBOX.classes.2013-2.CS250") + return + if piazza_topic(mail, "CS 250") or piazza_topic(mail, "CS 250-FALL2013"): + mail.move("INBOX.classes.2013-2.CS250.Piazza") + return + if mail["Subject"].contains("Fall-2013-CS-25100"): + mail.move("INBOX.classes.2013-2.CS251") + return + if piazza_topic(mail, "CS 251"): + mail.move("INBOX.classes.2013-2.CS251.Piazza") + return + if mail["Subject"].contains("Fall-2013-SPAN-10100"): + mail.move("INBOX.classes.2013-2.SPAN101") + return + if mail["Subject"].contains("Fall-2013-MA-26100"): + mail.move("INBOX.classes.2013-2.MA261") + return + if mail["Subject"].contains("Fall-2013-MA-26500"): + mail.move("INBOX.classes.2013-2.MA265") + return + + # Spring 2014 ########################################################## + + # COM217 + if mail["Subject"].contains("Spring-2014-COM-21700-004"): + mail.move("INBOX.classes.2014-1.COM217") + return + if mail["From"].contains("mixable") and mail["Subject"].matches("^COM 21700"): + mail.move("INBOX.classes.2014-1.COM217.Mixable") + return + # CS252 + if piazza_topic(mail, "CS 25200"): + mail.move("INBOX.classes.2014-1.CS252.Piazza") + return + # CS307 + if is_to_or_from(mail, "dunsmore@purdue.edu") or mail["Subject"].contains("Spring-2014-CS-30700-LE1"): + mail.move("INBOX.classes.2014-1.CS307") + return + # SPAN102 + if mail["Subject"].contains("spring-2014-span-102"): + mail.move("INBOX.classes.2014-1.SPAN102") + return + # STAT350 + if is_to_or_from(mail, "ssellke@purdue.edu"): + mail.move("INBOX.classes.2014-1.STAT350") + return + if piazza_topic(mail, "STAT 35000 (SELLKE)"): + mail.move("INBOX.classes.2014-1.STAT350.Piazza") + return + +handle_mapping = { + "INBOX": my_filters, + } +processor.maildirs = handle_mapping.keys() +for mail in processor: + handle_mapping[mail.maildir](mail) |