Auteur Topic: extra script in NZBget toevoegen  (gelezen 27984 keer)

Offline GeddyLee

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 31
  • -Ontvangen: 29
  • Berichten: 403
Re: extra script in NZBget toevoegen
« Reactie #30 Gepost op: 29 december 2014, 20:07:33 »
Nu ben ik je even kwijt .. naar deze?  #!/volume2/@appstore/python/bin/python2  Dan werken de scripts niet, of bedoel je? #!/usr/bin/env python
  • Mijn Synology: DS214+
  • HDD's: 2 X WD30EFRX
  • Extra's: DSM 6

Ben(V)

  • Gast
Re: extra script in NZBget toevoegen
« Reactie #31 Gepost op: 29 december 2014, 20:14:10 »
Die eerste, maar dan moet je wel python van de synocommunity hebben.
Die tweede werkt volgens mij met de python van Synology.

Offline GeddyLee

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 31
  • -Ontvangen: 29
  • Berichten: 403
Re: extra script in NZBget toevoegen
« Reactie #32 Gepost op: 29 december 2014, 20:46:23 »
Die heb ik erin staan: #!/volume2/@appstore/python/bin/python2


Python van Synocommunity heb ik, maar werken doen de scripts niet.
  • Mijn Synology: DS214+
  • HDD's: 2 X WD30EFRX
  • Extra's: DSM 6

Ben(V)

  • Gast
Re: extra script in NZBget toevoegen
« Reactie #33 Gepost op: 29 december 2014, 21:00:15 »
Misschien zit het in het formaat van de file
Download Notepad++ eens.

http://notepad-plus-plus.org/download/v6.7.2.html

Je moet daarmee het script inlezen.
Kies de pulldown "Edit" en selecteer EOL conversion.
Als je dat gedaan hebt moet er bij de pulldown "Encoding" kiezen voor utf-8 without BOM

Als alles goed is zie je nu onderin de info balk "Unix" en "UTF-8 w/o Bom" staan.
Daarna kun je het script saven op je share.

Je kun ook even een klein test scriptje maken met Notepad++

Iets van:
Code: (python) [Selecteer]
#!/volume1/@appstore/python/bin/python2
print "Dit is een Test"

Als je dat saved op bijvoorbeeld de shar "video" op volume1 met de naam Test.py,
dan zou je die moeten kunnen aanroepen met:
Citaat
/volume1/video/Test.py




Offline GeddyLee

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 31
  • -Ontvangen: 29
  • Berichten: 403
Re: extra script in NZBget toevoegen
« Reactie #34 Gepost op: 29 december 2014, 21:33:57 »
Ook gedaan, het mag allemaal niet baten .. Om gek van te worden  :o
  • Mijn Synology: DS214+
  • HDD's: 2 X WD30EFRX
  • Extra's: DSM 6

Ben(V)

  • Gast
Re: extra script in NZBget toevoegen
« Reactie #35 Gepost op: 29 december 2014, 21:37:38 »
Tja dan weet ik het ook even niet meer.
Kan het zelf niet uitproberen want ik gebruik geen nzb's.

Offline GeddyLee

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 31
  • -Ontvangen: 29
  • Berichten: 403
Re: extra script in NZBget toevoegen
« Reactie #36 Gepost op: 29 december 2014, 21:50:46 »
Test.py werkt wel .. Om het nog aparter te maken :)
  • Mijn Synology: DS214+
  • HDD's: 2 X WD30EFRX
  • Extra's: DSM 6

Ben(V)

  • Gast
Re: extra script in NZBget toevoegen
« Reactie #37 Gepost op: 29 december 2014, 22:01:59 »
Ik zag in je flatten.py staan dat je volume2 gebruikt.
Heb je python van de SynoCommunity dan op volume2 geinstalleerd?

Plaats het hele script eens in een "code" venster of geef de locatie waar je hem vandaan hebt.
Kan ik er even naar kijken.

Je kunt dat flatten.py natuurlijk ook zo aanroepen om te zien of je script wel werkt.

Offline GeddyLee

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 31
  • -Ontvangen: 29
  • Berichten: 403
Re: extra script in NZBget toevoegen
« Reactie #38 Gepost op: 29 december 2014, 22:11:21 »
Ja, op volume2 installeer ik alles .. Dan heb ik het apart van mijn mediabestanden, vraag mij niet waarom  :)


Ik heb alle mogelijke paden naar python gehad, geen errors of wat dan ook is er langs gekomen. Ik zie ook niet terug dat flatten of reverse worden aangeroepen, deletesamples wordt aangeroepen en gooit eventuele samples keurig uit de download.



Code: (python) [Selecteer]
#!/usr/bin/env python
#
##############################################################################
### NZBGET POST-PROCESSING SCRIPT                                          ###


# Flatten all downloaded files into the root download directory.
#
# This removes all of the sub-folders created by the unpack process.
# This should run before other scripts.
#
# NOTE: This script requires Python to be installed on your system.
##############################################################################
### OPTIONS                                                                ###


# Destination Directory.
#
# Set the directory where you want all files to be moved to.
# Use this if you want all downloaded files in a single "root" directory.
# If left blank, files will all be "flattened" into the individual download's sub-directory.
#DestinationDirectory=


# Append Categories (yes, no).
#
# If using the Destination Directory above, then this option will append the download category.
#AppendCategories=no




### NZBGET POST-PROCESSING SCRIPT                                          ###
##############################################################################
import os
import sys
import shutil


# NZBGet Exit Codes
NZBGET_POSTPROCESS_PARCHECK = 92
NZBGET_POSTPROCESS_SUCCESS = 93
NZBGET_POSTPROCESS_ERROR = 94
NZBGET_POSTPROCESS_NONE = 95


if not os.environ.has_key('NZBOP_SCRIPTDIR'):
    print "This script can only be called from NZBGet (11.0 or later)."
    sys.exit(0)


if os.environ['NZBOP_VERSION'][0:5] < '11.0':
    print "[ERROR] NZBGet Version %s is not supported. Please update NZBGet." % (str(os.environ['NZBOP_VERSION']))
    sys.exit(0)


print "Script triggered from NZBGet Version %s." % (str(os.environ['NZBOP_VERSION']))
status = 0
if os.environ.has_key('NZBPP_TOTALSTATUS'):
    if not os.environ['NZBPP_TOTALSTATUS'] == 'SUCCESS':
        print "[ERROR] Download failed with status %s." % (os.environ['NZBPP_STATUS'])
        status = 1


else:
    # Check par status
    if os.environ['NZBPP_PARSTATUS'] == '1' or os.environ['NZBPP_PARSTATUS'] == '4':
        print "[ERROR] Par-repair failed, setting status \"failed\"."
        status = 1


    # Check unpack status
    if os.environ['NZBPP_UNPACKSTATUS'] == '1':
        print "[ERROR] Unpack failed, setting status \"failed\"."
        status = 1


    if os.environ['NZBPP_UNPACKSTATUS'] == '0' and os.environ['NZBPP_PARSTATUS'] == '0':
        # Unpack was skipped due to nzb-file properties or due to errors during par-check


        if os.environ['NZBPP_HEALTH'] < 1000:
            print "[ERROR] Download health is compromised and Par-check/repair disabled or no .par2 files found. Setting status \"failed\"."
            print "[ERROR] Please check your Par-check/repair settings for future downloads."
            status = 1


        else:
            print "[ERROR] Par-check/repair disabled or no .par2 files found, and Unpack not required. Health is ok so handle as though download successful."
            print "[WARNING] Please check your Par-check/repair settings for future downloads."


# Check if destination directory exists (important for reprocessing of history items)
if not os.path.isdir(os.environ['NZBPP_DIRECTORY']):
    print "[ERROR] Nothing to post-process: destination directory", os.environ['NZBPP_DIRECTORY'], "doesn't exist. Setting status \"failed\"."
    status = 1


# All checks done, now launching the script.
if status == 1:
    sys.exit(NZBGET_POSTPROCESS_NONE)


def removeEmptyFolders(path, removeRoot=True):
    #Function to remove empty folders
    if not os.path.isdir(path):
        return


    # remove empty subfolders
    print "[INFO] Checking for empty folders in:%s" % path
    files = os.listdir(path)
    if len(files):
        for f in files:
            fullpath = os.path.join(path, f)
            if os.path.isdir(fullpath):
                removeEmptyFolders(fullpath)


    # if folder empty, delete it
    files = os.listdir(path)
    if len(files) == 0 and removeRoot:
        print "[INFO] Removing empty folder:%s" % path
        os.rmdir(path)


directory = os.path.normpath(os.environ['NZBPP_DIRECTORY'])
if os.environ['NZBPO_DESTINATIONDIRECTORY'] and os.path.isdir(os.environ['NZBPO_DESTINATIONDIRECTORY']):
    destination = os.environ['NZBPO_DESTINATIONDIRECTORY']
    if os.environ['NZBPO_APPENDCATEGORIES'] == 'yes':
        destination = os.path.join(destination, os.environ['NZBPP_CATEGORY'])
else:
    destination = directory
print "Flattening directory: %s" % (directory)
for dirpath, dirnames, filenames in os.walk(directory):
    for fileName in filenames:
        outputFile = os.path.join(dirpath, fileName)
        if dirpath == directory:
            continue
        target = os.path.join(destination, fileName)
        try:
            shutil.move(outputFile, target)
        except:
            print "[ERROR] Could not flatten %s" % outputFile
removeEmptyFolders(directory)  # Cleanup empty directories
sys.exit(NZBGET_POSTPROCESS_SUCCESS)
  • Mijn Synology: DS214+
  • HDD's: 2 X WD30EFRX
  • Extra's: DSM 6

Ben(V)

  • Gast
Re: extra script in NZBget toevoegen
« Reactie #39 Gepost op: 29 december 2014, 22:16:10 »
Zal er morgen even naar kijken.
Moet nu even wat anders doen.

Offline GeddyLee

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 31
  • -Ontvangen: 29
  • Berichten: 403
Re: extra script in NZBget toevoegen
« Reactie #40 Gepost op: 29 december 2014, 22:19:01 »
Beter?


Als ik flatten aanroep krijg ik: /usr/local/nzbget/share/nzbget/scripts/nzbToMedia$ /usr/local/nzbget/share/nzbget/scripts/nzbToMedia/flatten.py
This script can only be called from NZBGet (11.0 or later).
  • Mijn Synology: DS214+
  • HDD's: 2 X WD30EFRX
  • Extra's: DSM 6

Ben(V)

  • Gast
Re: extra script in NZBget toevoegen
« Reactie #41 Gepost op: 30 december 2014, 09:41:48 »
Dat bewijst in ieder geval dat het script gewoon wil draaien.
Dat is namelijk de eerste test die hij doet.

Ik zal nu eens even naar dat script kijken en eventueel aanpassen zodat al die meldingen die naar het scherm gaan eens naar een logfile geschreven woirdt, dan kun je tenminste zien wat er gebeurd.

Ben(V)

  • Gast
Re: extra script in NZBget toevoegen
« Reactie #42 Gepost op: 30 december 2014, 12:38:02 »
Inmiddels weer wat te weten gekomen.

Het NZBet package bevat ook een python distributie en wel python 2.7.9
Dus die eerste regel in het python script (#!/usr/bin/env python) zal goed werken.
Hij gebruikt dan de distributie versie die met NZBget meekomt.

Die eerste regel is geen python code maar onder Linux wordt zo'n .py bestandje behandelt alsof het een script is en die eerste regel start dan python op en python voert dan de python code uit.

Wel is het van belang om het bestand met Notepad++ te saven als utf-8 w/o BOM en EOL conversion UNIX/OSX format.
Voor Python maakt dat niet uit maar voor Linux wel want die snapt dan niets van het script.

Verder kan ik niets verkeerts vinden in dat flatten.py script.

Ik heb misschien wel je probleem gevonden.
In NZBget zelf moet je in "Settings"  ook nog per catagorie aangeven welk postprocess script je voor die catagorie aanroept. Als je dat niet gedaan hebt wordt het script nooit aangeroepen.

Offline darryl12123

  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 0
  • Berichten: 39
Re: extra script in NZBget toevoegen
« Reactie #43 Gepost op: 31 december 2014, 08:32:31 »
Misschien een domme vraag, maar kan het nergens vinden, maar hoe komen jullie in die ScriptDir map? Jullie gebruiken daarvoor zeker een programmaatje? Welke is dat?


Thanks!
  • Mijn Synology: DS214+
  • HDD's: 2 x WD Red 2 TB

Offline GeddyLee

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 31
  • -Ontvangen: 29
  • Berichten: 403
Re: extra script in NZBget toevoegen
« Reactie #44 Gepost op: 31 december 2014, 09:54:23 »
@darryl12123 Nee hoor, is geen domme vraag. Ik gebruik winscp.


http://winscp.net/eng/docs/lang:nl  Inloggen met root en je DS wachtwoord als winscp verbinding maakt met je DS.


@Ben, dat was het! Werkt!  :P  tot op zekere hoogte, kun jij DeleteSamples zodanig aanpassen dat alle bestanden van een bepaalde grootte worden verwijdert? Dat gebeurt nu alleen als het om onderstaande bestanden gaat maar ik wil dat alles verwijdert wordt:
.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg,.vob,.iso


NZBGet heeft zelf ook een "cleanup" functie, maar die doet niets met submappen, helaas ..
  • Mijn Synology: DS214+
  • HDD's: 2 X WD30EFRX
  • Extra's: DSM 6


 

Advies: HD upgrade of extra NAS

Gestart door koolenboerBoard Aankoopadvies

Reacties: 13
Gelezen: 3077
Laatste bericht 10 maart 2016, 22:35:52
door koolenboer
Extra Synology NAS

Gestart door phdBoard Aankoopadvies

Reacties: 5
Gelezen: 2052
Laatste bericht 03 januari 2014, 18:54:41
door phd
Extra (tweede) schijf plaatsen

Gestart door robdopBoard NAS hardware vragen

Reacties: 9
Gelezen: 3182
Laatste bericht 13 februari 2016, 14:49:39
door Robert Koopman
Extra memory in DS411

Gestart door FlupkeBoard NAS hardware vragen

Reacties: 4
Gelezen: 5317
Laatste bericht 03 mei 2014, 15:20:32
door Flupke
extra website voor .exe files

Gestart door flaBoard Web Station

Reacties: 8
Gelezen: 2543
Laatste bericht 23 maart 2014, 11:30:43
door fla