diff --git a/TorrentToMedia.py b/TorrentToMedia.py index 20b78771..b3f4e719 100755 --- a/TorrentToMedia.py +++ b/TorrentToMedia.py @@ -9,6 +9,7 @@ from core import logger, nzbToMediaDB from core.nzbToMediaUtil import convert_to_ascii, CharReplace, plex_update from core.nzbToMediaUserScript import external_script + def processTorrent(inputDirectory, inputName, inputCategory, inputHash, inputID, clientAgent): status = 1 # 1 = failed | 0 = success root = 0 @@ -37,24 +38,26 @@ def processTorrent(inputDirectory, inputName, inputCategory, inputHash, inputID, "client_agent": unicode(clientAgent), "status": 0, "last_update": datetime.date.today().toordinal() - } + } myDB.upsert("downloads", newValueDict, controlValueDict) logger.debug("Received Directory: {0} | Name: {1} | Category: {2}".format(inputDirectory, inputName, inputCategory)) inputDirectory, inputName, inputCategory, root = core.category_search(inputDirectory, inputName, - inputCategory, root, - core.CATEGORIES) # Confirm the category by parsing directory structure + inputCategory, root, + core.CATEGORIES) # Confirm the category by parsing directory structure if inputCategory == "": inputCategory = "UNCAT" usercat = inputCategory try: inputName = inputName.encode(core.SYS_ENCODING) - except: pass + except: + pass try: inputDirectory = inputDirectory.encode(core.SYS_ENCODING) - except: pass + except: + pass logger.debug("Determined Directory: {0} | Name: {1} | Category: {2}".format(inputDirectory, inputName, inputCategory)) @@ -122,7 +125,8 @@ def processTorrent(inputDirectory, inputName, inputCategory, inputHash, inputID, core.os.path.join(core.OUTPUTDIRECTORY, inputCategory)) try: outputDestination = outputDestination.encode(core.SYS_ENCODING) - except: pass + except: + pass if outputDestination in inputDirectory: outputDestination = inputDirectory @@ -132,7 +136,7 @@ def processTorrent(inputDirectory, inputName, inputCategory, inputHash, inputID, if core.SAFE_MODE and outputDestination == core.TORRENT_DEFAULTDIR: logger.error( 'The output directory:[{0}] is the Download Directory. Edit outputDirectory in autoProcessMedia.cfg. Exiting'.format( - inputDirectory)) + inputDirectory)) return [-1, ""] logger.debug("Scanning files in directory: {0}".format(inputDirectory)) @@ -162,12 +166,13 @@ def processTorrent(inputDirectory, inputName, inputCategory, inputHash, inputID, "Setting outputDestination to {0} to preserve folder structure".format(os.path.dirname(targetFile))) try: targetFile = targetFile.encode(core.SYS_ENCODING) - except: pass + except: + pass if root == 1: if not foundFile: logger.debug("Looking for {0} in: {1}".format(inputName, inputFile)) - if (core.sanitizeName(inputName) in core.sanitizeName(inputFile)) or ( - core.sanitizeName(fileName) in core.sanitizeName(inputName)): + if any([core.sanitizeName(inputName) in core.sanitizeName(inputFile), + core.sanitizeName(fileName) in core.sanitizeName(inputName)]): foundFile = True logger.debug("Found file {0} that matches Torrent Name {1}".format(fullFileName, inputName)) else: @@ -198,7 +203,7 @@ def processTorrent(inputDirectory, inputName, inputCategory, inputHash, inputID, logger.debug('Checking for archives to extract in directory: {0}'.format(inputDirectory)) core.extractFiles(inputDirectory, outputDestination, keep_archive) - if not inputCategory in core.NOFLATTEN: #don't flatten hp in case multi cd albums, and we need to copy this back later. + if not inputCategory in core.NOFLATTEN: # don't flatten hp in case multi cd albums, and we need to copy this back later. core.flatten(outputDestination) # Now check if video files exist in destination: @@ -223,25 +228,25 @@ def processTorrent(inputDirectory, inputName, inputCategory, inputHash, inputID, if core.TORRENT_CHMOD_DIRECTORY: core.rchmod(outputDestination, core.TORRENT_CHMOD_DIRECTORY) - result = [ 0, "" ] + result = [0, ""] if sectionName == 'UserScript': result = external_script(outputDestination, inputName, inputCategory, section[usercat]) elif sectionName == 'CouchPotato': - result = core.autoProcessMovie().process(sectionName,outputDestination, inputName, status, clientAgent, inputHash, - inputCategory) - elif sectionName in ['SickBeard','NzbDrone']: + result = core.autoProcessMovie().process(sectionName, outputDestination, inputName, status, clientAgent, inputHash, + inputCategory) + elif sectionName in ['SickBeard', 'NzbDrone']: if inputHash: inputHash = inputHash.upper() - result = core.autoProcessTV().processEpisode(sectionName,outputDestination, inputName, status, clientAgent, - inputHash, inputCategory) + result = core.autoProcessTV().processEpisode(sectionName, outputDestination, inputName, status, clientAgent, + inputHash, inputCategory) elif sectionName == 'HeadPhones': - result = core.autoProcessMusic().process(sectionName,outputDestination, inputName, status, clientAgent, inputCategory) + result = core.autoProcessMusic().process(sectionName, outputDestination, inputName, status, clientAgent, inputCategory) elif sectionName == 'Mylar': - result = core.autoProcessComics().processEpisode(sectionName,outputDestination, inputName, status, clientAgent, - inputCategory) + result = core.autoProcessComics().processEpisode(sectionName, outputDestination, inputName, status, clientAgent, + inputCategory) elif sectionName == 'Gamez': - result = core.autoProcessGames().process(sectionName,outputDestination, inputName, status, clientAgent, inputCategory) + result = core.autoProcessGames().process(sectionName, outputDestination, inputName, status, clientAgent, inputCategory) plex_update(inputCategory) @@ -263,8 +268,8 @@ def processTorrent(inputDirectory, inputName, inputCategory, inputHash, inputID, logger.debug('Checking for sym-links to re-direct in: {0}'.format(inputDirectory)) for dirpath, dirs, files in os.walk(inputDirectory): for file in files: - logger.debug('Checking symlink: {0}'.format(os.path.join(dirpath,file))) - core.replace_links(os.path.join(dirpath,file)) + logger.debug('Checking symlink: {0}'.format(os.path.join(dirpath, file))) + core.replace_links(os.path.join(dirpath, file)) core.remove_torrent(clientAgent, inputHash, inputID, inputName) if not sectionName == 'UserScript': # for user script, we assume this is cleaned by the script or option USER_SCRIPT_CLEAN @@ -289,7 +294,7 @@ def main(args): logger.debug("Options passed into TorrentToMedia: {0}".format(args)) # Post-Processing Result - result = [ 0, "" ] + result = [0, ""] try: inputDirectory, inputName, inputCategory, inputHash, inputID = core.parse_args(clientAgent, args) @@ -339,11 +344,13 @@ def main(args): try: dirName = dirName.encode(core.SYS_ENCODING) - except: pass + except: + pass inputName = os.path.basename(dirName) try: inputName = inputName.encode(core.SYS_ENCODING) - except: pass + except: + pass results = processTorrent(dirName, inputName, subsection, inputHash, inputID, clientAgent) diff --git a/nzbToCouchPotato.py b/nzbToCouchPotato.py index 9bb81473..8b8f7b46 100755 --- a/nzbToCouchPotato.py +++ b/nzbToCouchPotato.py @@ -1,8 +1,8 @@ #!/usr/bin/env python2 # coding=utf-8 -# -############################################################################## -### NZBGET POST-PROCESSING SCRIPT ### + +# ############################################################################## +# ### NZBGET POST-PROCESSING SCRIPT ### # Post-Process to CouchPotato, SickBeard, NzbDrone, Mylar, Gamez, HeadPhones. # @@ -10,242 +10,243 @@ # # NOTE: This script requires Python to be installed on your system. -############################################################################## -### OPTIONS ### +# ############################################################################## +# ### OPTIONS ### -## General +# ## General # Auto Update nzbToMedia (0, 1). # # Set to 1 if you want nzbToMedia to automatically check for and update to the latest version -#auto_update=0 +# auto_update=0 # Check Media for corruption (0, 1). # # Enable/Disable media file checking using ffprobe. -#check_media=1 +# check_media=1 # Safe Mode protection of DestDir (0, 1). # # Enable/Disable a safety check to ensure we don't process all downloads in the default_downloadDirectory by mistake. -#safe_mode=1 +# safe_mode=1 -## CouchPotato +# ## CouchPotato # CouchPotato script category. # # category that gets called for post-processing with CouchPotatoServer. -#cpsCategory=movie +# cpsCategory=movie # CouchPotato api key. -#cpsapikey= +# cpsapikey= # CouchPotato host. # # The ipaddress for your CouchPotato server. e.g For the Same system use localhost or 127.0.0.1 -#cpshost=localhost +# cpshost=localhost # CouchPotato port. -#cpsport=5050 +# cpsport=5050 # CouchPotato uses ssl (0, 1). # # Set to 1 if using ssl, else set to 0. -#cpsssl=0 +# cpsssl=0 # CouchPotato URL_Base # # set this if using a reverse proxy. -#cpsweb_root= +# cpsweb_root= # CouchPotato watch directory. # # set this to where your CouchPotato completed downloads are. -#cpswatch_dir= +# cpswatch_dir= # CouchPotato Postprocess Method (renamer, manage). # # use "renamer" for CPS renamer (default) or "manage" to call a manage update. -#cpsmethod=renamer +# cpsmethod=renamer # CouchPotato Delete Failed Downloads (0, 1). # # set to 1 to delete failed, or 0 to leave files in place. -#cpsdelete_failed=0 +# cpsdelete_failed=0 # CouchPotato wait_for # # Set the number of minutes to wait after calling the renamer, to check the movie has changed status. -#cpswait_for=2 +# cpswait_for=2 # CouchPotatoServer and NZBGet are a different system (0, 1). # # Enable to replace local path with the path as per the mountPoints below. -#cpsremote_path=0 +# cpsremote_path=0 -## Network +# ## Network # Network Mount Points (Needed for remote path above) # # Enter Mount points as LocalPath,RemotePath and separate each pair with '|' # e.g. mountPoints=/volume1/Public/,E:\|/volume2/share/,\\NAS\ -#mountPoints= +# mountPoints= -## Extensions +# ## Extensions # Media Extensions # # This is a list of media extensions that are used to verify that the download does contain valid media. -#mediaExtensions=.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg,.vob,.iso,.ts +# mediaExtensions=.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg,.vob,.iso,.ts -## Posix +# ## Posix # Niceness for external tasks Extractor and Transcoder. # # Set the Niceness value for the nice command. These range from -20 (most favorable to the process) to 19 (least favorable to the process). -#niceness=10 +# niceness=10 # ionice scheduling class (0, 1, 2, 3). # # Set the ionice scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle. -#ionice_class=2 +# ionice_class=2 # ionice scheduling class data. # # Set the ionice scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is valid data. -#ionice_classdata=4 +# ionice_classdata=4 -## Transcoder +# ## Transcoder # getSubs (0, 1). # # set to 1 to download subtitles. -#getSubs=0 +# getSubs=0 # subLanguages. # # subLanguages. create a list of languages in the order you want them in your subtitles. -#subLanguages=eng,spa,fra +# subLanguages=eng,spa,fra # Transcode (0, 1). # # set to 1 to transcode, otherwise set to 0. -#transcode=0 +# transcode=0 # create a duplicate, or replace the original (0, 1). # # set to 1 to cretae a new file or 0 to replace the original -#duplicate=1 +# duplicate=1 # ignore extensions. # # list of extensions that won't be transcoded. -#ignoreExtensions=.avi,.mkv +# ignoreExtensions=.avi,.mkv # outputFastStart (0,1). # # outputFastStart. 1 will use -movflags + faststart. 0 will disable this from being used. -#outputFastStart=0 +# outputFastStart=0 # outputVideoPath. # # outputVideoPath. Set path you want transcoded videos moved to. Leave blank to disable. -#outputVideoPath= +# outputVideoPath= # processOutput (0,1). # # processOutput. 1 will send the outputVideoPath to SickBeard/CouchPotato. 0 will send original files. -#processOutput=0 +# processOutput=0 # audioLanguage. # # audioLanguage. set the 3 letter language code you want as your primary audio track. -#audioLanguage=eng +# audioLanguage=eng # allAudioLanguages (0,1). # # allAudioLanguages. 1 will keep all audio tracks (uses AudioCodec3) where available. -#allAudioLanguages=0 +# allAudioLanguages=0 # allSubLanguages (0,1). # # allSubLanguages. 1 will keep all exisiting sub languages. 0 will discare those not in your list above. -#allSubLanguages=0 +# allSubLanguages=0 # embedSubs (0,1). # # embedSubs. 1 will embded external sub/srt subs into your video if this is supported. -#embedSubs=1 +# embedSubs=1 # burnInSubtitle (0,1). # # burnInSubtitle. burns the default sub language into your video (needed for players that don't support subs) -#burnInSubtitle=0 +# burnInSubtitle=0 # extractSubs (0,1). # # extractSubs. 1 will extract subs from the video file and save these as external srt files. -#extractSubs=0 +# extractSubs=0 # externalSubDir. # # externalSubDir. set the directory where subs should be saved (if not the same directory as the video) -#externalSubDir= +# externalSubDir= # outputDefault (None, iPad, iPad-1080p, iPad-720p, Apple-TV2, iPod, iPhone, PS3, xbox, Roku-1080p, Roku-720p, Roku-480p, mkv, mp4-scene-release). # # outputDefault. Loads default configs for the selected device. The remaining options below are ignored. # If you want to use your own profile, set None and set the remaining options below. -#outputDefault=None +# outputDefault=None # hwAccel (0,1). # # hwAccel. 1 will set ffmpeg to enable hardware acceleration (this requires a recent ffmpeg). -#hwAccel=0 +# hwAccel=0 # ffmpeg output settings. -#outputVideoExtension=.mp4 -#outputVideoCodec=libx264 -#VideoCodecAllow= -#outputVideoPreset=medium -#outputVideoFramerate=24 -#outputVideoBitrate=800k -#outputAudioCodec=ac3 -#AudioCodecAllow= -#outputAudioChannels=6 -#outputAudioBitrate=640k -#outputQualityPercent= -#outputAudioTrack2Codec=libfaac -#AudioCodec2Allow= -#outputAudioTrack2Channels=2 -#outputAudioTrack2Bitrate=160k -#outputAudioOtherCodec=libmp3lame -#AudioOtherCodecAllow= -#outputAudioOtherChannels=2 -#outputAudioOtherBitrate=128k -#outputSubtitleCodec= +# outputVideoExtension=.mp4 +# outputVideoCodec=libx264 +# VideoCodecAllow= +# outputVideoPreset=medium +# outputVideoFramerate=24 +# outputVideoBitrate=800k +# outputAudioCodec=ac3 +# AudioCodecAllow= +# outputAudioChannels=6 +# outputAudioBitrate=640k +# outputQualityPercent= +# outputAudioTrack2Codec=libfaac +# AudioCodec2Allow= +# outputAudioTrack2Channels=2 +# outputAudioTrack2Bitrate=160k +# outputAudioOtherCodec=libmp3lame +# AudioOtherCodecAllow= +# outputAudioOtherChannels=2 +# outputAudioOtherBitrate=128k +# outputSubtitleCodec= -## WakeOnLan +# ## WakeOnLan # use WOL (0, 1). # # 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 +# wolwake=0 # WOL MAC # # enter the mac address of the system to be woken. -#wolmac=00:01:2e:2D:64:e1 +# 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 +# wolhost=192.168.1.37 +# wolport=80 + +# ### NZBGET POST-PROCESSING SCRIPT ### +# ############################################################################## -### NZBGET POST-PROCESSING SCRIPT ### -############################################################################## import sys import nzbToMedia section = "CouchPotato" result = nzbToMedia.main(sys.argv, section) -sys.exit(result) \ No newline at end of file +sys.exit(result) diff --git a/nzbToGamez.py b/nzbToGamez.py index b6bca420..9b1cb355 100755 --- a/nzbToGamez.py +++ b/nzbToGamez.py @@ -1,8 +1,8 @@ #!/usr/bin/env python2 # coding=utf-8 # -############################################################################## -### NZBGET POST-PROCESSING SCRIPT ### +# ############################################################################## +# ### NZBGET POST-PROCESSING SCRIPT ### # Post-Process to CouchPotato, SickBeard, NzbDrone, Mylar, Gamez, HeadPhones. # @@ -10,98 +10,99 @@ # # NOTE: This script requires Python to be installed on your system. -############################################################################## +# ############################################################################## # -### OPTIONS ### +# ### OPTIONS ### -## General +# ## General # Auto Update nzbToMedia (0, 1). # # Set to 1 if you want nzbToMedia to automatically check for and update to the latest version -#auto_update=0 +# auto_update=0 # Safe Mode protection of DestDir (0, 1). # # Enable/Disable a safety check to ensure we don't process all downloads in the default_downloadDirectory by mistake. -#safe_mode=1 +# safe_mode=1 -## Gamez +# ## Gamez # Gamez script category. # # category that gets called for post-processing with Gamez. -#gzCategory=games +# gzCategory=games # Gamez api key. -#gzapikey= +# gzapikey= # Gamez host. # # The ipaddress for your Gamez server. e.g For the Same system use localhost or 127.0.0.1 -#gzhost=localhost +# gzhost=localhost # Gamez port. -#gzport=8085 +# gzport=8085 # Gamez uses ssl (0, 1). # # Set to 1 if using ssl, else set to 0. -#gzssl=0 +# gzssl=0 # Gamez library # # move downloaded games here. -#gzlibrary +# gzlibrary # Gamez web_root # # set this if using a reverse proxy. -#gzweb_root= +# gzweb_root= # Gamez watch directory. # # set this to where your Gamez completed downloads are. -#gzwatch_dir= +# gzwatch_dir= -## Posix +# ## Posix # Niceness for external tasks Extractor and Transcoder. # # Set the Niceness value for the nice command. These range from -20 (most favorable to the process) to 19 (least favorable to the process). -#niceness=10 +# niceness=10 # ionice scheduling class (0, 1, 2, 3). # # Set the ionice scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle. -#ionice_class=2 +# ionice_class=2 # ionice scheduling class data. # # Set the ionice scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is valid data. -#ionice_classdata=4 +# ionice_classdata=4 -## WakeOnLan +# ## WakeOnLan # use WOL (0, 1). # # 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 +# wolwake=0 # WOL MAC # # enter the mac address of the system to be woken. -#wolmac=00:01:2e:2D:64:e1 +# 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 +# wolhost=192.168.1.37 +# wolport=80 + +# ### NZBGET POST-PROCESSING SCRIPT ### +# ############################################################################## -### NZBGET POST-PROCESSING SCRIPT ### -############################################################################## import sys import nzbToMedia section = "Gamez" result = nzbToMedia.main(sys.argv, section) -sys.exit(result) \ No newline at end of file +sys.exit(result) diff --git a/nzbToHeadPhones.py b/nzbToHeadPhones.py index 30be1dcc..26cf2e3e 100755 --- a/nzbToHeadPhones.py +++ b/nzbToHeadPhones.py @@ -1,8 +1,8 @@ #!/usr/bin/env python2 # coding=utf-8 -# -############################################################################## -### NZBGET POST-PROCESSING SCRIPT ### + +# ############################################################################## +# ### NZBGET POST-PROCESSING SCRIPT ### # Post-Process to HeadPhones. # @@ -10,110 +10,111 @@ # # NOTE: This script requires Python to be installed on your system. -############################################################################## -### OPTIONS +# ############################################################################## +# ### OPTIONS -## General +# ## General # Auto Update nzbToMedia (0, 1). # # Set to 1 if you want nzbToMedia to automatically check for and update to the latest version -#auto_update=0 +# auto_update=0 # Safe Mode protection of DestDir (0, 1). # # Enable/Disable a safety check to ensure we don't process all downloads in the default_downloadDirectory by mistake. -#safe_mode=1 +# safe_mode=1 -## HeadPhones +# ## HeadPhones # HeadPhones script category. # # category that gets called for post-processing with HeadHones. -#hpCategory=music +# hpCategory=music # HeadPhones api key. -#hpapikey= +# hpapikey= # HeadPhones host. # # The ipaddress for your HeadPhones server. e.g For the Same system use localhost or 127.0.0.1 -#hphost=localhost +# hphost=localhost # HeadPhones port. -#hpport=8181 +# hpport=8181 # HeadPhones uses ssl (0, 1). # # Set to 1 if using ssl, else set to 0. -#hpssl=0 +# hpssl=0 # HeadPhones web_root # # set this if using a reverse proxy. -#hpweb_root= +# hpweb_root= # HeadPhones watch directory. # # set this to where your HeadPhones completed downloads are. -#hpwatch_dir= +# hpwatch_dir= # HeadPhones wait_for # # Set the number of minutes to wait after initiating HeadPhones post-processing to check if the album status has changed. -#hpwait_for=2 +# hpwait_for=2 # HeadPhones and NZBGet are a different system (0, 1). # # Enable to replace local path with the path as per the mountPoints below. -#hpremote_path=0 +# hpremote_path=0 -## Posix +# ## Posix # Niceness for external tasks Extractor and Transcoder. # # Set the Niceness value for the nice command. These range from -20 (most favorable to the process) to 19 (least favorable to the process). -#niceness=10 +# niceness=10 # ionice scheduling class (0, 1, 2, 3). # # Set the ionice scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle. -#ionice_class=2 +# ionice_class=2 # ionice scheduling class data. # # Set the ionice scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is valid data. -#ionice_classdata=4 +# ionice_classdata=4 -## Network +# ## Network # Network Mount Points (Needed for remote path above) # # Enter Mount points as LocalPath,RemotePath and separate each pair with '|' # e.g. mountPoints=/volume1/Public/,E:\|/volume2/share/,\\NAS\ -#mountPoints= +# mountPoints= -## WakeOnLan +# ## WakeOnLan # use WOL (0, 1). # # 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 +# wolwake=0 # WOL MAC # # enter the mac address of the system to be woken. -#wolmac=00:01:2e:2D:64:e1 +# 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 +# wolhost=192.168.1.37 +# wolport=80 + +# ### NZBGET POST-PROCESSING SCRIPT ### +# ############################################################################## -### NZBGET POST-PROCESSING SCRIPT ### -############################################################################## import sys import nzbToMedia section = "HeadPhones" result = nzbToMedia.main(sys.argv, section) -sys.exit(result) \ No newline at end of file +sys.exit(result) diff --git a/nzbToMedia.py b/nzbToMedia.py index 833215b4..5e344fa8 100755 --- a/nzbToMedia.py +++ b/nzbToMedia.py @@ -1,8 +1,8 @@ #!/usr/bin/env python2 # coding=utf-8 # -############################################################################## -### NZBGET POST-PROCESSING SCRIPT ### +# ############################################################################## +# ### NZBGET POST-PROCESSING SCRIPT ### # Post-Process to CouchPotato, SickBeard, NzbDrone, Mylar, Gamez, HeadPhones. # @@ -10,494 +10,495 @@ # # NOTE: This script requires Python to be installed on your system. -############################################################################## -### OPTIONS ### +# ############################################################################## +# ### OPTIONS ### -## General +# ## General # Auto Update nzbToMedia (0, 1). # # Set to 1 if you want nzbToMedia to automatically check for and update to the latest version -#auto_update=0 +# auto_update=0 # Check Media for corruption (0, 1). # # Enable/Disable media file checking using ffprobe. -#check_media=1 +# check_media=1 # Safe Mode protection of DestDir (0, 1). # # Enable/Disable a safety check to ensure we don't process all downloads in the default_downloadDirectory by mistake. -#safe_mode=1 +# safe_mode=1 -## CouchPotato +# ## CouchPotato # CouchPotato script category. # # category that gets called for post-processing with CouchPotatoServer. -#cpsCategory=movie +# cpsCategory=movie # CouchPotato api key. -#cpsapikey= +# cpsapikey= # CouchPotato host. # # The ipaddress for your CouchPotato server. e.g For the Same system use localhost or 127.0.0.1 -#cpshost=localhost +# cpshost=localhost # CouchPotato port. -#cpsport=5050 +# cpsport=5050 # CouchPotato uses ssl (0, 1). # # Set to 1 if using ssl, else set to 0. -#cpsssl=0 +# cpsssl=0 # CouchPotato URL_Base # # set this if using a reverse proxy. -#cpsweb_root= +# cpsweb_root= # CouchPotato Postprocess Method (renamer, manage). # # use "renamer" for CPS renamer (default) or "manage" to call a manage update. -#cpsmethod=renamer +# cpsmethod=renamer # CouchPotato Delete Failed Downloads (0, 1). # # set to 1 to delete failed, or 0 to leave files in place. -#cpsdelete_failed=0 +# cpsdelete_failed=0 # CouchPotato wait_for # # Set the number of minutes to wait after calling the renamer, to check the movie has changed status. -#cpswait_for=2 +# cpswait_for=2 # Couchpotato and NZBGet are a different system (0, 1). # # Enable to replace local path with the path as per the mountPoints below. -#cpsremote_path=0 +# cpsremote_path=0 -## SickBeard +# ## SickBeard # SickBeard script category. # # category that gets called for post-processing with SickBeard. -#sbCategory=tv +# sbCategory=tv # SickBeard host. # # The ipaddress for your SickBeard/SickRage server. e.g For the Same system use localhost or 127.0.0.1 -#sbhost=localhost +# sbhost=localhost # SickBeard port. -#sbport=8081 +# sbport=8081 # SickBeard username. -#sbusername= +# sbusername= # SickBeard password. -#sbpassword= +# sbpassword= # SickBeard uses ssl (0, 1). # # Set to 1 if using ssl, else set to 0. -#sbssl=0 +# sbssl=0 # SickBeard web_root # # set this if using a reverse proxy. -#sbweb_root= +# sbweb_root= # SickBeard watch directory. # # set this if SickBeard and nzbGet are on different systems. -#sbwatch_dir= +# sbwatch_dir= # SickBeard fork. # # set to default or auto to auto-detect the custom fork type. -#sbfork=auto +# sbfork=auto # SickBeard Delete Failed Downloads (0, 1). # # set to 1 to delete failed, or 0 to leave files in place. -#sbdelete_failed=0 +# sbdelete_failed=0 # SickBeard process method. # # set this to move, copy, hardlink, symlink as appropriate if you want to over-ride SB defaults. Leave blank to use SB default. -#sbprocess_method= +# sbprocess_method= # SickBeard and NZBGet are a different system (0, 1). # # Enable to replace local path with the path as per the mountPoints below. -#sbremote_path=0 +# sbremote_path=0 -## NzbDrone +# ## NzbDrone # NzbDrone script category. # # category that gets called for post-processing with NzbDrone. -#ndCategory=tv2 +# ndCategory=tv2 # NzbDrone host. # # The ipaddress for your NzbDrone/Sonarr server. e.g For the Same system use localhost or 127.0.0.1 -#ndhost=localhost +# ndhost=localhost # NzbDrone port. -#ndport=8989 +# ndport=8989 # NzbDrone API key. -#ndapikey= +# ndapikey= # NzbDrone uses SSL (0, 1). # # Set to 1 if using SSL, else set to 0. -#ndssl=0 +# ndssl=0 # NzbDrone web root. # # set this if using a reverse proxy. -#ndweb_root= +# ndweb_root= # NzbDrone wait_for # # Set the number of minutes to wait after calling the renamer, to check the episode has changed status. -#ndwait_for=2 +# ndwait_for=2 # NzbDrone Delete Failed Downloads (0, 1). # # set to 1 to delete failed, or 0 to leave files in place. -#nddelete_failed=0 +# nddelete_failed=0 # NzbDrone and NZBGet are a different system (0, 1). # # Enable to replace local path with the path as per the mountPoints below. -#ndremote_path=0 +# ndremote_path=0 -## HeadPhones +# ## HeadPhones # HeadPhones script category. # # category that gets called for post-processing with HeadHones. -#hpCategory=music +# hpCategory=music # HeadPhones api key. -#hpapikey= +# hpapikey= # HeadPhones host. # # The ipaddress for your HeadPhones server. e.g For the Same system use localhost or 127.0.0.1 -#hphost=localhost +# hphost=localhost # HeadPhones port. -#hpport=8181 +# hpport=8181 # HeadPhones uses ssl (0, 1). # # Set to 1 if using ssl, else set to 0. -#hpssl=0 +# hpssl=0 # HeadPhones web_root # # set this if using a reverse proxy. -#hpweb_root= +# hpweb_root= # HeadPhones and NZBGet are a different system (0, 1). # # Enable to replace local path with the path as per the mountPoints below. -#hpremote_path=0 +# hpremote_path=0 -## Mylar +# ## Mylar # Mylar script category. # # category that gets called for post-processing with Mylar. -#myCategory=comics +# myCategory=comics # Mylar host. # # The ipaddress for your Mylar server. e.g For the Same system use localhost or 127.0.0.1 -#myhost=localhost +# myhost=localhost # Mylar port. -#myport=8090 +# myport=8090 # Mylar username. -#myusername= +# myusername= # Mylar password. -#mypassword= +# mypassword= # Mylar uses ssl (0, 1). # # Set to 1 if using ssl, else set to 0. -#myssl=0 +# myssl=0 # Mylar web_root # # set this if using a reverse proxy. -#myweb_root= +# myweb_root= # Mylar wait_for # # Set the number of minutes to wait after calling the force process, to check the issue has changed status. -#myswait_for=1 +# myswait_for=1 # Mylar and NZBGet are a different system (0, 1). # # Enable to replace local path with the path as per the mountPoints below. -#myremote_path=0 +# myremote_path=0 -## Gamez +# ## Gamez # Gamez script category. # # category that gets called for post-processing with Gamez. -#gzCategory=games +# gzCategory=games # Gamez api key. -#gzapikey= +# gzapikey= # Gamez host. # # The ipaddress for your Gamez server. e.g For the Same system use localhost or 127.0.0.1 -#gzhost=localhost +# gzhost=localhost # Gamez port. -#gzport=8085 +# gzport=8085 # Gamez uses ssl (0, 1). # # Set to 1 if using ssl, else set to 0. -#gzssl=0 +# gzssl=0 # Gamez library # # move downloaded games here. -#gzlibrary +# gzlibrary # Gamez web_root # # set this if using a reverse proxy. -#gzweb_root= +# gzweb_root= # Gamez and NZBGet are a different system (0, 1). # # Enable to replace local path with the path as per the mountPoints below. -#gzremote_path=0 +# gzremote_path=0 -## Network +# ## Network # Network Mount Points (Needed for remote path above) # # Enter Mount points as LocalPath,RemotePath and separate each pair with '|' # e.g. mountPoints=/volume1/Public/,E:\|/volume2/share/,\\NAS\ -#mountPoints= +# mountPoints= -## Extensions +# ## Extensions # Media Extensions # # This is a list of media extensions that are used to verify that the download does contain valid media. -#mediaExtensions=.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg,.vob,.iso,.ts +# mediaExtensions=.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg,.vob,.iso,.ts -## Posix +# ## Posix # Niceness for external tasks Extractor and Transcoder. # # Set the Niceness value for the nice command. These range from -20 (most favorable to the process) to 19 (least favorable to the process). -#niceness=10 +# niceness=10 # ionice scheduling class (0, 1, 2, 3). # # Set the ionice scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle. -#ionice_class=2 +# ionice_class=2 # ionice scheduling class data. # # Set the ionice scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is valid data. -#ionice_classdata=4 +# ionice_classdata=4 -## Transcoder +# ## Transcoder # getSubs (0, 1). # # set to 1 to download subtitles. -#getSubs=0 +# getSubs=0 # subLanguages. # # subLanguages. create a list of languages in the order you want them in your subtitles. -#subLanguages=eng,spa,fra +# subLanguages=eng,spa,fra # Transcode (0, 1). # # set to 1 to transcode, otherwise set to 0. -#transcode=0 +# transcode=0 # create a duplicate, or replace the original (0, 1). # # set to 1 to cretae a new file or 0 to replace the original -#duplicate=1 +# duplicate=1 # ignore extensions. # # list of extensions that won't be transcoded. -#ignoreExtensions=.avi,.mkv +# ignoreExtensions=.avi,.mkv # outputFastStart (0,1). # # outputFastStart. 1 will use -movflags + faststart. 0 will disable this from being used. -#outputFastStart=0 +# outputFastStart=0 # outputVideoPath. # # outputVideoPath. Set path you want transcoded videos moved to. Leave blank to disable. -#outputVideoPath= +# outputVideoPath= # processOutput (0,1). # # processOutput. 1 will send the outputVideoPath to SickBeard/CouchPotato. 0 will send original files. -#processOutput=0 +# processOutput=0 # audioLanguage. # # audioLanguage. set the 3 letter language code you want as your primary audio track. -#audioLanguage=eng +# audioLanguage=eng # allAudioLanguages (0,1). # # allAudioLanguages. 1 will keep all audio tracks (uses AudioCodec3) where available. -#allAudioLanguages=0 +# allAudioLanguages=0 # allSubLanguages (0,1). # # allSubLanguages. 1 will keep all exisiting sub languages. 0 will discare those not in your list above. -#allSubLanguages=0 +# allSubLanguages=0 # embedSubs (0,1). # # embedSubs. 1 will embded external sub/srt subs into your video if this is supported. -#embedSubs=1 +# embedSubs=1 # burnInSubtitle (0,1). # # burnInSubtitle. burns the default sub language into your video (needed for players that don't support subs) -#burnInSubtitle=0 +# burnInSubtitle=0 # extractSubs (0,1). # # extractSubs. 1 will extract subs from the video file and save these as external srt files. -#extractSubs=0 +# extractSubs=0 # externalSubDir. # # externalSubDir. set the directory where subs should be saved (if not the same directory as the video) -#externalSubDir= +# externalSubDir= # outputDefault (None, iPad, iPad-1080p, iPad-720p, Apple-TV2, iPod, iPhone, PS3, xbox, Roku-1080p, Roku-720p, Roku-480p, mkv, mp4-scene-release). # # outputDefault. Loads default configs for the selected device. The remaining options below are ignored. # If you want to use your own profile, set None and set the remaining options below. -#outputDefault=None +# outputDefault=None # hwAccel (0,1). # # hwAccel. 1 will set ffmpeg to enable hardware acceleration (this requires a recent ffmpeg). -#hwAccel=0 +# hwAccel=0 # ffmpeg output settings. -#outputVideoExtension=.mp4 -#outputVideoCodec=libx264 -#VideoCodecAllow= -#outputVideoPreset=medium -#outputVideoFramerate=24 -#outputVideoBitrate=800k -#outputAudioCodec=ac3 -#AudioCodecAllow= -#outputAudioChannels=6 -#outputAudioBitrate=640k -#outputQualityPercent= -#outputAudioTrack2Codec=libfaac -#AudioCodec2Allow= -#outputAudioTrack2Channels=2 -#outputAudioTrack2Bitrate=160k -#outputAudioOtherCodec=libmp3lame -#AudioOtherCodecAllow= -#outputAudioOtherChannels=2 -#outputAudioOtherBitrate=128k -#outputSubtitleCodec= +# outputVideoExtension=.mp4 +# outputVideoCodec=libx264 +# VideoCodecAllow= +# outputVideoPreset=medium +# outputVideoFramerate=24 +# outputVideoBitrate=800k +# outputAudioCodec=ac3 +# AudioCodecAllow= +# outputAudioChannels=6 +# outputAudioBitrate=640k +# outputQualityPercent= +# outputAudioTrack2Codec=libfaac +# AudioCodec2Allow= +# outputAudioTrack2Channels=2 +# outputAudioTrack2Bitrate=160k +# outputAudioOtherCodec=libmp3lame +# AudioOtherCodecAllow= +# outputAudioOtherChannels=2 +# outputAudioOtherBitrate=128k +# outputSubtitleCodec= -## WakeOnLan +# ## WakeOnLan # use WOL (0, 1). # # 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 +# wolwake=0 # WOL MAC # # enter the mac address of the system to be woken. -#wolmac=00:01:2e:2D:64:e1 +# 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 +# wolhost=192.168.1.37 +# wolport=80 -## UserScript +# ## UserScript # User Script category. # # category that gets called for post-processing with user script (accepts "UNCAT", "ALL", or a defined category). -#usCategory=mine +# usCategory=mine # User Script Remote Path (0,1). # # Script calls commands on another system. -#usremote_path=0 +# usremote_path=0 # User Script extensions. # # What extension do you want to process? Specify all the extension, or use "ALL" to process all files. -#user_script_mediaExtensions=.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg +# user_script_mediaExtensions=.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg # User Script Path # # Specify the path to your custom script. -#user_script_path=/nzbToMedia/userscripts/script.sh +# user_script_path=/nzbToMedia/userscripts/script.sh # User Script arguments. # # Specify the argument(s) passed to script, comma separated in order. # for example FP,FN,DN, TN, TL for file path (absolute file name with path), file name, absolute directory name (with path), Torrent Name, Torrent Label/Category. # So the result is /media/test/script/script.sh FP FN DN TN TL. Add other arguments as needed eg -f, -r -#user_script_param=FN +# user_script_param=FN # User Script Run Once (0,1). # # Set user_script_runOnce = 0 to run for each file, or 1 to only run once (presumably on teh entire directory). -#user_script_runOnce=0 +# user_script_runOnce=0 # User Script Success Codes. # # Specify the successcodes returned by the user script as a comma separated list. Linux default is 0 -#user_script_successCodes=0 +# user_script_successCodes=0 # User Script Clean After (0,1). # # Clean after? Note that delay function is used to prevent possible mistake :) Delay is intended as seconds -#user_script_clean=1 +# user_script_clean=1 # User Script Delay. # # Delay in seconds after processing. -#usdelay=120 +# usdelay=120 + +# ### NZBGET POST-PROCESSING SCRIPT ### +# ############################################################################## -### NZBGET POST-PROCESSING SCRIPT ### -############################################################################## import os import sys import datetime @@ -510,17 +511,19 @@ from core.autoProcess.autoProcessTV import autoProcessTV from core.nzbToMediaUtil import getDirs, extractFiles, cleanDir, update_downloadInfoStatus, get_downloadInfo, CharReplace, convert_to_ascii, get_nzoid, plex_update from core.nzbToMediaUserScript import external_script from core import logger, nzbToMediaDB +from six import text_type + # post-processing def process(inputDirectory, inputName=None, status=0, clientAgent='manual', download_id=None, inputCategory=None, failureLink=None): if core.SAFE_MODE and inputDirectory == core.NZB_DEFAULTDIR: logger.error( 'The input directory:[{0}] is the Default Download Directory. Please configure category directories to prevent processing of other media.'.format( - inputDirectory)) + inputDirectory)) return [-1, ""] if not download_id and clientAgent == 'sabnzbd': - download_id = get_nzoid(inputName) + download_id = get_nzoid(inputName) if clientAgent != 'manual' and not core.DOWNLOADINFO: logger.debug('Adding NZB download info for directory {0} to database'.format(inputDirectory)) @@ -543,7 +546,7 @@ def process(inputDirectory, inputName=None, status=0, clientAgent='manual', down "client_agent": unicode(clientAgent), "status": 0, "last_update": datetime.date.today().toordinal() - } + } myDB.upsert("downloads", newValueDict, controlValueDict) # auto-detect section @@ -556,7 +559,7 @@ def process(inputDirectory, inputName=None, status=0, clientAgent='manual', down if section is None: logger.error( 'Category:[{0}] is not defined or is not enabled. Please rename it or ensure it is enabled for the appropriate section in your autoProcessMedia.cfg and try again.'.format( - inputCategory)) + inputCategory)) return [-1, ""] else: usercat = "ALL" @@ -564,7 +567,7 @@ def process(inputDirectory, inputName=None, status=0, clientAgent='manual', down if len(section) > 1: logger.error( 'Category:[{0}] is not unique, {1} are using it. Please rename it or disable all other sections using the same category name in your autoProcessMedia.cfg and try again.'.format( - inputCategory, section.keys())) + inputCategory, section.keys())) return [-1, ""] if section: @@ -728,7 +731,7 @@ def main(args, section=None): clientAgent = 'sabnzbd' logger.info("Script triggered from SABnzbd 0.7.17+") result = process(args[1], inputName=args[2], status=args[7], inputCategory=args[5], clientAgent=clientAgent, - download_id='', failureLink=''.join(args[8:])) + download_id='', failureLink=''.join(args[8:])) # Generic program elif len(args) > 5 and args[5] == 'generic': logger.info("Script triggered from generic program") @@ -741,7 +744,7 @@ def main(args, section=None): for subsection in subsections: if not core.CFG[section][subsection].isenabled(): continue - for dirName in getDirs(section, subsection, link = 'move'): + for dirName in getDirs(section, subsection, link='move'): logger.info("Starting manual run for {0}:{1} - Folder:{2}".format(section, subsection, dirName)) logger.info("Checking database for download info for {0} ...".format(os.path.basename(dirName))) @@ -769,17 +772,19 @@ def main(args, section=None): try: dirName = dirName.encode(core.SYS_ENCODING) - except: pass + except: + pass inputName = os.path.basename(dirName) try: inputName = inputName.encode(core.SYS_ENCODING) - except: pass + except: + pass results = process(dirName, inputName, 0, clientAgent=clientAgent, download_id=download_id, inputCategory=subsection) if results[0] != 0: - logger.error("A problem was reported when trying to perform a manual run for {0}:{1}.".format( - section, subsection)) + logger.error("A problem was reported when trying to perform a manual run for {0}:{1}.".format + (section, subsection)) result = results if result[0] == 0: diff --git a/nzbToMylar.py b/nzbToMylar.py index 71f88bab..eba87a71 100755 --- a/nzbToMylar.py +++ b/nzbToMylar.py @@ -1,8 +1,8 @@ #!/usr/bin/env python2 # coding=utf-8 -# -############################################################################## -### NZBGET POST-PROCESSING SCRIPT ### + +# ############################################################################## +# ### NZBGET POST-PROCESSING SCRIPT ### # Post-Process to Mylar. # @@ -10,114 +10,115 @@ # # NOTE: This script requires Python to be installed on your system. -############################################################################## +# ############################################################################## # -### OPTIONS +# ### OPTIONS -## General +# ## General # Auto Update nzbToMedia (0, 1). # # Set to 1 if you want nzbToMedia to automatically check for and update to the latest version -#auto_update=0 +# auto_update=0 # Safe Mode protection of DestDir (0, 1). # # Enable/Disable a safety check to ensure we don't process all downloads in the default_downloadDirectory by mistake. -#safe_mode=1 +# safe_mode=1 -## Mylar +# ## Mylar # Mylar script category. # # category that gets called for post-processing with Mylar. -#myCategory=comics +# myCategory=comics # Mylar host. # # The ipaddress for your Mylar server. e.g For the Same system use localhost or 127.0.0.1 -#myhost=localhost +# myhost=localhost # Mylar port. -#myport=8090 +# myport=8090 # Mylar username. -#myusername= +# myusername= # Mylar password. -#mypassword= +# mypassword= # Mylar uses ssl (0, 1). # # Set to 1 if using ssl, else set to 0. -#myssl=0 +# myssl=0 # Mylar web_root # # set this if using a reverse proxy. -#myweb_root= +# myweb_root= # Mylar wait_for # # Set the number of minutes to wait after calling the force process, to check the issue has changed status. -#myswait_for=1 +# myswait_for=1 # Mylar watch directory. # # set this to where your Mylar completed downloads are. -#mywatch_dir= +# mywatch_dir= # Mylar and NZBGet are a different system (0, 1). # # Enable to replace local path with the path as per the mountPoints below. -#myremote_path=0 +# myremote_path=0 -## Posix +# ## Posix # Niceness for external tasks Extractor and Transcoder. # # Set the Niceness value for the nice command. These range from -20 (most favorable to the process) to 19 (least favorable to the process). -#niceness=10 +# niceness=10 # ionice scheduling class (0, 1, 2, 3). # # Set the ionice scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle. -#ionice_class=2 +# ionice_class=2 # ionice scheduling class data. # # Set the ionice scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is valid data. -#ionice_classdata=4 +# ionice_classdata=4 -## Network +# ## Network # Network Mount Points (Needed for remote path above) # # Enter Mount points as LocalPath,RemotePath and separate each pair with '|' # e.g. mountPoints=/volume1/Public/,E:\|/volume2/share/,\\NAS\ -#mountPoints= +# mountPoints= -## WakeOnLan +# ## WakeOnLan # use WOL (0, 1). # # 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 +# wolwake=0 # WOL MAC # # enter the mac address of the system to be woken. -#wolmac=00:01:2e:2D:64:e1 +# 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 +# wolhost=192.168.1.37 +# wolport=80 + +# ### NZBGET POST-PROCESSING SCRIPT ### +# ############################################################################## -### NZBGET POST-PROCESSING SCRIPT ### -############################################################################## import sys import nzbToMedia section = "Mylar" result = nzbToMedia.main(sys.argv, section) -sys.exit(result) \ No newline at end of file +sys.exit(result) diff --git a/nzbToNzbDrone.py b/nzbToNzbDrone.py index 63c64864..ac2e6d5f 100755 --- a/nzbToNzbDrone.py +++ b/nzbToNzbDrone.py @@ -1,8 +1,8 @@ #!/usr/bin/env python2 # coding=utf-8 -# -############################################################################## -### NZBGET POST-PROCESSING SCRIPT ### + +# ############################################################################## +# ### NZBGET POST-PROCESSING SCRIPT ### # Post-Process to NzbDrone. # @@ -10,229 +10,230 @@ # # NOTE: This script requires Python to be installed on your system. -############################################################################## -### OPTIONS ### +# ############################################################################## +# ### OPTIONS ### -## General +# ## General # Auto Update nzbToMedia (0, 1). # # Set to 1 if you want nzbToMedia to automatically check for and update to the latest version -#auto_update=0 +# auto_update=0 # Check Media for corruption (0, 1). # # Enable/Disable media file checking using ffprobe. -#check_media=1 +# check_media=1 # Safe Mode protection of DestDir (0, 1). # # Enable/Disable a safety check to ensure we don't process all downloads in the default_downloadDirectory by mistake. -#safe_mode=1 +# safe_mode=1 -## NzbDrone +# ## NzbDrone # NzbDrone script category. # # category that gets called for post-processing with NzbDrone. -#ndCategory=tv2 +# ndCategory=tv2 # NzbDrone host. # # The ipaddress for your NzbDrone/Sonarr server. e.g For the Same system use localhost or 127.0.0.1 -#ndhost=localhost +# ndhost=localhost # NzbDrone port. -#ndport=8989 +# ndport=8989 # NzbDrone API key. -#ndapikey= +# ndapikey= # NzbDrone uses ssl (0, 1). # # Set to 1 if using ssl, else set to 0. -#ndssl=0 +# ndssl=0 # NzbDrone web_root # # set this if using a reverse proxy. -#ndweb_root= +# ndweb_root= # NzbDrone wait_for # # Set the number of minutes to wait after calling the renamer, to check the episode has changed status. -#ndwait_for=2 +# ndwait_for=2 # NzbDrone Delete Failed Downloads (0, 1). # # set to 1 to delete failed, or 0 to leave files in place. -#nddelete_failed=0 +# nddelete_failed=0 # NzbDrone and NZBGet are a different system (0, 1). # # Enable to replace local path with the path as per the mountPoints below. -#ndremote_path=0 +# ndremote_path=0 -## Network +# ## Network # Network Mount Points (Needed for remote path above) # # Enter Mount points as LocalPath,RemotePath and separate each pair with '|' # e.g. mountPoints=/volume1/Public/,E:\|/volume2/share/,\\NAS\ -#mountPoints= +# mountPoints= -## Extensions +# ## Extensions # Media Extensions # # This is a list of media extensions that are used to verify that the download does contain valid media. -#mediaExtensions=.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg,.vob,.iso,.ts +# mediaExtensions=.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg,.vob,.iso,.ts -## Posix +# ## Posix # Niceness for external tasks Extractor and Transcoder. # # Set the Niceness value for the nice command. These range from -20 (most favorable to the process) to 19 (least favorable to the process). -#niceness=10 +# niceness=10 # ionice scheduling class (0, 1, 2, 3). # # Set the ionice scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle. -#ionice_class=2 +# ionice_class=2 # ionice scheduling class data. # # Set the ionice scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is valid data. -#ionice_classdata=4 +# ionice_classdata=4 -## Transcoder +# ## Transcoder # getSubs (0, 1). # # set to 1 to download subtitles. -#getSubs = 0 +# getSubs = 0 # subLanguages. # # subLanguages. create a list of languages in the order you want them in your subtitles. -#subLanguages = eng,spa,fra +# subLanguages = eng,spa,fra # Transcode (0, 1). # # set to 1 to transcode, otherwise set to 0. -#transcode=0 +# transcode=0 # create a duplicate, or replace the original (0, 1). # # set to 1 to cretae a new file or 0 to replace the original -#duplicate=1 +# duplicate=1 # ignore extensions. # # list of extensions that won't be transcoded. -#ignoreExtensions=.avi,.mkv +# ignoreExtensions=.avi,.mkv # outputFastStart (0,1). # # outputFastStart. 1 will use -movflags + faststart. 0 will disable this from being used. -#outputFastStart = 0 +# outputFastStart = 0 # outputVideoPath. # # outputVideoPath. Set path you want transcoded videos moved to. Leave blank to disable. -#outputVideoPath = +# outputVideoPath = # processOutput (0,1). # # processOutput. 1 will send the outputVideoPath to SickBeard/CouchPotato. 0 will send original files. -#processOutput = 0 +# processOutput = 0 # audioLanguage. # # audioLanguage. set the 3 letter language code you want as your primary audio track. -#audioLanguage = eng +# audioLanguage = eng # allAudioLanguages (0,1). # # allAudioLanguages. 1 will keep all audio tracks (uses AudioCodec3) where available. -#allAudioLanguages = 0 +# allAudioLanguages = 0 # allSubLanguages (0,1). # # allSubLanguages. 1 will keep all exisiting sub languages. 0 will discare those not in your list above. -#allSubLanguages = 0 +# allSubLanguages = 0 # embedSubs (0,1). # # embedSubs. 1 will embded external sub/srt subs into your video if this is supported. -#embedSubs = 1 +# embedSubs = 1 # burnInSubtitle (0,1). # # burnInSubtitle. burns the default sub language into your video (needed for players that don't support subs) -#burnInSubtitle = 0 +# burnInSubtitle = 0 # extractSubs (0,1). # # extractSubs. 1 will extract subs from the video file and save these as external srt files. -#extractSubs = 0 +# extractSubs = 0 # externalSubDir. # # externalSubDir. set the directory where subs should be saved (if not the same directory as the video) -#externalSubDir = +# externalSubDir = # outputDefault (None, iPad, iPad-1080p, iPad-720p, Apple-TV2, iPod, iPhone, PS3, xbox, Roku-1080p, Roku-720p, Roku-480p, mkv, mp4-scene-release). # # outputDefault. Loads default configs for the selected device. The remaining options below are ignored. # If you want to use your own profile, set None and set the remaining options below. -#outputDefault = None +# outputDefault = None # hwAccel (0,1). # # hwAccel. 1 will set ffmpeg to enable hardware acceleration (this requires a recent ffmpeg). -#hwAccel=0 +# hwAccel=0 # ffmpeg output settings. -#outputVideoExtension=.mp4 -#outputVideoCodec=libx264 -#VideoCodecAllow = -#outputVideoPreset=medium -#outputVideoFramerate=24 -#outputVideoBitrate=800k -#outputAudioCodec=libmp3lame -#AudioCodecAllow = -#outputAudioBitrate=128k -#outputQualityPercent = 0 -#outputAudioTrack2Codec = libfaac -#AudioCodec2Allow = -#outputAudioTrack2Bitrate = 128k -#outputAudioOtherCodec = libmp3lame -#AudioOtherCodecAllow = -#outputAudioOtherBitrate = 128k -#outputSubtitleCodec = +# outputVideoExtension=.mp4 +# outputVideoCodec=libx264 +# VideoCodecAllow = +# outputVideoPreset=medium +# outputVideoFramerate=24 +# outputVideoBitrate=800k +# outputAudioCodec=libmp3lame +# AudioCodecAllow = +# outputAudioBitrate=128k +# outputQualityPercent = 0 +# outputAudioTrack2Codec = libfaac +# AudioCodec2Allow = +# outputAudioTrack2Bitrate = 128k +# outputAudioOtherCodec = libmp3lame +# AudioOtherCodecAllow = +# outputAudioOtherBitrate = 128k +# outputSubtitleCodec = -## WakeOnLan +# ## WakeOnLan # use WOL (0, 1). # # 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 +# wolwake=0 # WOL MAC # # enter the mac address of the system to be woken. -#wolmac=00:01:2e:2D:64:e1 +# 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 +# wolhost=192.168.1.37 +# wolport=80 + +# ### NZBGET POST-PROCESSING SCRIPT ### +# ############################################################################## -### NZBGET POST-PROCESSING SCRIPT ### -############################################################################## import sys import nzbToMedia section = "NzbDrone" result = nzbToMedia.main(sys.argv, section) -sys.exit(result) \ No newline at end of file +sys.exit(result) diff --git a/nzbToSickBeard.py b/nzbToSickBeard.py index 73fefbfe..92474ea5 100755 --- a/nzbToSickBeard.py +++ b/nzbToSickBeard.py @@ -1,8 +1,8 @@ #!/usr/bin/env python2 # coding=utf-8 -# -############################################################################## -### NZBGET POST-PROCESSING SCRIPT ### + +# ############################################################################## +# ### NZBGET POST-PROCESSING SCRIPT ### # Post-Process to SickBeard. # @@ -10,245 +10,246 @@ # # NOTE: This script requires Python to be installed on your system. -############################################################################## -### OPTIONS ### +# ############################################################################## +# ### OPTIONS ### -## General +# ## General # Auto Update nzbToMedia (0, 1). # # Set to 1 if you want nzbToMedia to automatically check for and update to the latest version -#auto_update=0 +# auto_update=0 # Check Media for corruption (0, 1). # # Enable/Disable media file checking using ffprobe. -#check_media=1 +# check_media=1 # Safe Mode protection of DestDir (0, 1). # # Enable/Disable a safety check to ensure we don't process all downloads in the default_downloadDirectory by mistake. -#safe_mode=1 +# safe_mode=1 -## SickBeard +# ## SickBeard # SickBeard script category. # # category that gets called for post-processing with SickBeard. -#sbCategory=tv +# sbCategory=tv # SickBeard host. # # The ipaddress for your SickBeard/SickRage server. e.g For the Same system use localhost or 127.0.0.1 -#sbhost=localhost +# sbhost=localhost # SickBeard port. -#sbport=8081 +# sbport=8081 # SickBeard username. -#sbusername= +# sbusername= # SickBeard password. -#sbpassword= +# sbpassword= # SickBeard uses ssl (0, 1). # # Set to 1 if using ssl, else set to 0. -#sbssl=0 +# sbssl=0 # SickBeard web_root # # set this if using a reverse proxy. -#sbweb_root= +# sbweb_root= # SickBeard watch directory. # # set this to where your SickBeard completed downloads are. -#sbwatch_dir= +# sbwatch_dir= # SickBeard fork. # # set to default or auto to auto-detect the custom fork type. -#sbfork=auto +# sbfork=auto # SickBeard Delete Failed Downloads (0, 1). # # set to 1 to delete failed, or 0 to leave files in place. -#sbdelete_failed=0 +# sbdelete_failed=0 # SickBeard process method. # # set this to move, copy, hardlink, symlink as appropriate if you want to over-ride SB defaults. Leave blank to use SB default. -#sbprocess_method= +# sbprocess_method= # SickBeard and NZBGet are a different system (0, 1). # # Enable to replace local path with the path as per the mountPoints below. -#sbremote_path=0 +# sbremote_path=0 -## Network +# ## Network # Network Mount Points (Needed for remote path above) # # Enter Mount points as LocalPath,RemotePath and separate each pair with '|' # e.g. mountPoints=/volume1/Public/,E:\|/volume2/share/,\\NAS\ -#mountPoints= +# mountPoints= -## Extensions +# ## Extensions # Media Extensions # # This is a list of media extensions that are used to verify that the download does contain valid media. -#mediaExtensions=.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg,.vob,.iso,.ts +# mediaExtensions=.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg,.vob,.iso,.ts -## Posix +# ## Posix # Niceness for external tasks Extractor and Transcoder. # # Set the Niceness value for the nice command. These range from -20 (most favorable to the process) to 19 (least favorable to the process). -#niceness=10 +# niceness=10 # ionice scheduling class (0, 1, 2, 3). # # Set the ionice scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle. -#ionice_class=2 +# ionice_class=2 # ionice scheduling class data. # # Set the ionice scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is valid data. -#ionice_classdata=4 +# ionice_classdata=4 -## Transcoder +# ## Transcoder # getSubs (0, 1). # # set to 1 to download subtitles. -#getSubs=0 +# getSubs=0 # subLanguages. # # subLanguages. create a list of languages in the order you want them in your subtitles. -#subLanguages=eng,spa,fra +# subLanguages=eng,spa,fra # Transcode (0, 1). # # set to 1 to transcode, otherwise set to 0. -#transcode=0 +# transcode=0 # create a duplicate, or replace the original (0, 1). # # set to 1 to cretae a new file or 0 to replace the original -#duplicate=1 +# duplicate=1 # ignore extensions. # # list of extensions that won't be transcoded. -#ignoreExtensions=.avi,.mkv +# ignoreExtensions=.avi,.mkv # outputFastStart (0,1). # # outputFastStart. 1 will use -movflags + faststart. 0 will disable this from being used. -#outputFastStart=0 +# outputFastStart=0 # outputVideoPath. # # outputVideoPath. Set path you want transcoded videos moved to. Leave blank to disable. -#outputVideoPath= +# outputVideoPath= # processOutput (0,1). # # processOutput. 1 will send the outputVideoPath to SickBeard/CouchPotato. 0 will send original files. -#processOutput=0 +# processOutput=0 # audioLanguage. # # audioLanguage. set the 3 letter language code you want as your primary audio track. -#audioLanguage=eng +# audioLanguage=eng # allAudioLanguages (0,1). # # allAudioLanguages. 1 will keep all audio tracks (uses AudioCodec3) where available. -#allAudioLanguages=0 +# allAudioLanguages=0 # allSubLanguages (0,1). # # allSubLanguages. 1 will keep all exisiting sub languages. 0 will discare those not in your list above. -#allSubLanguages=0 +# allSubLanguages=0 # embedSubs (0,1). # # embedSubs. 1 will embded external sub/srt subs into your video if this is supported. -#embedSubs=1 +# embedSubs=1 # burnInSubtitle (0,1). # # burnInSubtitle. burns the default sub language into your video (needed for players that don't support subs) -#burnInSubtitle=0 +# burnInSubtitle=0 # extractSubs (0,1). # # extractSubs. 1 will extract subs from the video file and save these as external srt files. -#extractSubs=0 +# extractSubs=0 # externalSubDir. # # externalSubDir. set the directory where subs should be saved (if not the same directory as the video) -#externalSubDir= +# externalSubDir= # outputDefault (None, iPad, iPad-1080p, iPad-720p, Apple-TV2, iPod, iPhone, PS3, xbox, Roku-1080p, Roku-720p, Roku-480p, mkv, mp4-scene-release). # # outputDefault. Loads default configs for the selected device. The remaining options below are ignored. # If you want to use your own profile, set None and set the remaining options below. -#outputDefault=None +# outputDefault=None # hwAccel (0,1). # # hwAccel. 1 will set ffmpeg to enable hardware acceleration (this requires a recent ffmpeg). -#hwAccel=0 +# hwAccel=0 # ffmpeg output settings. -#outputVideoExtension=.mp4 -#outputVideoCodec=libx264 -#VideoCodecAllow= -#outputVideoPreset=medium -#outputVideoFramerate=24 -#outputVideoBitrate=800k -#outputAudioCodec=ac3 -#AudioCodecAllow= -#outputAudioChannels=6 -#outputAudioBitrate=640k -#outputQualityPercent= -#outputAudioTrack2Codec=libfaac -#AudioCodec2Allow= -#outputAudioTrack2Channels=2 -#outputAudioTrack2Bitrate=160k -#outputAudioOtherCodec=libmp3lame -#AudioOtherCodecAllow= -#outputAudioOtherChannels=2 -#outputAudioOtherBitrate=128k -#outputSubtitleCodec= +# outputVideoExtension=.mp4 +# outputVideoCodec=libx264 +# VideoCodecAllow= +# outputVideoPreset=medium +# outputVideoFramerate=24 +# outputVideoBitrate=800k +# outputAudioCodec=ac3 +# AudioCodecAllow= +# outputAudioChannels=6 +# outputAudioBitrate=640k +# outputQualityPercent= +# outputAudioTrack2Codec=libfaac +# AudioCodec2Allow= +# outputAudioTrack2Channels=2 +# outputAudioTrack2Bitrate=160k +# outputAudioOtherCodec=libmp3lame +# AudioOtherCodecAllow= +# outputAudioOtherChannels=2 +# outputAudioOtherBitrate=128k +# outputSubtitleCodec= -## WakeOnLan +# ## WakeOnLan # use WOL (0, 1). # # 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 +# wolwake=0 # WOL MAC # # enter the mac address of the system to be woken. -#wolmac=00:01:2e:2D:64:e1 +# 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 +# wolhost=192.168.1.37 +# wolport=80 + +# ### NZBGET POST-PROCESSING SCRIPT ### +# ############################################################################## -### NZBGET POST-PROCESSING SCRIPT ### -############################################################################## import sys import nzbToMedia section = "SickBeard" result = nzbToMedia.main(sys.argv, section) -sys.exit(result) \ No newline at end of file +sys.exit(result)