Changeset 262 for trunk/email2trac.py.in
- Timestamp:
- 04/08/09 16:47:40 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/email2trac.py.in
r260 r262 525 525 Transfrom a str of the form [<key>=<value>]+ to dict[<key>] = <value> 526 526 """ 527 # Skip the last ':' character 528 # 529 fields = string.split(str[:-1], ',') 527 528 fields = string.split(str, ',') 530 529 531 530 result = dict() 532 531 for field in fields: 533 532 try: 534 index, value = string.split(field, '=')533 index, value = string.split(field, '=') 535 534 536 535 # We can not change the description of a ticket via the subject … … 619 618 try: 620 619 id, keywords = string.split(id, '?') 620 621 # Skip the last ':' character 622 # 623 keywords = keywords[:-1] 621 624 update_fields = self.str_to_dict(keywords) 622 625 … … 766 769 767 770 768 def new_ticket(self, msg, s pam):771 def new_ticket(self, msg, subject, spam, set_fields = None): 769 772 """ 770 773 Create a new ticket … … 787 790 tkt['summary'] = u'(No subject)' 788 791 else: 789 tkt['summary'] = self.email_to_unicode( msg['Subject'])792 tkt['summary'] = self.email_to_unicode(subject) 790 793 791 794 self.set_reply_fields(tkt, msg) 795 796 if set_fields: 797 rest, keywords = string.split(set_fields, '?') 798 799 if keywords: 800 update_fields = self.str_to_dict(keywords) 801 self.update_ticket_fields(tkt, update_fields) 792 802 793 803 # produce e-mail like header … … 936 946 self.notification = 0 937 947 938 print self.get_config('components', 'tracext.google.ads.*')939 940 948 # Check if FullBlogPlugin is installed 941 949 # … … 956 964 TICKET_RE = re.compile(r""" 957 965 (?P<blog>blog:(?P<blog_id>\w*)) 958 |(?P<ticket_id>[#][\d]+:) 959 |(?P<ticket_fields>[#][\d]+\?.*?:) 966 |(?P<new_fields>[#][?].*) 967 |(?P<reply>[#][\d]+:) 968 |(?P<reply_fields>[#][\d]+\?.*?:) 960 969 """, re.VERBOSE) 961 970 … … 968 977 # update ticket + fields 969 978 # 970 if result.group(' ticket_fields') and self.TICKET_UPDATE:971 self.ticket_update(m, result.group(' ticket_fields'), spam_msg)979 if result.group('reply_fields') and self.TICKET_UPDATE: 980 self.ticket_update(m, result.group('reply_fields'), spam_msg) 972 981 973 982 # Update ticket 974 983 # 975 elif result.group('ticket_id') and self.TICKET_UPDATE: 976 self.ticket_update(m, result.group('ticket_id'), spam_msg) 984 elif result.group('reply') and self.TICKET_UPDATE: 985 self.ticket_update(m, result.group('reply'), spam_msg) 986 987 # New ticket + fields 988 # 989 elif result.group('new_fields'): 990 self.new_ticket(m, subject[:result.start('new_fields')], spam_msg, result.group('new_fields')) 977 991 978 992 # Create ticket 979 993 # 980 994 else: 981 self.new_ticket(m, s pam_msg)995 self.new_ticket(m, subject, spam_msg) 982 996 983 997 def strip_signature(self, text):
Note: See TracChangeset
for help on using the changeset viewer.