more nzbget changes

This commit is contained in:
clinton-hall 2014-05-29 16:40:08 +09:30
parent 108fea700b
commit d3b495e4d8
3 changed files with 74 additions and 85 deletions

View file

@ -45,26 +45,24 @@ def is_sample(filePath, inputName, maxSampleSize, SampleIDs):
return True return True
# Return False if none of these were met. # Return False if none of these were met.
return False return False
if not os.environ.has_key('NZBOP_SCRIPTDIR'):
print "This script can only be called from NZBGet (11.0 or later)."
sys.exit(0)
if os.environ['NZBOP_VERSION'][0:5] < '11.0':
print "NZBGet Version %s is not supported. Please update NZBGet." % (str(os.environ['NZBOP_VERSION'][0:5]))
sys.exit(0)
# NZBGet V11+ print "Script triggered from NZBGet Version %s." % (str(os.environ['NZBOP_VERSION'][0:5]))
# Check if the script is called from nzbget 11.0 or later status = 0
if os.environ.has_key('NZBOP_SCRIPTDIR') and not os.environ['NZBOP_VERSION'][0:5] < '11.0': if os.environ.has_key('NZBPP_TOTALSTATUS'):
print "Script triggered from NZBGet (11.0 or later)." if not os.environ['NZBPP_TOTALSTATUS'] == 'SUCCESS':
print "Download failed with status %s." % (os.environ['NZBPP_STATUS']))
# Check nzbget.conf options status = 1
status = 0
if os.environ['NZBOP_UNPACK'] != 'yes':
print "Please enable option \"Unpack\" in nzbget configuration file, exiting."
sys.exit(nzbtomedia.NZBGET_POSTPROCESS_ERROR)
else:
# Check par status # Check par status
if os.environ['NZBPP_PARSTATUS'] == '3':
print "Par-check successful, but Par-repair disabled, exiting."
print "Please check your Par-repair settings for future downloads."
sys.exit(nzbtomedia.NZBGET_POSTPROCESS_NONE)
if os.environ['NZBPP_PARSTATUS'] == '1' or os.environ['NZBPP_PARSTATUS'] == '4': if os.environ['NZBPP_PARSTATUS'] == '1' or os.environ['NZBPP_PARSTATUS'] == '4':
print "Par-repair failed, setting status \"failed\"." print "Par-repair failed, setting status \"failed\"."
status = 1 status = 1
@ -86,33 +84,27 @@ if os.environ.has_key('NZBOP_SCRIPTDIR') and not os.environ['NZBOP_VERSION'][0:5
print "Par-check/repair disabled or no .par2 files found, and Unpack not required. Health is ok so handle as though download successful." print "Par-check/repair disabled or no .par2 files found, and Unpack not required. Health is ok so handle as though download successful."
print "Please check your Par-check/repair settings for future downloads." print "Please check your Par-check/repair settings for future downloads."
# Check if destination directory exists (important for reprocessing of history items) # Check if destination directory exists (important for reprocessing of history items)
if not os.path.isdir(os.environ['NZBPP_DIRECTORY']): if not os.path.isdir(os.environ['NZBPP_DIRECTORY']):
print "Nothing to post-process: destination directory", os.environ['NZBPP_DIRECTORY'], "doesn't exist. Setting status \"failed\"." print "Nothing to post-process: destination directory", os.environ['NZBPP_DIRECTORY'], "doesn't exist. Setting status \"failed\"."
status = 1 status = 1
# All checks done, now launching the script. # All checks done, now launching the script.
if status == 1:
sys.exit(nzbtomedia.NZBGET_POSTPROCESS_NONE)
if status == 1: mediaContainer = os.environ['NZBPO_MEDIAEXTENSIONS'].split(',')
sys.exit(nzbtomedia.NZBGET_POSTPROCESS_NONE) SampleIDs = os.environ['NZBPO_SAMPLEIDS'].split(',')
for dirpath, dirnames, filenames in os.walk(os.environ['NZBPP_DIRECTORY']):
mediaContainer = os.environ['NZBPO_MEDIAEXTENSIONS'].split(',') for file in filenames:
SampleIDs = os.environ['NZBPO_SAMPLEIDS'].split(',') filePath = os.path.join(dirpath, file)
for dirpath, dirnames, filenames in os.walk(os.environ['NZBPP_DIRECTORY']): fileName, fileExtension = os.path.splitext(file)
for file in filenames: if fileExtension in mediaContainer: # If the file is a video file
if is_sample(filePath, os.environ['NZBPP_NZBNAME'], os.environ['NZBPO_MAXSAMPLESIZE'], SampleIDs): # Ignore samples
filePath = os.path.join(dirpath, file) print "Deleting sample file: ", filePath
fileName, fileExtension = os.path.splitext(file) try:
os.unlink(filePath)
if fileExtension in mediaContainer: # If the file is a video file except:
if is_sample(filePath, os.environ['NZBPP_NZBNAME'], os.environ['NZBPO_MAXSAMPLESIZE'], SampleIDs): # Ignore samples print "Error: unable to delete file", filePath
print "Deleting sample file: ", filePath sys.exit(nzbtomedia.NZBGET_POSTPROCESS_ERROR)
try: sys.exit(nzbtomedia.NZBGET_POSTPROCESS_SUCCESS)
os.unlink(filePath)
except:
print "Error: unable to delete file", filePath
sys.exit(nzbtomedia.NZBGET_POSTPROCESS_ERROR)
sys.exit(nzbtomedia.NZBGET_POSTPROCESS_SUCCESS)
else:
print "This script can only be called from NZBGet (11.0 or later)."
sys.exit(0)

View file

@ -16,22 +16,23 @@ import os
import sys import sys
import nzbtomedia import nzbtomedia
if os.environ.has_key('NZBOP_SCRIPTDIR') and not os.environ['NZBOP_VERSION'][0:5] < '11.0': if not os.environ.has_key('NZBOP_SCRIPTDIR'):
print "Script triggered from NZBGet (11.0 or later)." print "This script can only be called from NZBGet (11.0 or later)."
sys.exit(0)
# Check nzbget.conf options if os.environ['NZBOP_VERSION'][0:5] < '11.0':
status = 0 print "NZBGet Version %s is not supported. Please update NZBGet." % (str(os.environ['NZBOP_VERSION'][0:5]))
sys.exit(0)
if os.environ['NZBOP_UNPACK'] != 'yes': print "Script triggered from NZBGet Version %s." % (str(os.environ['NZBOP_VERSION'][0:5]))
print "Please enable option \"Unpack\" in nzbget configuration file, exiting." status = 0
sys.exit(nzbtomedia.NZBGET_POSTPROCESS_ERROR) if os.environ.has_key('NZBPP_TOTALSTATUS'):
if not os.environ['NZBPP_TOTALSTATUS'] == 'SUCCESS':
print "Download failed with status %s." % (os.environ['NZBPP_STATUS']))
status = 1
else:
# Check par status # Check par status
if os.environ['NZBPP_PARSTATUS'] == '3':
print "Par-check successful, but Par-repair disabled, exiting."
print "Please check your Par-repair settings for future downloads."
sys.exit(nzbtomedia.NZBGET_POSTPROCESS_NONE)
if os.environ['NZBPP_PARSTATUS'] == '1' or os.environ['NZBPP_PARSTATUS'] == '4': if os.environ['NZBPP_PARSTATUS'] == '1' or os.environ['NZBPP_PARSTATUS'] == '4':
print "Par-repair failed, setting status \"failed\"." print "Par-repair failed, setting status \"failed\"."
status = 1 status = 1
@ -53,29 +54,24 @@ if os.environ.has_key('NZBOP_SCRIPTDIR') and not os.environ['NZBOP_VERSION'][0:5
print "Par-check/repair disabled or no .par2 files found, and Unpack not required. Health is ok so handle as though download successful." print "Par-check/repair disabled or no .par2 files found, and Unpack not required. Health is ok so handle as though download successful."
print "Please check your Par-check/repair settings for future downloads." print "Please check your Par-check/repair settings for future downloads."
# Check if destination directory exists (important for reprocessing of history items) # Check if destination directory exists (important for reprocessing of history items)
if not os.path.isdir(os.environ['NZBPP_DIRECTORY']): if not os.path.isdir(os.environ['NZBPP_DIRECTORY']):
print "Nothing to post-process: destination directory", os.environ['NZBPP_DIRECTORY'], "doesn't exist. Setting status \"failed\"." print "Nothing to post-process: destination directory", os.environ['NZBPP_DIRECTORY'], "doesn't exist. Setting status \"failed\"."
status = 1 status = 1
# All checks done, now launching the script. # All checks done, now launching the script.
if status == 1:
sys.exit(nzbtomedia.NZBGET_POSTPROCESS_NONE)
if status == 1: directory = os.path.normpath(os.environ['NZBPP_DIRECTORY'])
sys.exit(nzbtomedia.NZBGET_POSTPROCESS_NONE) for dirpath, dirnames, filenames in os.walk(directory):
for file in filenames:
directory = os.path.normpath(os.environ['NZBPP_DIRECTORY']) filepath = os.path.join(dirpath, file)
for dirpath, dirnames, filenames in os.walk(directory): print "reseting datetime for file", filepath
for file in filenames: try:
filepath = os.path.join(dirpath, file) os.utime(filepath, None)
print "reseting datetime for file", filepath continue
try: except:
os.utime(filepath, None) print "Error: unable to reset time for file", file
continue sys.exit(nzbtomedia.NZBGET_POSTPROCESS_ERROR)
except: sys.exit(nzbtomedia.NZBGET_POSTPROCESS_SUCCESS)
print "Error: unable to reset time for file", file
sys.exit(nzbtomedia.NZBGET_POSTPROCESS_ERROR)
sys.exit(nzbtomedia.NZBGET_POSTPROCESS_SUCCESS)
else:
print "This script can only be called from NZBGet (11.0 or later)."
sys.exit(0)

View file

@ -415,6 +415,11 @@ def main(args, section=None):
# NZBGet # NZBGet
if os.environ.has_key('NZBOP_SCRIPTDIR'): if os.environ.has_key('NZBOP_SCRIPTDIR'):
# Check if the script is called from nzbget 11.0 or later
if os.environ['NZBOP_VERSION'][0:5] < '11.0':
logger.error("NZBGet Version %s is not supported. Please update NZBGet." %(str(os.environ['NZBOP_VERSION'][0:5])))
sys.exit(nzbtomedia.NZBGET_POSTPROCESS_ERROR)
logger.info("Script triggered from NZBGet Version %s." %(str(os.environ['NZBOP_VERSION'][0:5]))) logger.info("Script triggered from NZBGet Version %s." %(str(os.environ['NZBOP_VERSION'][0:5])))
# Check if the script is called from nzbget 13.0 or later # Check if the script is called from nzbget 13.0 or later
@ -423,12 +428,8 @@ def main(args, section=None):
logger.info("Download failed with status %s." %(os.environ['NZBPP_STATUS'])) logger.info("Download failed with status %s." %(os.environ['NZBPP_STATUS']))
status = 1 status = 1
# Check if the script is called from nzbget 11.0 or later
elif os.environ['NZBOP_VERSION'][0:5] < '11.0':
logger.error("NZBGet Version %s is not supported. Please update NZBGet." %(str(os.environ['NZBOP_VERSION'][0:5])))
sys.exit(nzbtomedia.NZBGET_POSTPROCESS_ERROR)
else: else:
# Check par status
if os.environ['NZBPP_PARSTATUS'] == '1' or os.environ['NZBPP_PARSTATUS'] == '4': if os.environ['NZBPP_PARSTATUS'] == '1' or os.environ['NZBPP_PARSTATUS'] == '4':
logger.warning("Par-repair failed, setting status \"failed\"") logger.warning("Par-repair failed, setting status \"failed\"")
status = 1 status = 1