mirror of
https://github.com/clinton-hall/nzbToMedia.git
synced 2025-08-20 05:13:16 -07:00
Added external userscript for "other" cat Torrents. #185
This commit is contained in:
parent
b7e3a71388
commit
8df349bcdb
2 changed files with 63 additions and 1 deletions
|
@ -177,6 +177,8 @@ def main(inputDirectory, inputName, inputCategory, inputHash, inputID):
|
||||||
time.sleep(5) # Give Torrent client some time to catch up with the change
|
time.sleep(5) # Give Torrent client some time to catch up with the change
|
||||||
|
|
||||||
processCategories = Set([cpsCategory, sbCategory, hpCategory, mlCategory, gzCategory])
|
processCategories = Set([cpsCategory, sbCategory, hpCategory, mlCategory, gzCategory])
|
||||||
|
if inputCategory == "":
|
||||||
|
inputCategory = "UNCAT"
|
||||||
|
|
||||||
if inputCategory and not (inputCategory in processCategories): # no extra processing to be done... yet.
|
if inputCategory and not (inputCategory in processCategories): # no extra processing to be done... yet.
|
||||||
Logger.info("MAIN: No further processing to be done for category %s.", inputCategory)
|
Logger.info("MAIN: No further processing to be done for category %s.", inputCategory)
|
||||||
|
@ -184,6 +186,9 @@ def main(inputDirectory, inputName, inputCategory, inputHash, inputID):
|
||||||
elif status == 0 or (inputCategory in [hpCategory, mlCategory, gzCategory]): # if movies linked/extracted or for other categories.
|
elif status == 0 or (inputCategory in [hpCategory, mlCategory, gzCategory]): # if movies linked/extracted or for other categories.
|
||||||
Logger.debug("MAIN: Calling autoProcess script for successful download.")
|
Logger.debug("MAIN: Calling autoProcess script for successful download.")
|
||||||
status = 0 # hp, my, gz don't support failed.
|
status = 0 # hp, my, gz don't support failed.
|
||||||
|
elif (user_script_categories != "NONE" and inputCategory in user_script_categories) or user_script_categories == "ALL":
|
||||||
|
Logger.info("MAIN: Processing user script %s.", user_script)
|
||||||
|
result, deleteOriginal = external_script(outputDestination)
|
||||||
else:
|
else:
|
||||||
Logger.error("MAIN: Something failed! Please check logs. Exiting")
|
Logger.error("MAIN: Something failed! Please check logs. Exiting")
|
||||||
sys.exit(-1)
|
sys.exit(-1)
|
||||||
|
@ -233,6 +238,38 @@ def main(inputDirectory, inputName, inputCategory, inputHash, inputID):
|
||||||
|
|
||||||
Logger.info("MAIN: All done.")
|
Logger.info("MAIN: All done.")
|
||||||
|
|
||||||
|
def external_script(outputDestination):
|
||||||
|
|
||||||
|
result_final = int(0) # start at 0.
|
||||||
|
for dirpath, dirnames, filenames in os.walk(outputDestination):
|
||||||
|
for file in filenames:
|
||||||
|
|
||||||
|
filePath = os.path.join(dirpath, file)
|
||||||
|
fileName, fileExtension = os.path.splitext(file)
|
||||||
|
|
||||||
|
if fileExtension in user_script_mediaExtensions or user_script_mediaExtensions == "ALL":
|
||||||
|
command = [user_script]
|
||||||
|
for param in user_script_param:
|
||||||
|
if param == "FN":
|
||||||
|
command.append(file)
|
||||||
|
continue
|
||||||
|
if param == "FP":
|
||||||
|
command.append(filePath)
|
||||||
|
continue
|
||||||
|
if param == "DN":
|
||||||
|
command.append(dirpath)
|
||||||
|
continue
|
||||||
|
Logger.info("Running script %s on file %s.", command, filePath)
|
||||||
|
try:
|
||||||
|
result = call(command)
|
||||||
|
except:
|
||||||
|
Logger.exception("UserScript %s has failed", command)
|
||||||
|
result = 1
|
||||||
|
final_result = final_result + result
|
||||||
|
|
||||||
|
time.sleep(user_delay)
|
||||||
|
return final_result, user_script_clean
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
#check to migrate old cfg before trying to load.
|
#check to migrate old cfg before trying to load.
|
||||||
|
@ -291,6 +328,15 @@ if __name__ == "__main__":
|
||||||
categories.append(hpCategory)
|
categories.append(hpCategory)
|
||||||
categories.append(mlCategory)
|
categories.append(mlCategory)
|
||||||
categories.append(gzCategory)
|
categories.append(gzCategory)
|
||||||
|
|
||||||
|
user_script_categories = config.get("UserScript", "user_script_categories") # NONE
|
||||||
|
if user_script_categories != "None"
|
||||||
|
user_manage_compressed = int(config.get("UserScript", "user_manage_compressed"))
|
||||||
|
user_script_mediaExtensions = (config.get("UserScript", "user_script_mediaExtensions")).split(',')
|
||||||
|
user_script = config.get("UserScript", "user_script_path")
|
||||||
|
user_script_param = (config.get("UserScript", "user_script_param")).split(',')
|
||||||
|
user_script_clean = int(config.get("UserScript", "user_script_clean"))
|
||||||
|
user_delay = int(config.get("UserScript", "delay"))
|
||||||
|
|
||||||
transcode = int(config.get("Transcoder", "transcode"))
|
transcode = int(config.get("Transcoder", "transcode"))
|
||||||
|
|
||||||
|
|
|
@ -83,7 +83,7 @@ useLink = hard
|
||||||
###### outputDirectory - Default output directory (categories will be appended as sub directory to outputDirectory)
|
###### outputDirectory - Default output directory (categories will be appended as sub directory to outputDirectory)
|
||||||
outputDirectory = /abs/path/to/complete/
|
outputDirectory = /abs/path/to/complete/
|
||||||
###### Other categories/labels defined for your downloader. Does not include CouchPotato, SickBeard, HeadPhones, Mylar categories.
|
###### Other categories/labels defined for your downloader. Does not include CouchPotato, SickBeard, HeadPhones, Mylar categories.
|
||||||
categories = music_videos,pictures,software
|
categories = music_videos,pictures,software,
|
||||||
###### uTorrent Hardlink solution (You must edit this if your using TorrentToMedia.py with uTorrent)
|
###### uTorrent Hardlink solution (You must edit this if your using TorrentToMedia.py with uTorrent)
|
||||||
uTorrentWEBui = http://localhost:8090/gui/
|
uTorrentWEBui = http://localhost:8090/gui/
|
||||||
uTorrentUSR = your username
|
uTorrentUSR = your username
|
||||||
|
@ -126,6 +126,22 @@ host = 192.168.1.37
|
||||||
port = 80
|
port = 80
|
||||||
mac = 00:01:2e:2D:64:e1
|
mac = 00:01:2e:2D:64:e1
|
||||||
|
|
||||||
|
[UserScript]
|
||||||
|
#Use user_script for uncategorized download?
|
||||||
|
#Set the categories to use external script, comma separated.
|
||||||
|
#Use "UNCAT" to process non-category downloads, and "ALL" for all. Set to "NONE" to disable external script.
|
||||||
|
user_script_categories = NONE
|
||||||
|
#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
|
||||||
|
#Specify the path of the script
|
||||||
|
user_script_path = /media/test/script/script.sh
|
||||||
|
#Specify the argument(s) passed to script, comma separated in order.
|
||||||
|
#for example FP,FN,DN for file path (absolute file name with path), file anme, absolute directory name (with path).
|
||||||
|
#So the result is /media/test/script/script.sh FP FN DN
|
||||||
|
user_script_param = FN
|
||||||
|
#Clean after? Note that delay function is used to prevent possible mistake :) Delay is intended as seconds
|
||||||
|
user_script_clean = 1
|
||||||
|
delay = 120
|
||||||
|
|
||||||
# Logging configuration
|
# Logging configuration
|
||||||
[loggers]
|
[loggers]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue