summaryrefslogtreecommitdiff
path: root/.maildirproc
diff options
context:
space:
mode:
Diffstat (limited to '.maildirproc')
l---------.maildirproc1
-rw-r--r--.maildirproc/default.rc362
-rw-r--r--.maildirproc/purdue.rc84
3 files changed, 1 insertions, 446 deletions
diff --git a/.maildirproc b/.maildirproc
new file mode 120000
index 0000000..fb36d1f
--- /dev/null
+++ b/.maildirproc
@@ -0,0 +1 @@
+.config/maildirproc \ No newline at end of file
diff --git a/.maildirproc/default.rc b/.maildirproc/default.rc
deleted file mode 100644
index ecea80f..0000000
--- a/.maildirproc/default.rc
+++ /dev/null
@@ -1,362 +0,0 @@
-# -*- mode: python; -*-
-
-import subprocess
-
-processor.maildir_base = "~/Maildir"
-processor.auto_reload_rcfile = True
-
-def is_to_or_from(mail,address):
- """
- Return true if [mail] is to or from an address that contains [address].
- """
- return (
- False
- or mail["From"].contains(address)
- or mail["Reply-To"].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 bogofilter_auto(mail):
- p = subprocess.Popen(
- ["bogofilter", "-u", "-v", "-I", mail.path],
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- (output, _) = p.communicate()
- processor.log("*** Bogofilter result: {0!r}".format(output.rstrip()))
- if p.returncode not in [0, 1, 2]:
- processor.log_error(
- "Error running bogofilter: Return code = {0!r}".format(
- p.returncode))
- return p.returncode
-
-def bogofilter_ham(mail):
- subprocess.call(["bogofilter", "-S", "-n", "-I", mail.path])
-
-def bogofilter_spam(mail):
- subprocess.call(["bogofilter", "-N", "-s", "-I", mail.path])
-
-def handle_incoming_spam_training(mail):
- bogofilter_spam(mail)
- mail.move(".Bulk Mail")
-
-def handle_incoming_ham_training(mail):
- bogofilter_ham(mail)
- handle_incoming_ham(mail)
-
-def handle_incoming_ham(mail):
- my_filters(mail)
-def handle_incoming_spam(mail):
- mail.move(".Bulk Mail")
-
-def handle_incoming_unknown(mail):
- # Filter spam
-
- spam = bogofilter_auto(mail)
- if spam == 0:
- handle_incoming_spam(mail)
- return
- elif spam == 1:
- handle_incoming_ham(mail)
- return
- elif spam == 2:
- # maybe spam
- return
- else:
- mail.move(".Error")
- return
-
-def my_filters(mail):
- # Sort mail from GNU mailing lists
- for list in [ 'bug-gsrc', 'bug-make', 'help-make', 'social', 'help-grub', 'bug-gnuzilla' ]:
- if (
- False
- or mail["List-Id"].matches(list+"\.gnu\.org")
- or mail["Subject"].contains(list)
- ):
- mail.move(".software."+list)
- return
-
- # Sort mail from other software mailing lists
- if (
- False
- or mail["List-Id"].matches("social-discuss\.gnu\.org")
- or mail["Subject"].contains("social-discuss")
- ):
- mail.move(".software.social")
- return
-
- if mail["List-Id"].matches("networkmanager-list\.gnome\.org"):
- mail.move(".software.networkmanager")
- return
-
- if mail["List-Id"].matches("maintenance.lists.parabolagnulinux.org"):
- mail.move(".software.parabola-maintenance")
- return
- if (
- False
- or mail["List-Id"].matches("parabolagnulinux.org")
- or is_to_or_from(mail, "parabolagnulinux.org")
- or is_to_or_from(mail, "kiwwwi.com.ar")
- or is_to_or_from(mail, "parabola.nu")
- ):
- mail.move(".software.parabola-dev")
- return
-
- if (mail["List-Id"].matches("pacman-dev.archlinux.org")):
- mail.move(".software.pacman-dev")
- return
-
- for subject_re in [
- "\[Stow-[^\]]*\].*",
- ]:
- if mail["Subject"].matches(subject_re):
- mail.move(".software")
- return
-
- # Sort mail from some social websites
- if mail["From"].matches("facebook(|mail)\.com"):
- mail.move(".Social.Facebook")
- return
-
- if (
- False
- or mail["From"].matches("identi\.ca")
- or mail["From"].matches("statusnet")
- ):
- mail.move(".Social.Identica")
- return
-
- if mail["From"].matches("twitter\.com"):
- mail.move(".Social.Twitter")
- return
-
- if mail["From"].matches("@xkcd\.com"):
- mail.move(".Social.xkcd")
- return
-
- # Sort mail related to Troop 276
- if (
- False
- or mail["List-Id"].contains("troopmailinglist.troop276.net")
- or is_to_or_from(mail,"t276_announcements@att.net")
- or mail["Subject"].matches("troop")
- or mail["Subject"].matches("merit\s*badge")
- or is_to_or_from(mail,"jsting@sbcglobal.net")
- or is_to_or_from(mail,"trdindy@comcast.net")
- or is_to_or_from(mail,"wjensen111@aol.com")
- or is_to_or_from(mail,"dhoyt@yourhomecompany.com")
- or is_to_or_from(mail,"salupo_vincent_p@lilly.com")
- or is_to_or_from(mail,"basu@maharjan.org")
- or is_to_or_from(mail,"muellerindy@yahoo.com")
- or is_to_or_from(mail,"solorzano.luis@rocketmail.com")
- or is_to_or_from(mail,"eldredmac@comcast.net")# MacDonell
- or is_to_or_from(mail,"mitchprather@sbcglobal.net")
- or is_to_or_from(mail,"oa_wap@yahoo.com")
- or is_to_or_from(mail,"mytroop.us")
- ):
- mail.move(".Troop276")
- return
-
- # Sort mail from misc people
- if mail["From"].matches("margieshu@sbcglobal\.net"):
- mail.move(".misc.Mom")
- return
-
- for address in [
- "justicejade10@aol.com",
- "parsonsjade@aol.com",
- "parsonstjade@gmail.com",
- "jadparso@umail.iu.edu",
- ]:
- if mail["From"].contains(address):
- mail.move(".misc.Jade")
- return
-
- for address in [
- "nintendo.com",
- "nintendo-news.com",
- ]:
- if mail["From"].contains(address):
- mail.move(".misc.Nintendo")
- return
-
- for address in [
- "@lpi.org",
- "@pearson.com",
- "CompTIA",
- ]:
- if mail["From"].contains(address):
- mail.move(".misc.CompTIA")
- return
-
- # Sort mail from FRC people
- for address in [
- "@ni.com",
- "@usfirst.org",
- "BBonahoom@stanleyworks.com",
- "allison.m.babcock@gmail.com",
- "bryanbonahoom@gmail.com",
- "cdewalt3@yahoo.com",
- "dave.nelson@ecolab.com",
- "dickaustin190@yahoo.com",
- "djnels1@comcast.net", # Dave and Julie Nelson
- "gamefreak207@gmail.com", # Brett Leedy
- "jason.zielke@gmail.com",
- "jeffreysmith@msdlt.k12.in.us",
- "sarahlittell@comcast.net",
- "silioso@gmail.com",
- "skiplittell@comcast.net",
- "tswilson4801@att.net",
- "wcxctrack829@aim.com", # Pat
- "william.walk@gmail.com",
- ]:
- if is_to_or_from(mail,address):
- mail.move(".School.Robotics")
- return
- for subject_re in [
- "FIRST",
- "robotics",
- "1024",
- "kil-?a-?bytes",
- ]:
- if mail["Subject"].matches(subject_re):
- mail.move(".School.Robotics")
- return
-
- # Sort mail from software people
- for address in [
- "gnu.org",
- "gnome.org",
- "eff.org",
- "gitorious.org",
- "sourceforge.com",
- "ietf.org",
- "kde.org",
- "trustees@core3.amsl.com",
- "esr@thyrsus.com",
- "canonical.org",
- "foocorp.net",
- "cnuk.org",
- "@archlinux.org",
- "@github.com",
- ]:
- if is_to_or_from(mail,address):
- mail.move(".software")
- return
-
-
- # Sort mail from the school newspaper
- if (
- False
- or is_to_or_from(mail, "@lnnorthstar.org")
- or is_to_or_from(mail, "lnnorthstar.org@tigertech.net")
- ):
- mail.move(".School.Newspaper")
- return
-
- # Sort mail from various employers/people who pay me
- if is_to_or_from(mail, "@precisepath.com"):
- mail.move(".Work.PrecisePath")
- return
-
- if is_to_or_from(mail,"susyphil@aol.com"):
- mail.move(".Work.PMCH")
-
- for address in [
- "d.farrar@comcast.net",
- "dfarrar@avacoustics.net",
- "@vmware.com",
- ]:
- if is_to_or_from(mail,address):
- mail.move(".Work.FAST")
- return
-
- # Sort misc newsletters
- if (
- False
- or mail["From"].contains("newsletter")
- or mail["From"].contains("auto@comicsbyemail.com")
- or mail["From"].contains("oreilly.com")
- or mail["Subject"].contains("newsletter")
- or mail["From"].contains("Info@mailing.jamendo.com")
- or mail["From"].contains("info@demandprogress.org")
- ):
- mail.move(".misc.Newsletters")
- return
-
- if (
- False
- or mail["From"].contains("@msdlt.k12.in.us")
- or mail["From"].contains("naviance.com")
- or is_to_or_from(mail,"ibwhite@comcast.net")
- or mail["Subject"].contains("IOA")
- or mail["From"].contains("nths.org")
- or mail["Subject"].contains("NTHS")
- or mail["Subject"].contains("National Technical Honor Society")
- or mail["Subject"].contains("NHS")
- or mail["Subject"].contains("National Honor Society")
- ):
- mail.move(".School")
- return
-
- # from college stuff
- if (
- False
- or mail["Subject"].contains("NYLF") # National Youth Leadership Conference
- or mail["Subject"].contains("NSHSS")
- ):
- mail.move(".College.Societies")
- return
- if (
- False
- #or mail["From"].contains(".edu")
- or mail["From"].contains("admissions@")
- #or mail["From"].contains("college")
- #or mail["From"].contains("university")
- or mail["Subject"].contains("college")
- # now we get to the BS
- or mail["From"].contains("@dreamitdoitindiana.com")
- or mail["From"].contains("@indianatechinfo.org")
- ):
- mail.move(".College")
- return
-
- if mail["From"].contains("@projectwonderful.com"):
- mail.move(".ProjectWonderful")
- return
-
- if (
- False
- or mail["From"].matches("@localhost")
- or mail["From"].matches("@[^,>]*\.local")
- or mail["From"].matches("@[^,>]*\.lukeshu\.ath\.cx")
- or mail["To"].matches("luke@")
- ):
- mail.move(".LocalSystems")
- return
- if (
- False
- or mail["Subject"].contains("password")
- or mail["Subject"].contains("account")
- ):
- mail.move(".misc.accounts")
- return
-
- mail.move(".Ham")
-
-handle_mapping = {
- ".": handle_incoming_unknown,
- ".spam-training": handle_incoming_spam_training,
- ".ham-training": handle_incoming_ham_training,
- #".Ham": handle_incoming_ham,
- }
-processor.maildirs = handle_mapping.keys()
-for mail in processor:
- handle_mapping[mail.maildir](mail)
diff --git a/.maildirproc/purdue.rc b/.maildirproc/purdue.rc
deleted file mode 100644
index 9a759f5..0000000
--- a/.maildirproc/purdue.rc
+++ /dev/null
@@ -1,84 +0,0 @@
-# -*- mode: python; -*-
-
-import subprocess
-
-processor.maildir_base = "~/Maildir.purdue"
-processor.auto_reload_rcfile = True
-
-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 mail["Subject"].contains("[PASE]"):
- mail.move("INBOX.PASE")
- return
-
- if mail["Subject"].contains("[PLUG]"):
- mail.move("INBOX.PLUG")
- return
-
- if is_to_or_from(mail,"linkedin.com"):
- mail.move("INBOX.LinkedIn")
- return
-
- if (
- False
- or mail["Subject"].contains("[CS Opportunity Update]")
- or mail["Subject"].contains("[CS Majors]")
- ):
- mail.move("INBOX.CS")
- 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]") 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"].contains("Spring-2013-CS-18200"):
- mail.move("INBOX.classes.2013-1.CS182")
- return
-
-handle_mapping = {
- "INBOX": my_filters,
- }
-processor.maildirs = handle_mapping.keys()
-for mail in processor:
- handle_mapping[mail.maildir](mail)