Example #1
0
  def run_processors(self, loader, all_processors, matching_processors, shows):
    setup  = ProcessorSetup(loader, all_processors, settings.SHOW_PROCESSOR_SETTINGS, restrict_to = matching_processors)

    runner = setup.runner()
    
    init_logging('processing', datetime.now())

    for show in shows:      
      runner.process(show)
Example #2
0
  def run_processors(self, loader, all_processors, matching_processors, artists):
    setup  = ProcessorSetup(loader, all_processors, settings.ARTIST_PROCESSOR_SETTINGS, restrict_to = matching_processors)

    runner = setup.runner()
    
    init_logging('processing', datetime.now())

    for artist in artists:      
      runner.process(artist)
Example #3
0
    def load_from_parsers(self, library, parsers, no_processing):
      parse_run_id = datetime.now()

      init_logging('parsing', parse_run_id)

      resource_extractor = ResourceExtractorManager(library.resource_extractors())

      loader = ShowLoader()

      for parser_class in parsers:
        start_time = datetime.now()

        logging.info(u'Starting parse for %s' % parser_class.id())
        
        num_new, num_invalid = 0, 0
        error = None
        shows = None
        
        try:
          parser_settings = settings.SHOW_PARSER_SETTINGS.get(parser_class.id(), {})

          parser = parser_class(parser_settings, resource_extractor)

          num_new, num_invalid, shows = loader.load_shows(parser)
        except Exception, e:
          logging.exception(u'Unable to parse %s: %s' % (parser_class.id(), e))

        end_time = datetime.now()
        
        stat, created = ParserStat.objects.get_or_create(parser_id = parser_class.id(), defaults = {'parser_id': parser_class.id()})
        
        run_info = {
          'group_start_time':  parse_run_id,
          'start_time':        start_time,
          'end_time':          end_time,
          'num_valid_shows':   num_new,
          'num_invalid_shows': num_invalid,
          'error_message':     error
        }
        
        if not stat.parse_history:
          # FIXME, shouldn't mongoengine handle this?
          stat.parse_history = []
        stat.parse_history.append(ParseRun(**run_info))
                
        stat.save()
        
        if shows and not no_processing:
          self.process_shows(library, shows)