Changeset 41


Ignore:
Timestamp:
01/25/06 15:20:10 (18 years ago)
Author:
bas
Message:

EmailtoTracScript?:

email2trac.py.in:

  • Added TicketNotify? function (Kilian Cavalotti)
  • Unified importing of python trac modules
  • Revert changes to Spam control. It works as it used to be.


File:
1 edited

Legend:

Unmodified
Added
Removed
  • emailtotracscript/trunk/email2trac.py.in

    r40 r41  
    101101                self.VERSION = version
    102102                if self.VERSION > 0.8:
    103                         self.new_ticket = ticket.Ticket
    104103                        self.get_config = self.env.config.get
    105104                else:
    106                         self.new_ticket = Ticket.Ticket
    107105                        self.get_config = self.env.get_config
    108106
     
    147145
    148146                        if number >= self.SPAM_LEVEL:
    149                                 return number
    150 
    151                 return 0
     147                                return 'Spam'
     148
     149                return self.get_config('ticket', 'default_component')
    152150
    153151        def to_unicode(self, str):
     
    246244
    247245                self.db = self.env.get_db_cnx()
    248                 tkt = self.new_ticket(self.env)
     246                tkt = Ticket(self.env)
    249247                tkt['status'] = 'new'
    250248
     
    262260
    263261
    264                 if self.SPAM_LEVEL:
     262                if settings.has_key('component'):
     263                        tkt['component'] = settings['component']
     264                else:
    265265                        tkt['component'] = self.spam(msg)
    266                 elif settings.has_key('component'):
    267                         tkt['component'] = settings['component']
    268                 else:
    269                         tkt['component'] = self.get_config('ticket', 'default_component')
    270266
    271267                # Must make this an option or so, discard SPAM messages or save then
     
    279275                #
    280276                cursor = self.db.cursor()
    281                 sql = 'SELECT owner FROM component WHERE name=\'%s\'' % tkt['component']
     277                sql = "SELECT owner FROM component WHERE name='%s'" % tkt['component']
    282278                cursor.execute(sql)
    283279                tkt['owner'] = cursor.fetchone()[0]
     
    287283                if author:
    288284                        tkt['reporter'] = self.to_unicode(author)
    289                 else
     285                else:
    290286                        tkt['reporter'] = self.to_unicode(email_str)
    291287
     
    347343                #tkt.save_changes(self.db, author, "Lekker bezig")
    348344                #
     345
    349346                self.attachments(msg, tkt, author)
    350 
     347                if self.get_config('notification', 'smtp_enabled') in ['true']:
     348                        self.notify(tkt)
     349
     350        def notify(self, tkt):
     351                try:
     352                        # create false {abs_}href properties, to trick Notify()
     353                        #
     354                        self.env.abs_href = Href(self.get_config('project', 'url'))
     355                        self.env.href = Href(self.get_config('project', 'url'))
     356
     357                        tn = TicketNotifyEmail(self.env)
     358                        tn.notify(tkt, newticket=True)
     359
     360                except Exception, e:
     361                        print "TD: Failure sending notification on creation of ticket #%s: %s" % (tkt.id, e)
    351362
    352363        def mail_line(self, str):
     
    540551
    541552        if version > 0.8:
    542                 from trac import attachment, config, env, ticket
    543                 env = env.Environment(settings['project'], create=0)
    544                 ticket_mod = ticket
     553                from trac import attachment
     554                from trac.env import Environment
     555                from trac.ticket import Ticket
     556                from trac.Notify import TicketNotifyEmail
     557                from trac.web.href import Href
    545558        else:
    546                 from trac import Environment, Ticket
    547                 env = Environment.Environment(settings['project'], create=0)
    548                 ticket_mod = Ticket
    549                
     559                from trac.Environment import Environment
     560                from trac.Ticket import Ticket
     561                from trac.Notify import TicketNotifyEmail
     562                from trac.Href import Href
     563
     564        env = Environment(settings['project'], create=0)
    550565        tktparser = TicketEmailParser(env, settings, version)
    551566        tktparser.parse(sys.stdin)
Note: See TracChangeset for help on using the changeset viewer.