mirror of
https://github.com/clinton-hall/nzbToMedia.git
synced 2025-08-14 02:26:53 -07:00
NZBGet V11 support added.
Multiple changes made to allow configuration to be entered via NZBGet webui. Multiple scripts can be defined and called for each category.
This commit is contained in:
parent
892c0837a6
commit
a33609d2d6
11 changed files with 1229 additions and 643 deletions
139
nzbToGamez.py
139
nzbToGamez.py
|
@ -1,4 +1,67 @@
|
|||
#!/usr/bin/env python
|
||||
#
|
||||
##############################################################################
|
||||
### NZBGET POST-PROCESSING SCRIPT ###
|
||||
|
||||
# Post-Process to Gamez.
|
||||
#
|
||||
# This script sends the download to your automated media management servers.
|
||||
#
|
||||
# NOTE: This script requires Python to be installed on your system.
|
||||
|
||||
##############################################################################
|
||||
### OPTIONS ###
|
||||
|
||||
## Gamez
|
||||
|
||||
# Gamez script category.
|
||||
#
|
||||
# category that gets called for post-processing with Gamez.
|
||||
#gzCategory=games
|
||||
|
||||
# Gamez api key.
|
||||
#gzapikey=
|
||||
|
||||
# Gamez host.
|
||||
#gzhost=localhost
|
||||
|
||||
# Gamez port.
|
||||
#gzport=8085
|
||||
|
||||
# Gamez username.
|
||||
#gzusername=
|
||||
|
||||
# Gamez password.
|
||||
#gzpassword=
|
||||
|
||||
# Gamez uses ssl.
|
||||
#
|
||||
# Set to 1 if using ssl, else set to 0.
|
||||
#gzssl=0
|
||||
|
||||
# Gamez web_root
|
||||
#
|
||||
# set this if using a reverse proxy.
|
||||
#gzweb_root=
|
||||
|
||||
## WakeOnLan
|
||||
|
||||
# use WOL
|
||||
#
|
||||
# set to 1 to send WOL broadcast to the mac and test the server (e.g. xbmc) on the host and port specified.
|
||||
#wolwake=0
|
||||
|
||||
# WOL MAC
|
||||
#
|
||||
# enter the mac address of the system to be woken.
|
||||
#wolmac=00:01:2e:2D:64:e1
|
||||
|
||||
# Set the Host and Port of a server to verify system has woken.
|
||||
#wolhost=192.168.1.37
|
||||
#wolport=80
|
||||
|
||||
### NZBGET POST-PROCESSING SCRIPT ###
|
||||
##############################################################################
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
@ -12,6 +75,9 @@ from autoProcess.nzbToMediaUtil import *
|
|||
#check to migrate old cfg before trying to load.
|
||||
if os.path.isfile(os.path.join(os.path.dirname(sys.argv[0]), "autoProcessMedia.cfg.sample")):
|
||||
migratecfg.migrate()
|
||||
# check to write settings from nzbGet UI to autoProcessMedia.cfg.
|
||||
if os.environ.has_key('NZBOP_SCRIPTDIR'):
|
||||
migratecfg.addnzbget()
|
||||
|
||||
nzbtomedia_configure_logging(os.path.dirname(sys.argv[0]))
|
||||
Logger = logging.getLogger(__name__)
|
||||
|
@ -21,8 +87,70 @@ Logger.info("nzbToGamez %s", VERSION)
|
|||
|
||||
WakeUp()
|
||||
|
||||
# NZBGet V11+
|
||||
# Check if the script is called from nzbget 11.0 or later
|
||||
if os.environ.has_key('NZBOP_SCRIPTDIR') and not os.environ['NZBOP_VERSION'][0:5] < '11.0':
|
||||
Logger.info("MAIN: Script triggered from NZBGet (11.0 or later).")
|
||||
|
||||
# NZBGet argv: all passed as environment variables.
|
||||
# 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":
|
||||
Logger.error("Please enable option \"Unpack\" in nzbget configuration file, exiting")
|
||||
sys.exit(POSTPROCESS_ERROR)
|
||||
|
||||
# Check par status
|
||||
if os.environ['NZBPP_PARSTATUS'] == 3:
|
||||
Logger.warning("Par-check successful, but Par-repair disabled, exiting")
|
||||
sys.exit(POSTPROCESS_NONE)
|
||||
|
||||
if os.environ['NZBPP_PARSTATUS'] == 1:
|
||||
Logger.warning("Par-check failed, setting status \"failed\"")
|
||||
status = 1
|
||||
|
||||
# Check unpack status
|
||||
if os.environ['NZBPP_UNPACKSTATUS'] == 1:
|
||||
Logger.warning("Unpack failed, setting status \"failed\"")
|
||||
status = 1
|
||||
|
||||
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 ['.rar', '.7z'] or os.path.splitext(fileExtension)[1] in ['.rar', '.7z']:
|
||||
Logger.warning("Post-Process: Archive files exist but unpack skipped, exiting")
|
||||
sys.exit(POSTPROCESS_NONE)
|
||||
|
||||
if fileExtension in ['.par2']:
|
||||
Logger.warning("Post-Process: Unpack skipped and par-check skipped (although par2-files exist), exiting")
|
||||
sys.exit(POSTPROCESS_NONE)
|
||||
|
||||
if os.path.isfile(os.path.join(os.environ['NZBPP_DIRECTORY'], "_brokenlog.txt")):
|
||||
Logger.warning("Post-Process: _brokenlog.txt exists, download is probably damaged, exiting")
|
||||
sys.exit(POSTPROCESS_NONE)
|
||||
|
||||
Logger.info("Neither archive- nor 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']):
|
||||
Logger.error("Post-Process: Nothing to post-process: destination directory %s doesn't exist", os.environ['NZBPP_DIRECTORY'])
|
||||
status = 1
|
||||
|
||||
# All checks done, now launching the script.
|
||||
Logger.info("Script triggered from NZBGet, starting autoProcessGames...")
|
||||
result = autoProcessGames.process(os.environ['NZBPP_DIRECTORY'], os.environ['NZBPP_NZBNAME'], status)
|
||||
# SABnzbd
|
||||
if len(sys.argv) == SABNZB_NO_OF_ARGUMENTS:
|
||||
elif len(sys.argv) == SABNZB_NO_OF_ARGUMENTS:
|
||||
# SABnzbd argv:
|
||||
# 1 The final directory of the job (full path)
|
||||
# 2 The original name of the NZB file
|
||||
|
@ -46,3 +174,12 @@ elif len(sys.argv) == NZBGET_NO_OF_ARGUMENTS:
|
|||
else:
|
||||
Logger.warn("Invalid number of arguments received from client. Exiting")
|
||||
sys.exit(1)
|
||||
|
||||
if result == 0:
|
||||
Logger.info("MAIN: The autoProcessGames script completed successfully.")
|
||||
if os.environ.has_key('NZBOP_SCRIPTDIR'): # return code for nzbget v11
|
||||
sys.exit(POSTPROCESS_SUCCESS)
|
||||
else:
|
||||
Logger.info("MAIN: A problem was reported in the autoProcessGames script.")
|
||||
if os.environ.has_key('NZBOP_SCRIPTDIR'): # return code for nzbget v11
|
||||
sys.exit(POSTPROCESS_ERROR)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue