diff --git a/autoProcess/autoProcessTV.py b/autoProcess/autoProcessTV.py index 3daeeaeb..3b2c203f 100644 --- a/autoProcess/autoProcessTV.py +++ b/autoProcess/autoProcessTV.py @@ -22,6 +22,7 @@ import urllib import os import ConfigParser import logging +import shutil import Transcoder from nzbToMediaEnv import * @@ -49,6 +50,14 @@ class AuthURLOpener(urllib.FancyURLopener): return urllib.FancyURLopener.open(self, url) +def delete(dirName): + Logger.info("Deleting failed files and folder %s", dirName) + try: + shutil.rmtree(dirName) + except e: + Logger.error("Unable to delete folder %s due to: %s", dirName, str(e)) + + def processEpisode(dirName, nzbName=None, failed=False): status = int(failed) @@ -92,11 +101,18 @@ def processEpisode(dirName, nzbName=None, failed=False): failed_fork = int(config.get("SickBeard", "failed_fork")) except (ConfigParser.NoOptionError, ValueError): failed_fork = 0 + try: transcode = int(config.get("Transcoder", "transcode")) except (ConfigParser.NoOptionError, ValueError): transcode = 0 + try: + delete_failed = int(config.get("CouchPotato", "delete_failed")) + except (ConfigParser.NoOptionError, ValueError): + delete_failed = 0 + + process_all_exceptions(nzbName.lower(), dirName) @@ -134,6 +150,8 @@ def processEpisode(dirName, nzbName=None, failed=False): Logger.info("The download succeeded. Sending process request to SickBeard") else: Logger.info("The download failed. Nothing to process") + if delete_failed and not dirName in ['sys.argv[0]','/','']: + delete(dirName) return 0 # Success (as far as this script is concerned) if status == 0 and transcode == 1: # only transcode successful downlaods @@ -163,4 +181,6 @@ def processEpisode(dirName, nzbName=None, failed=False): result = urlObj.readlines() for line in result: Logger.info("%s", line.rstrip()) + if status != 0 and delete_failed and not dirName in ['sys.argv[0]','/','']: + delete(dirName) return 0 # Success diff --git a/autoProcessMedia.cfg.sample b/autoProcessMedia.cfg.sample index 1a9d367c..99746e93 100644 --- a/autoProcessMedia.cfg.sample +++ b/autoProcessMedia.cfg.sample @@ -31,6 +31,7 @@ web_root = ssl = 0 watch_dir = failed_fork = 0 +delete_failed = 0 [HeadPhones] diff --git a/nzbget-postprocessing-files/windows-builder/autoProcessMedia.cfg b/nzbget-postprocessing-files/windows-builder/autoProcessMedia.cfg index 7f8ed985..a16989d1 100644 --- a/nzbget-postprocessing-files/windows-builder/autoProcessMedia.cfg +++ b/nzbget-postprocessing-files/windows-builder/autoProcessMedia.cfg @@ -21,6 +21,7 @@ web_root = ssl = 0 watch_dir = C:\TV\new failed_fork = 0 +delete_failed = 0 [HeadPhones] hpCategory = music