Show
Ignore:
Timestamp:
05/02/09 13:38:19 (3 years ago)
Author:
Gartersnake Server <gartersnake@…>
Children:
4bceacf6b979775083c8623c2906a66e95eefe48
Parents:
935fbfb3a362aa24429eff491679842cfb8feb81
git-committer:
Gartersnake Server <gartersnake@gartersnake.precisionconversions.com> / 2009-05-02T13:38:19Z-0700
Message:

Restructured file layout, converted to 'resourcetotrac'

File:
1 edited

Legend:

Unmodified
Added
Removed
  • resourcetotrac/resourcetotrac/script.py

    r935fbfb ref235ae  
    1919import daemonize 
    2020from trac.env import Environment 
    21 from trac.core import Component 
     21from trac.core import Component, ExtensionPoint 
    2222from trac.config import OrderedExtensionsOption 
    2323 
    2424# Local imports 
    25 from emailtoticket.api import IEmailStore 
    26 from emailtoticket.util import EmailParser 
     25from resourcetotrac.api import IDataSource, IResourceSubmitter 
    2726 
    2827 
     
    3029 
    3130 
    32 __all__ = ['EmailToTicketConfig'] 
     31__all__ = ['ResourceSubmission'] 
    3332 
    3433 
    35 class EmailTicketSubmission(Component): 
     34class ResourceSubmission(Component): 
    3635 
    3736    implemnts(IResourceSubmitter) 
    3837 
    39     email_stores = OrderedExtensionsOption('email2ticket', 'stores',  
    40                                            IEmailStore, include_missing=False, 
    41                                            doc="List of enabled email stores") 
     38    data_sources = OrderedExtensionsOption('resource2trac', 'sources',  
     39                                           IDataSource, include_missing=False, 
     40                                           doc="List of enabled data sources") 
    4241 
    43     archive = BoolOption('email2ticket', 'archive', True, 
    44                          doc="Whether or not to archive the processed emails") 
     42    resource_submitters = ExtensionPoint(IResourceSubmitter) 
    4543 
    46     def submit_ticket(self, email): 
    47         """ Rape the email and submit/update a ticket """ 
    48  
    49         parser = EmailParser(self.env) 
    50         subject = parser.get_subject(email)email['Subject'].strip() 
    51         author_email = parseaddr(email['From'])[1] 
    52         update = subject[:3].lower() == 're:' 
    53         if update: 
    54             subject = subject[3:].strip() 
    55          
     44    archive = BoolOption('resource2trac', 'archive', True, 
     45                         doc="Whether or not to archive the processed messages") 
    5646 
    5747 
    58     def process_tickets(self): 
    59         self.parser 
    60         for store in self.email_stores: 
    61             for id, email in store.get_email(): 
     48    def process_resources(self): 
     49        for src in self.data_sources: 
     50            for id, msg in src.get_message(): 
    6251                try: 
    63                     info = self.submit_ticket(email) 
     52                    resource_type = msg.get_type() 
     53                    for submitter in self.resource_submitters(): 
     54                        if submitter.match_resource_type(resource_type): 
     55                            break 
     56                        continue 
     57                    submitter.submit_resource(resource_type, msg) 
    6458                    if self.archive: 
    65                         store.archive_email(id) 
    66                     store.delete_email(id) 
     59                        src.archive_message(id) 
     60                    src.delete_message(id) 
    6761                except: 
    68                     self.log.debug('Unable to submit the ticket') 
    69             store.cleanup() 
     62                    self.log.debug('Unable to submit the resource') 
     63            src.cleanup() 
    7064            continue 
    71              
    72  
    7365 
    7466 
     
    10395def main(argv): 
    10496    opts = doArgs(argv) 
    105     emailticket = EmailTicketSubmission(opts.env)  
     97    emailticket = ResourceSubmission(opts.env)  
    10698    emailticket.process_tickets() 
    10799    return 0 
Note: See TracChangeset for help on using the changeset viewer.