diff --git a/apps/templates/nzbget-mp4/MP4_Automator/TEMPLATEPPScript b/apps/templates/nzbget-mp4/MP4_Automator/TEMPLATEPPScript deleted file mode 100644 index 6eb7055..0000000 --- a/apps/templates/nzbget-mp4/MP4_Automator/TEMPLATEPPScript +++ /dev/null @@ -1,244 +0,0 @@ -#!/usr/bin/env python -# -############################################################################## -### NZBGET POST-PROCESSING SCRIPT ### - -# Modified to enable multiple bypass categories, -# as per: https://github.com/mdhiggins/sickbeard_mp4_automator/issues/509 -# -# Converts files and passes them to Sonarr for further processing. -# -# NOTE: This script requires Python to be installed on your system. - -############################################################################## -### OPTIONS ### - -# Change to full path to MP4 Automator folder. No quotes and a trailing / -#MP4_FOLDER=~/sickbeard_mp4_automator/ - -# Convert file before passing to destination (True, False) -#SHOULDCONVERT=False - -# Category for Couchpotato -#CP_CAT=Couchpotato - -# Category for Sonarr -#SONARR_CAT=Sonarr - -# Category for Radarr -#RADARR_CAT=Radarr - -# Category for Sickbeard -#SICKBEARD_CAT=Sickbeard - -# Category for Sickrage -#SICKRAGE_CAT=Sickrage - -# Category list (comma seperated) for bypassing any further processing but still converting -#BYPASS_CAT=tv,movies - -# Custom output_directory setting -#OUTPUT_DIR= - -### NZBGET POST-PROCESSING SCRIPT ### -############################################################################## - -import os -import sys -import re -import json -import traceback - -# Sanity checks for path string -MP4folder = os.environ['NZBPO_MP4_FOLDER'].strip() -MP4folder = MP4folder.replace('"', '') -MP4folder = MP4folder.replace("'", "") -MP4folder = MP4folder.replace("\\", "/") -if not(MP4folder.endswith("/")): - MP4folder += "/" -#DEBUG#print MP4folder+" the original is "+os.environ['NZBPO_MP4_FOLDER'] - -output_dir = None -if 'NZBPO_OUTPUT_DIR' in os.environ: - output_dir = os.environ['NZBPO_OUTPUT_DIR'].strip() - if len(output_dir) > 0: - output_dir = output_dir.replace('"', '') - output_dir = output_dir.replace("'", "") - output_dir = output_dir.replace("\\", "/") - if not(output_dir.endswith("/")): - output_dir += "/" - #DEBUG#print Overriding output directory - -sys.path.append(MP4folder) -try: - from readSettings import ReadSettings - from mkvtomp4 import MkvtoMp4 - from autoprocess import autoProcessMovie, autoProcessTV, autoProcessTVSR, sonarr, radarr - import logging - from logging.config import fileConfig -except ImportError: - print("[ERROR] Wrong path to sickbeard_mp4_automator: " + os.environ['NZBPO_MP4_FOLDER']) - print("[ERROR] %s" % traceback.print_exc()) - sys.exit(0) - -# Setup Logging -logpath = '/var/log/sickbeard_mp4_automator' -if os.name == 'nt': - logpath = MP4folder -elif not os.path.isdir(logpath): - try: - os.mkdir(logpath) - except: - logpath = MP4folder -configPath = os.path.abspath(os.path.join(MP4folder, 'logging.ini')).replace("\\", "\\\\") -logPath = os.path.abspath(os.path.join(logpath, 'index.log')).replace("\\", "\\\\") -fileConfig(configPath, defaults={'logfilename': logPath}) -log = logging.getLogger("NZBGetPostProcess") - -# Determine if conversion will take place -shouldConvert = (os.environ['NZBPO_SHOULDCONVERT'].lower() in ("yes", "true", "t", "1")) - -if 'NZBOP_SCRIPTDIR' in os.environ and not os.environ['NZBOP_VERSION'][0:5] < '11.0': - log.info("Script triggered from NZBGet (11.0 or later).") - - path = os.environ['NZBPP_DIRECTORY'] # Path to NZB directory - nzb = os.environ['NZBPP_NZBFILENAME'] # Original NZB name - category = os.environ['NZBPP_CATEGORY'] # NZB Category to determine destination - #DEBUG#print "Category is %s." % category - - couchcat = os.environ['NZBPO_CP_CAT'].lower() - sonarrcat = os.environ['NZBPO_SONARR_CAT'].lower() - radarrcat = os.environ['NZBPO_RADARR_CAT'].lower() - sickbeardcat = os.environ['NZBPO_SICKBEARD_CAT'].lower() - sickragecat = os.environ['NZBPO_SICKRAGE_CAT'].lower() - bypass = os.environ['NZBPO_BYPASS_CAT'].lower().replace(' ','').split(',') - - categories = [sickbeardcat, couchcat, sonarrcat, radarrcat, sickragecat] - - log.debug("Path: %s" % path) - log.debug("NZB: %s" % nzb) - log.debug("Category: %s" % category) - log.debug("Categories: %s" % categories) - - # NZBGet argv: all passed as environment variables. - clientAgent = "nzbget" - # Exit codes used by NZBGet - POSTPROCESS_PARCHECK = 92 - POSTPROCESS_SUCCESS = 93 - POSTPROCESS_ERROR = 94 - POSTPROCESS_NONE = 95 - - # Check nzbget.conf options - status = 0 - - if os.environ['NZBOP_UNPACK'] != 'yes': - log.error("Please enable option \"Unpack\" in nzbget configuration file, exiting.") - sys.exit(POSTPROCESS_NONE) - - # Check par status - if os.environ['NZBPP_PARSTATUS'] == '3': - log.error("Par-check successful, but Par-repair disabled, exiting") - sys.exit(POSTPROCESS_NONE) - - if os.environ['NZBPP_PARSTATUS'] == '1': - log.error("Par-check failed, setting status \"failed\".") - status = 1 - sys.exit(POSTPROCESS_NONE) - - # Check unpack status - if os.environ['NZBPP_UNPACKSTATUS'] == '1': - log.error("Unpack failed, setting status \"failed\".") - status = 1 - sys.exit(POSTPROCESS_NONE) - - if os.environ['NZBPP_UNPACKSTATUS'] == '0' and os.environ['NZBPP_PARSTATUS'] != '2': - # Unpack is disabled or was skipped due to nzb-file properties or due to errors during par-check - - for dirpath, dirnames, filenames in os.walk(os.environ['NZBPP_DIRECTORY']): - for file in filenames: - fileExtension = os.path.splitext(file)[1] - - if fileExtension in ['.par2']: - log.error("Post-Process: Unpack skipped and par-check skipped (although par2-files exist), setting status \"failed\".") - status = 1 - break - - if os.path.isfile(os.path.join(os.environ['NZBPP_DIRECTORY'], "_brokenlog.txt")) and not status == 1: - log.error("Post-Process: _brokenlog.txt exists, download is probably damaged, exiting.") - status = 1 - - if not status == 1: - log.error("Neither par2-files found, _brokenlog.txt doesn't exist, considering download successful.") - - # Check if destination directory exists (important for reprocessing of history items) - if not os.path.isdir(os.environ['NZBPP_DIRECTORY']): - log.error("Post-Process: Nothing to post-process: destination directory ", os.environ['NZBPP_DIRECTORY'], "doesn't exist.") - status = 1 - sys.exit(POSTPROCESS_NONE) - - # Make sure one of the appropriate categories is set - if category.lower() not in categories and category.lower() not in bypass: - log.error("Post-Process: No valid category detected. Category was %s." % (category)) - status = 1 - sys.exit(POSTPROCESS_NONE) - - # Make sure there are no duplicate categories - if len(categories) != len(set(categories)): - log.error("Duplicate category detected. Category names must be unique.") - status = 1 - sys.exit(POSTPROCESS_NONE) - - # All checks done, now launching the script. - settings = ReadSettings(MP4folder, "autoProcess.ini") - - if shouldConvert: - if output_dir: - settings.output_dir = output_dir - converter = MkvtoMp4(settings, logger=log) - for r, d, f in os.walk(path): - for files in f: - inputfile = os.path.join(r, files) - #DEBUG#print inputfile - #Ignores files under 50MB - if os.path.getsize(inputfile) > 50000000: - if MkvtoMp4(settings, logger=log).validSource(inputfile): - try: - output = converter.process(inputfile) - log.info("Successfully processed %s." % inputfile) - except: - log.exception("File processing failed.") - if converter.output_dir: - path = converter.output_dir - if (category.lower() == categories[0]): - #DEBUG#print "Sickbeard Processing Activated" - autoProcessTV.processEpisode(path, settings, nzb) - sys.exit(POSTPROCESS_SUCCESS) - elif (category.lower() == categories[1]): - #DEBUG#print "CouchPotato Processing Activated" - autoProcessMovie.process(path, settings, nzb, status) - sys.exit(POSTPROCESS_SUCCESS) - elif (category.lower() == categories[2]): - #DEBUG#print "Sonarr Processing Activated" - success = sonarr.processEpisode(path, settings, True) - if success: - sys.exit(POSTPROCESS_SUCCESS) - else: - sys.exit(POSTPROCESS_ERROR) - elif (category.lower() == categories[3]): - #DEBUG#print "Radarr Processing Activated" - success = radarr.processMovie(path, settings, True) - if success: - sys.exit(POSTPROCESS_SUCCESS) - else: - sys.exit(POSTPROCESS_ERROR) - elif (category.lower() == categories[4]): - #DEBUG#print "Sickrage Processing Activated" - autoProcessTVSR.processEpisode(path, settings, nzb) - sys.exit(POSTPROCESS_SUCCESS) - elif (category.lower() in bypass): - #DEBUG#print "Bypass Further Processing" - sys.exit(POSTPROCESS_NONE) - -else: - log.error("This script can only be called from NZBGet (11.0 or later).") - sys.exit(0)