Merge branch 'master' of /home/git/platal
[platal.git] / upgrade / 0.9.16 / upgrade_lists.py
CommitLineData
cc44d7f5
FB
1#!/usr/bin/python
2
3import sys
4sys.path.append('/usr/lib/mailman/bin')
5import paths
6from Mailman import MailList
7from Mailman import Utils
8from Mailman import mm_cfg
9
10def get_bogo_level(mlist):
11 """ Retreive the old style bogo level """
12 try:
13 if mlist.header_filter_rules == []:
14 return 0
15 try:
16 action = mlist.header_filter_rules[1][1]
17 return 2
18 except:
19 action = mlist.header_filter_rules[0][1]
20 if action == mm_cfg.HOLD:
21 return 1
22 elif action == mm_cfg.DISCARD:
23 return 3
24 except:
25 return 0
26
27def set_bogo_level(mlist, level):
28 """ Convert bogo level to the new level structure """
29 if level == 0:
30 return
31 hfr = []
32 if level == 1:
bb2dae30 33 hfr.append(('X-Spam-Flag: Unsure, tests=bogofilter', mm_cfg.HOLD, False))
cc44d7f5
FB
34 hfr.append(('X-Spam-Flag: Yes, tests=bogofilter', mm_cfg.HOLD, False))
35 elif level == 2:
bb2dae30 36 hfr.append(('X-Spam-Flag: Unsure, tests=bogofilter', mm_cfg.HOLD, False))
cc44d7f5
FB
37 hfr.append(('X-Spam-Flag: Yes, tests=bogofilter, spamicity=(0\.999999|1\.000000)', mm_cfg.DISCARD, False))
38 hfr.append(('X-Spam-Flag: Yes, tests=bogofilter', mm_cfg.HOLD, False))
39 elif level == 3:
bb2dae30 40 hfr.append(('X-Spam-Flag: Unsure, tests=bogofilter', mm_cfg.HOLD, False))
cc44d7f5
FB
41 hfr.append(('X-Spam-Flag: Yes, tests=bogofilter', mm_cfg.DISCARD, False))
42 mlist.Lock()
43 mlist.header_filter_rules = hfr
44 mlist.Save()
45 mlist.Unlock()
46
47
48names = Utils.list_names()
49names.sort()
50for name in names:
51 mlist = MailList.MailList(name, lock=0)
52 set_bogo_level(mlist, get_bogo_level(mlist))
53