Post of Pre script gebruiken?

Stel hier je vragen in het Nederlands.
Je zult sneller (en misschien betere) antwoorden in de engelstalige "boards" krijgen. TIP: je kunt je "profile" ook op Nederlands instellen.
Post Reply
Richard63
Newbie
Newbie
Posts: 17
Joined: January 18th, 2015, 3:58 pm

Post of Pre script gebruiken?

Post by Richard63 »

Hallo ik gebruik al een pre en een post script voor sabnzbd, maar wil nu een functie uitbreiden met iets dat handmatig al kan.

Je kiest een nzb file en die komt dat in de wachtrij te staan.
de titel is dan bv "American Beauty.1999.hdtv.divx.dutch.subs"

ik verander dat dan in de wachtrij door er op te klikken en dan de naam te veranderen in "American Beauty (1999)"

dit wil ik nu gaan automatiseren.

Ik heb al een script nu dat de punten en het jaartal tussen haakjes zet en alles daar achter verwijderd.

nu wil ik dat in de wachtrij zetten met de nieuwe naam (zodat na het downloaden en uitpakken etc. het bestand naar completed gemoved word met de nieuwe naam)

is dit uberhaubt mogelijk (met een script de wachtrij naam te beinvloeden)?????

of moet ik dit in een POST script gaan doen na dat sab er mee klaar is ?

PS ik verander dus feitenlijk de folder naam en niet de bestanden daar in.

wie kan me advies geven ?
het script tot dusver

Code: Select all

#!/usr/bin/python

import sys
import os
import re
import urllib


#full_path = sys.argv[1:2][0]
#job_name = sys.argv[3:4][0]
#category = sys.argv[5:6][0]

full_path = "I:/Movie.Name.2015.BDRip.x264-Group"
job_name = "Movie.Name.2015.BDRip.x264-Group"
category = "movie"


# Determine new file name
find_year = re.search("\d\d\d\d", job_name).start()
movie_name = job_name[0:find_year-1].replace("."," ")
movie_year = job_name[find_year:find_year+4]
new_name = movie_name + " (" + movie_year + ")"
new_file_name = new_name


print (job_name)
print (" wordt ")
print (new_file_name)
User avatar
shypike
Administrator
Administrator
Posts: 19774
Joined: January 18th, 2008, 12:49 pm

Re: Post of Pre script gebruiken?

Post by shypike »

Je kunt in het pre-queue script de opdracht naam al veranderen.
Als je Season Sort of Generic Sort gebruikt kun je vervolgens zorgen dat de namen van de media files die van de map volgen.
Richard63
Newbie
Newbie
Posts: 17
Joined: January 18th, 2015, 3:58 pm

Re: Post of Pre script gebruiken?

Post by Richard63 »

Maar hoe moet ik dat doen dan (kan nergens een voorbeeld of uitleg of een commando vinden die dat doet)

welke van de volgende kan ik hiervoor gebruiken ?

# outputparams (what this script tells sabnzbd)
# The script writes the results to the console, each parameter on a separate line.
# Each parameter (except 1) can be an empty line, meaning the original value.
# 1 : 0=Refuse, 1=Accept
# 2 : Name of the NZB (no path, no ".nzb") <-- deze ?
# 3 : PP (0, 1, 2 or 3)
# 4 : Category
# 5 : Script (basename)
# 6 : Priority (-100 -2, -1, 0 or 1, meaning Default, Paused, Low, Normal, High )
# 7 : Group to be used (in case your provider doesn't carry all groups and there are multiple groups in the NZB)
Richard63
Newbie
Newbie
Posts: 17
Joined: January 18th, 2015, 3:58 pm

Re: Post of Pre script gebruiken?

Post by Richard63 »

OK, ik heb het gevonden, en ook waarom het niet werkte met vorige script.

de sys.argv die ik vond zijn niet juist in eerste script (misschien is dat in huidige versie van sab anders als toen het script geplaatst werd)

het werkende script is nu: (inclusief een notificatie naar KODY.TV)

Code: Select all

#!/usr/bin/python
__author__ = 'Richard van Soest (10-11-2015)'
#
import sys
import os
import re
import urllib
import json
from urllib.request import urlopen
from urllib.request import Request
from urllib.parse import unquote
from urllib.parse import urlparse

try:
	(full_path, job_name, PP, category, script_name, prio, dl_size, group_list, show_name, season_name, episode_nr, episode_name) = sys.argv
	dl_size = int(dl_size)
except:
	sys.exit(1) # exit with 1 causes SabNzbd to ignore this script.	   

# not needed anymore because of above.
#full_path   = sys.argv[0:1][0]
#job_name    = sys.argv[1:2][0]
#PP          = sys.argv[2:3][0]
#category    = sys.argv[3:4][0]
#script_name = sys.argv[4:5][0]
#dl_size     = sys.argv[6:7][0]
#group_list  = sys.argv[7:8][0]
#show_name   = sys.argv[8:9][0]
#season_name = sys.argv[9:10][0]
#episode_nr  = sys.argv[10:11][0]
#episode_name= sys.argv[11:12][0]

#print ("full path = " + full_path)
#print ("full name = " + job_name)
#print ("category = " + category)
#print("------------------------------------")


# Determine new file name
find_year    = re.search("\d\d\d\d", job_name).start()                 # position where year begins
movie_name   = job_name[0:find_year-1].replace("."," ")
movie_year   = job_name[find_year:find_year+4]
new_name     = movie_name + " (" + movie_year + ")"
dut_filter   = new_name.replace("[DUT] ","")  # filter [DUT] from send to SAB names
new_nzb_name = dut_filter

# send results to SabNZBD
print ("1")    # 0=Refuse, 1=Accept (correct me if i am wrong)
print (new_nzb_name)
print (PP)
print (category)
print (script_name)
print ("-100")
print (group_list)

# following is NOT given as result to SabNZBD (for internal use only)
#print (dl_size)
#print (show_name)
#print (season_name)
#print (episode_nr)
#print (episode_name)


#
#
#

total = len(sys.argv)
cmdargs = str(sys.argv)

sentence = new_nzb_name

new = sentence.replace(" ", "%20")
#print (new)
# laat dit weg om geen notificatie naar kody te gebruiken
#
url = 'http://192.168.2.4/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22GUI.ShowNotification%22,%22params%22:{%22displaytime%22:10000,%22title%22:%22SABNzbd%22,%22message%22:%22Start%20Download%20'+new+'%22,%22image%22:%22http://sabnzbd.org/icon/sab2_512.png%22},%22id%22:1}'
#
response_stream = urlopen(url)

#print (url)

json_response = response_stream.read()

sys.exit(0)  # 0 means OK
Post Reply