source: scripts/AshCommit.py

Last change on this file was 1603, checked in by Александър Шопов, 17 years ago

AshCommit.py: модул за обработка на входящи съобщения на mailman

File size: 3.0 KB
Line 
1import re
2from Mailman import Errors
3
4def process(mlist, msg, msgdata):
5
6 message_text=msg.as_string()
7 recepients = msg.get_all('To')
8
9 # GNOME
10 rGNOME=re.compile('/bg\\.po')
11 aGnome='svn-commits-list@gnome.org'
12
13 try:
14 i = recepients.index(aGnome)
15 # To GNOME, so check body
16 if None==rGNOME.search(message_text):
17 # Discard! Does not contain what we want
18 raise Errors.DiscardMessage('GNOME commit - not bg translation')
19 else:
20 # Set our message to approved
21 msgdata['approved'] = True
22 except ValueError:
23 # OK - not GNOME svn
24 pass
25
26 # KDE
27 rKDE=re.compile('/bg/(doc)?messages')
28 aKDE='kde-commits@kde.org'
29
30 try:
31 i = recepients.index(aKDE)
32 # To KDE, so check subject
33 if None==rKDE.search(msg.get('subject')):
34 # Discard! Does not contain what we want
35 raise Errors.DiscardMessage('KDE commit - not bg translation')
36 else:
37 # Set our message to approved
38 msgdata['approved'] = True
39 except ValueError:
40 # OK - not KDE svn
41 pass
42
43
44"""
45
46Put the handler in the pipeline before Moderate and set
47
48 msgdata['approved'] = True
49
50for those messages you want to accept.
51
52
53 f = open("/tmp/AshCommit.log", "a")
54
55 f.write("\n============================\n")
56
57 f.write("\nMLIST\n")
58 f.write("mlist.real_name: "+mlist.real_name)
59 f.write("\n")
60 f.write("mlist.internal_name(): "+mlist.internal_name())
61 f.write("\n")
62 f.write("mlist.GetListEmail(): " + mlist.GetListEmail())
63 f.write("\n")
64 f.write("mlist.GetRequestEmail(): "+ mlist.GetRequestEmail())
65
66 f.write("\nMSGDATA\n")
67 f.write("msgdata.get('sender'): " + msgdata.get('sender', "NONE"))
68 f.write("\n")
69 f.write("msgdata.get('original_sender'): " + msgdata.get('original_sender', "NONE"))
70 f.write("\n")
71 f.write("\nZZZZZ\n")
72 f.write("msgdata.get('origsubj'): " + msgdata.get('origsubj', "NONE"))
73 f.write("\n")
74 f.write("\nMORE \n")
75# f.write("msgdata.get('tolist'): " + msgdata.get('tolist', "NONE"))
76
77 f.write("\nMSG\n")
78 f.write("msg.get_sender(): " + msg.get_sender())
79 f.write("\n")
80 f.write("msg.get('subject'): "+ msg.get('subject', "NONE"))
81 f.write("\n")
82 f.write("msg.get_all('To'): "+ msg.get('To'))
83 recepients = msg.get('To')
84 try:
85 i = recepients.index('dict-notifications@fsa-bg.org')
86 f.write("\nIM AGO dict\n")
87 except ValueError:
88 f.write("\nNIAMA GO dict\n")
89
90 try:
91 i = recepients.index('DRANDRAN')
92 f.write("\nIM AGO DRANDRAN\n")
93 except ValueError:
94 f.write("\nNIAMA GO DRANDRAN\n")
95
96
97 f.write("\n!!!!!!!!!!as_string(False)!!!!!!!!!!!!!!\n")
98 f.write(msg.as_string(False))
99 f.write("\n@@@@@@@@@@as_string(True)@@@@@@@@@@@@@@\n")
100 f.write(msg.as_string(True))
101
102
103 f.write("\n\n\n\nTEST\n")
104 if None==r1.search(message_text):
105 f.write("\nNo match\n")
106 else:
107 f.write("\nYES MATCH\n")
108
109
110 f.close()
111"""
Note: See TracBrowser for help on using the repository browser.