summaryrefslogtreecommitdiff
path: root/.config/maildirproc/purdue.rc
blob: 9a759f50fa66fc6f57a3d0b878d02a8fbe2cc6c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# -*- 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)