- Timestamp:
- 05/29/08 15:51:21 (16 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ChangeLog
r203 r204 22 22 closes request #55 23 23 24 email2trac.conf use same format as trac.ini, eg email2trac.conf: 25 [project] 26 default_component : test 27 28 the ticket_prefix can be overriden by the commandline option: 29 * -t,--ticket_prefix <value> 30 31 The feature can be used to have different settings for different 32 email aliases 33 34 Requested by: greg dot deakyne at etapestry dot com 35 Implemented by: Bas van der Vlies 36 37 38 * Fixed a bug in ticket_update. It failed when project did not have 39 ticket component field, closes bug #62 40 Reported by: gernot dot hillier add siemens dot com 41 Fixed by: Bas van der Vlies 42 24 43 * run_email2trac.c: 25 44 - can no longer segfault after a failed malloc. -
trunk/debian/changelog
r195 r204 1 email2trac (0.20-1) stable; urgency=low 2 3 * New version, see Changelog 4 5 -- root <root@rc.sara.nl> Tue, 27 May 2008 23:12:54 +0200 6 1 7 email2trac (0.13.0-1) stable; urgency=low 2 8 -
trunk/email2trac.py.in
r202 r204 107 107 trac_default_version = '0.10' 108 108 m = None 109 DRY_RUN = False110 111 112 109 113 110 # A UTC class needed for trac version 0.11, added by … … 133 130 comment = '> ' 134 131 135 def __init__(self, env, parameters, version ):132 def __init__(self, env, parameters, version, dry_run): 136 133 self.env = env 137 134 … … 147 144 148 145 self.VERSION = version 146 self.DRY_RUN = dry_run 147 149 148 self.get_config = self.env.config.get 150 149 … … 260 259 print 'This message is a SPAM. Automatic ticket insertion refused (SPAM level > %d' % self.SPAM_LEVEL 261 260 262 return True261 return 'drop' 263 262 264 263 elif spam: 265 264 266 return 'Spam' 267 268 else: 269 270 return self.get_config('ticket', 'default_component')265 return 'Spam' 266 267 else: 268 269 return False 271 270 272 271 … … 530 529 print 'ticket_field\t %s = %s' %(field, ticket[field]) 531 530 532 def ticket_update(self, m ):531 def ticket_update(self, m, spam): 533 532 """ 534 533 If the current email is a reply to an existing ticket, this function … … 536 535 creating a new one. 537 536 """ 538 global DRY_RUN539 537 540 538 if not m['Subject']: … … 609 607 str = self.attachments(m, tkt) 610 608 611 if self.notification :609 if self.notification and not spam: 612 610 self.notify(tkt, False, when) 613 611 … … 654 652 655 653 656 def new_ticket(self, msg ):654 def new_ticket(self, msg, spam): 657 655 """ 658 656 Create a new ticket … … 673 671 # Old style setting for component, will be removed 674 672 # 675 if settings.has_key('component'): 673 if spam: 674 tkt['component'] = 'Spam' 675 676 elif settings.has_key('component'): 676 677 tkt['component'] = settings['component'] 677 678 … … 700 701 when = datetime.now(utc) 701 702 702 if DRY_RUN:703 if self.DRY_RUN: 703 704 ticket_id = 'DRY_RUN' 704 705 else: … … 725 726 726 727 if changed: 727 if DRY_RUN:728 if self.DRY_RUN: 728 729 print 'DRY_RUN: tkt.save_changes(self.author, comment)' 729 730 else: … … 732 733 733 734 if self.notification: 734 if DRY_RUN:735 if self.DRY_RUN: 735 736 print 'DRY_RUN: self.notify(tkt, True)' 736 737 else: 737 self.notify(tkt, True) 738 if not spam: 739 self.notify(tkt, True) 738 740 #self.notify(tkt, False) 739 741 … … 757 759 return False 758 760 759 # If component is true then we drop the message dropmessage760 # 761 if self.spam(m) == True:761 # If drop the message 762 # 763 if self.spam(m) == 'drop': 762 764 return False 763 765 766 elif self.spam(m) == 'spam': 767 spam_msg = True 768 769 else: 770 spam_msg = False 764 771 765 772 if self.get_config('notification', 'smtp_enabled') in ['true']: … … 771 778 # 772 779 if self.TICKET_UPDATE > 0: 773 if self.ticket_update(m ):780 if self.ticket_update(m, spam_msg): 774 781 return True 775 782 776 self.new_ticket(m )783 self.new_ticket(m, spam_msg) 777 784 778 785 def strip_signature(self, text): … … 905 912 A wrapper for the TRAC notify function. So we can use templates 906 913 """ 907 if tkt['component'] == 'Spam':908 return909 910 914 try: 911 915 # create false {abs_}href properties, to trick Notify() … … 1097 1101 # Default config file 1098 1102 # 1099 global DRY_RUN1100 1101 1103 configfile = '@email2trac_conf@' 1102 1104 project = '' 1103 1105 component = '' 1104 1106 ticket_prefix = 'default' 1107 dry_run = None 1105 1108 1106 1109 ENABLE_SYSLOG = 0 1110 1107 1111 1108 1112 SHORT_OPT = 'chf:np:t:' … … 1126 1130 configfile = value 1127 1131 elif opt in ['-n', '--dry-run']: 1128 DRY_RUN= True1132 dry_run = True 1129 1133 elif opt in ['-p', '--project']: 1130 1134 project_name = value … … 1195 1199 1196 1200 env = Environment(settings['project'], create=0) 1197 tktparser = TicketEmailParser(env, settings, float(version) )1201 tktparser = TicketEmailParser(env, settings, float(version), dry_run) 1198 1202 tktparser.parse(sys.stdin) 1199 1203
Note: See TracChangeset
for help on using the changeset viewer.