def _process_release_name(self): """Parse the release name for a show title and episode(s).""" release_name = naming.determine_release_name(self.dir_name, self.resource) if not release_name: self.log(logger.WARNING, 'Warning: unable to find a valid release name.') raise FailedPostProcessingFailedException() try: parse_result = NameParser().parse(release_name) except (InvalidNameException, InvalidShowException): self.log(logger.WARNING, 'Not enough information to parse release name into a valid show. ' 'Consider adding scene exceptions or improve naming for: {release}'.format (release=release_name)) raise FailedPostProcessingFailedException() self.log(logger.DEBUG, 'Parsed info: {result}'.format(result=parse_result)) segment = [] if not parse_result.episode_numbers: # Get all episode objects from that season self.log(logger.DEBUG, 'Detected as season pack: {release}'.format(release=release_name)) segment.extend(parse_result.series.get_all_episodes(parse_result.season_number)) else: self.log(logger.DEBUG, 'Detected as single/multi episode: {release}'.format(release=release_name)) for episode in parse_result.episode_numbers: segment.append(parse_result.series.get_episode(parse_result.season_number, episode)) if segment: self.log(logger.DEBUG, 'Created segment of episodes [{segment}] from release: {release}'.format( segment=','.join(str(ep.episode) for ep in segment), release=release_name )) return segment
def process(self): """ Do the actual work. :return: True """ self.log( logger.INFO, u'Failed download detected: ({nzb}, {dir})'.format( nzb=self.nzb_name, dir=self.dir_name)) releaseName = naming.determine_release_name(self.dir_name, self.nzb_name) if not releaseName: self.log(logger.WARNING, u'Warning: unable to find a valid release name.') raise FailedPostProcessingFailedException() try: parse_result = NameParser().parse(releaseName) except (InvalidNameException, InvalidShowException): self.log( logger.WARNING, u'Not enough information to parse release name into a valid show. ' u'Consider adding scene exceptions or improve naming for: {release}' .format(release=releaseName)) raise FailedPostProcessingFailedException() self.log(logger.DEBUG, u'Parsed info: {result}'.format(result=parse_result)) segment = [] if not parse_result.episode_numbers: # Get all episode objects from that season self.log( logger.DEBUG, 'Detected as season pack: {release}'.format( release=releaseName)) segment.extend( parse_result.series.get_all_episodes( parse_result.season_number)) else: self.log( logger.DEBUG, u'Detected as single/multi episode: {release}'.format( release=releaseName)) for episode in parse_result.episode_numbers: segment.append( parse_result.series.get_episode(parse_result.season_number, episode)) if segment: self.log( logger.DEBUG, u'Adding this release to failed queue: {release}'.format( release=releaseName)) cur_failed_queue_item = FailedQueueItem(parse_result.series, segment) app.forced_search_queue_scheduler.action.add_item( cur_failed_queue_item) return True
def process(self): """ Do the actual work. :return: True """ self.log(logger.INFO, u'Failed download detected: ({nzb}, {dir})'.format(nzb=self.nzb_name, dir=self.dir_name)) releaseName = naming.determine_release_name(self.dir_name, self.nzb_name) if not releaseName: self.log(logger.WARNING, u'Warning: unable to find a valid release name.') raise FailedPostProcessingFailedException() try: parse_result = NameParser().parse(releaseName) except (InvalidNameException, InvalidShowException): self.log(logger.WARNING, u'Not enough information to parse release name into a valid show. ' u'Consider adding scene exceptions or improve naming for: {release}'.format (release=releaseName)) raise FailedPostProcessingFailedException() self.log(logger.DEBUG, u'Parsed info: {result}'.format(result=parse_result)) segment = [] if not parse_result.episode_numbers: # Get all episode objects from that season self.log(logger.DEBUG, 'Detected as season pack: {release}'.format(release=releaseName)) segment.extend(parse_result.series.get_all_episodes(parse_result.season_number)) else: self.log(logger.DEBUG, u'Detected as single/multi episode: {release}'.format(release=releaseName)) for episode in parse_result.episode_numbers: segment.append(parse_result.series.get_episode(parse_result.season_number, episode)) if segment: self.log(logger.DEBUG, u'Adding this release to failed queue: {release}'.format(release=releaseName)) cur_failed_queue_item = FailedQueueItem(parse_result.series, segment) app.forced_search_queue_scheduler.action.add_item(cur_failed_queue_item) return True