Example #1
0
def on_savemessage(accountname, username, message_file, flags, label):
    print 'ON_SAVEMESSAGE: account=%s message file=%s flags=%s' % (username, message_file, flags)

    MODULE_NAME     = 'mail_parser' # os.path.splitext(os.path.basename(__file__))[0]
    DEFAULT_INPUTS  = [ AssetClass.UPLOAD ]
    DEFAULT_OUTPUTS = [ AssetClass.MESSAGE_PART ]
    DEFAULT_ACCEPTED_MIME_TYPES = [ MimeType.MAIL ]

    owner = User.objects.get(username=username)

    processor = operations.initialize_processor(
        MODULE_NAME,
        DEFAULT_INPUTS,
        DEFAULT_OUTPUTS,
        DEFAULT_ACCEPTED_MIME_TYPES ) [0]
    new_item = operations.create_asset_from_file(
        file_name    = message_file,
        owner        = owner,
        producer     = processor,
        asset_class  = AssetClass.UPLOAD,
        child_number = 0,
        mime_type    = MimeType.MAIL )
    new_item.orig_file_name += ',ACCOUNT=%s' % accountname
    new_item.orig_file_name += ',LABEL=%s' % label
    new_item.orig_file_name += ',FLAGS='
    for f in flags:
        new_item.orig_file_name += ',' + f
    new_item.save()
    operations.publish_work_item(new_item)

    return
Example #2
0
def on_savemessage(accountname, username, message_file, flags, label):
    print 'ON_SAVEMESSAGE: account=%s message file=%s flags=%s' % (
        username, message_file, flags)

    MODULE_NAME = 'mail_parser'  # os.path.splitext(os.path.basename(__file__))[0]
    DEFAULT_INPUTS = [AssetClass.UPLOAD]
    DEFAULT_OUTPUTS = [AssetClass.MESSAGE_PART]
    DEFAULT_ACCEPTED_MIME_TYPES = [MimeType.MAIL]

    owner = User.objects.get(username=username)

    processor = operations.initialize_processor(MODULE_NAME, DEFAULT_INPUTS,
                                                DEFAULT_OUTPUTS,
                                                DEFAULT_ACCEPTED_MIME_TYPES)[0]
    new_item = operations.create_asset_from_file(file_name=message_file,
                                                 owner=owner,
                                                 producer=processor,
                                                 asset_class=AssetClass.UPLOAD,
                                                 child_number=0,
                                                 mime_type=MimeType.MAIL)
    new_item.orig_file_name += ',ACCOUNT=%s' % accountname
    new_item.orig_file_name += ',LABEL=%s' % label
    new_item.orig_file_name += ',FLAGS='
    for f in flags:
        new_item.orig_file_name += ',' + f
    new_item.save()
    operations.publish_work_item(new_item)

    return
    def _init_processor(self):
        MODULE_NAME = 'mail_parser'

        DEFAULT_INPUTS = [AssetClass.UPLOAD]
        DEFAULT_OUTPUTS = [AssetClass.MESSAGE_PART]
        DEFAULT_ACCEPTED_MIME_TYPES = [MimeType.MAIL]

        return operations.initialize_processor(MODULE_NAME, DEFAULT_INPUTS,
                                               DEFAULT_OUTPUTS,
                                               DEFAULT_ACCEPTED_MIME_TYPES)[0]
Example #4
0
 def _init_processor(self):
     MODULE_NAME     = 'mail_parser'
     
     DEFAULT_INPUTS  = [ AssetClass.UPLOAD ]
     DEFAULT_OUTPUTS = [ AssetClass.MESSAGE_PART ]
     DEFAULT_ACCEPTED_MIME_TYPES = [ MimeType.MAIL ]
 
     return operations.initialize_processor(
         MODULE_NAME,
         DEFAULT_INPUTS,
         DEFAULT_OUTPUTS,
         DEFAULT_ACCEPTED_MIME_TYPES ) [0]
Example #5
0
def init_processor(module):

    """ Private initialization function to get the processor object
        representing this service.

    """

    return operations.initialize_processor(
        module.__name__.rsplit('.', 1)[-1],
        module.DEFAULT_INPUTS,
        module.DEFAULT_OUTPUTS,
        module.DEFAULT_ACCEPTED_MIME_TYPES ) [0]
Example #6
0
def main():
    """ Program to import mail messages from files on disk """
    parser = optparse.OptionParser()

    parser.add_option(
        '-d',
        '--delete',
        action  ='store_true',
        default = False,
        help    = 'Delete each input file after successfully queing it' )

    parser.add_option(
        '-u',
        '--user',
        help    = 'The username, email, or openid of the owner' )

    options, file_name_list = parser.parse_args()

    if not options.user:
        parser.error('User is required')

    if len(file_name_list) == 0:
        parser.error('No files specified')

    try:
        user = models.User.objects.get( email = options.user )
    except models.User.DoesNotExist:
        user = models.User.objects.get( username = options.user )

    processor = operations.initialize_processor(
        MODULE_NAME,
        DEFAULT_INPUTS,
        DEFAULT_OUTPUTS,
        DEFAULT_ACCEPTED_MIME_TYPES ) [0]

    # pylint: disable-msg=W0702
    #   -> no exception type given
    for file_name in file_name_list:
        try:
            upload_file(processor, user, file_name)
        except:
            logging.exception('Failed to process %s' % file_name )
        else:
            if options.delete:
                os.remove(file_name)
Example #7
0
def main():
    """ Program to import mail messages from files on disk """
    parser = optparse.OptionParser()

    parser.add_option(
        '-d',
        '--delete',
        action='store_true',
        default=False,
        help='Delete each input file after successfully queing it')

    parser.add_option('-u',
                      '--user',
                      help='The username, email, or openid of the owner')

    options, file_name_list = parser.parse_args()

    if not options.user:
        parser.error('User is required')

    if len(file_name_list) == 0:
        parser.error('No files specified')

    try:
        user = models.User.objects.get(email=options.user)
    except models.User.DoesNotExist:
        user = models.User.objects.get(username=options.user)

    processor = operations.initialize_processor(MODULE_NAME, DEFAULT_INPUTS,
                                                DEFAULT_OUTPUTS,
                                                DEFAULT_ACCEPTED_MIME_TYPES)[0]

    # pylint: disable-msg=W0702
    #   -> no exception type given
    for file_name in file_name_list:
        try:
            upload_file(processor, user, file_name)
        except:
            logging.exception('Failed to process %s' % file_name)
        else:
            if options.delete:
                os.remove(file_name)
Example #8
0
def main():
    """ Program to import mail messages from files on disk """
    import optparse
    parser = optparse.OptionParser()

    parser.add_option(
        '-d',
        '--delete',
        action  ='store_true',
        default = False,
        help    = 'Delete each input file after successfully queing it' )
    parser.add_option(
        '-u',
        '--user')

    options, file_name_list = parser.parse_args()
    
    logging.info(options)
    
    owner = User.objects.get(username=options.user)
    
    processor = operations.initialize_processor(
        MODULE_NAME,
        DEFAULT_INPUTS,
        DEFAULT_OUTPUTS,
        DEFAULT_ACCEPTED_MIME_TYPES ) [0]

    # pylint: disable-msg=W0702
    #   -> no exception type given
    for file_name in file_name_list:
        try:
            new_items = process_mail(owner, processor, file_name)
            operations.publish_work_item(*new_items)
        except:
            logging.exception("Failed to process %s", file_name )
        else:
            if options.delete:
                os.remove(file_name)
Example #9
0
 def _init_consumer():
     return operations.initialize_processor(
         name                        = MODULE_NAME + '_consumer',
         default_inputs              = [AssetClass.DOCUMENT, 'test_data'],
         default_outputs             = [],
         default_accepted_mime_types = [ MimeType.TEXT, MimeType.BINARY ] )
Example #10
0
 def _init_producer():
     return operations.initialize_processor(
         name                        = MODULE_NAME + '_producer',
         default_inputs              = [],
         default_outputs             = [ AssetClass.DOCUMENT, 'test_data' ],
         default_accepted_mime_types = [] )