Ticket #3517: trac-cia.diff
| File trac-cia.diff, 2.2 KB (added by wichert@…, 2 years ago) |
|---|
-
trac/cia.py
1 import xmlrpclib 2 3 class CIA: 4 def __init__(self, project, server="http://cia.navi.cx", module="Issue tracker"): 5 self.project=project 6 self.module=module 7 self.server=xmlrpclib.ServerProxy(server) 8 9 10 def message(self, ticket, author, message): 11 ticket=" #%s" % ticket 12 generator="<generator><name>CIA Trac plugin</name><version>0.1</version></generator>" 13 source="<source><project>%s</project><module>%s</module></source>" % \ 14 (self.project, self.module) 15 body="<body><commit><revision>%s</revision><author>%s</author><log>%s</log></commit></body>" % \ 16 (ticket, author, message) 17 18 return "<message>"+generator+source+body+"</message>" 19 20 21 def __call__(self, ticket, author, message): 22 body=self.message(ticket, author, message) 23 self.server.hub.deliver(body) 24 25 -
trac/Notify.py
24 24 import time 25 25 import smtplib 26 26 27 import cia 27 28 28 29 class Notify: 29 30 """Generic notification class for Trac. Subclass this to implement … … 84 85 if email: 85 86 self.email_map[username] = email 86 87 88 def send_to_cia(self): 89 if not self.newticket: 90 return 91 92 project = self.config.get('notification', 'cia_project') 93 server = self.config.get('notification', 'cia_server') 94 95 if project is None or server is None: 96 return 97 98 c = cia.CIA(project=project, server=server) 99 c(self.ticket.id, self.hdf["ticket.reporter"], 100 "[%s] %s" % (self.hdf["ticket.component"], self.hdf["ticket.summary"])) 101 102 87 103 def notify(self, resid, subject): 88 104 self.subject = subject 89 105 106 if self.config.getbool("notification", "send_to_cia"): 107 self.send_to_cia() 108 90 109 if not self.config.getbool('notification', 'smtp_enabled'): 91 110 return 92 111 self.smtp_server = self.config.get('notification', 'smtp_server')
