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 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]
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]
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]
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)
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)
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)
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 ] )
def _init_producer(): return operations.initialize_processor( name = MODULE_NAME + '_producer', default_inputs = [], default_outputs = [ AssetClass.DOCUMENT, 'test_data' ], default_accepted_mime_types = [] )