#41
|
|||
|
|||
![]()
Wie sieht deine FileBot Konfiguration aus? Bei mir wird mit "--lang de" alles auf deutsch benannt.
|
#42
|
|||
|
|||
![]()
Hallo Obi-wan,
ich hab gesehen du hattest auch das Problem den Filebot unter Jdownloader richtig "aufzurufen". Könntest du mir deine aktuellen Scripts schicken einmal für den Eventscripter und das zweite Externe. Wäre dir mehr als dankbar. ![]() |
#43
|
|||
|
|||
![]()
Hi @all,
I’m using Entware-ng on an USB-stick with my zyxel NSA325v2 NAS. Information about Entware-ng can be found here: **External links are only visible to Support Staff****External links are only visible to Support Staff** My goal is to use filebot. I did install java 1.8.0_73 using the file ejdk-8u73-linux-arm-sflt.tar.gz. ARMv5/ARMv6/ARMv7 Linux - SoftFP ABI, Little Endian 2 http://www.oracle.com/technetwork/ja...ads/index.html I did install the latest jdownloader-2. I did install the latest filebot-version: filebot_4.6.1_noarch.ipk Java, Jdownloader and filebot are installed under /opt on my entware-ng usb-stick. Java & Jdownloader-2 are working well. Within jdownloader I have installed the plugin “EventScripter”. I did put the following event-script into EventScripter: Code:
[{"eventTrigger":"ON_ARCHIVE_EXTRACTED", "enabled":true, "name":"FileBot", "script":"var amcFile = "/opt/share/filebot/jdtofilebot.sh"; \n var path = archive.getFolder(); callAsync(function() {}, amcFile, path);", "eventTriggerSettings":{}}] Code:
#!/bin/sh ##FileBot needs these variables LOG="/i-data/path-to-my-logfiles/Log-Files/amc.log" EXC="/i-data/ path-to-my-logfiles /Log-Files/amc.txt" SERIEN="/i-data/path-to-my-series/Series/{n}/Staffel {s}/{n} S{s}E{e}" FILME="/i-data/path-to-my-videos/Movies/{n} ({y})/{n} ({fn.contains('1080') ? '1080p ':''}{fn.contains('720') ? '720p ':''}{fn.contains('3D') || fn.contains('3-D') ? '3D ':''}HD)" # ANIME="/i-data/md0/Anime/{n}/{n} E{absolute}" ##Run FileBot # /ffp/filebot/filebot.sh -script fn:amc --lang de --log-file $LOG --action move "$1" --def "seriesFormat=$SERIEN" "movieFormat=$FILME" "animeFormat=$ANIME" -non-strict --def clean=y --def excludeList=$EXC --def xbmc=10.0.1.5 /bin/sh /opt/share/filebot/bin/filebot.sh -script fn:amc --lang de --log-file $LOG --action move "$1" --def "seriesFormat=$SERIEN" "movieFormat=$FILME" -non-strict --def clean=y --def excludeList=$EXC --def xbmc=10.0.1.5 ## Clean empty folders, samples etc after processing /bin/sh /opt/share/filebot/bin/filebot.sh -script fn:cleaner "$1" --def root=y jdtofilebot.sh and filebot.sh have admin-permissions and are set as executable. Jdownloader runs as admin. The content of filebot.sh is: Code:
#!/bin/sh # make sure required environment variables are set if [ -z "$USER" ] then export USER=`whoami` fi APP_ROOT="/opt/share/filebot" APP_DATA="$APP_ROOT/data/$USER" # add APP_ROOT to LD_LIBRARY_PATH if [ ! -z "$LD_LIBRARY_PATH" ] then export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$APP_ROOT" else export LD_LIBRARY_PATH="$APP_ROOT" fi # force JVM language and encoding settings export LANG="en_US.UTF-8" export LC_ALL="en_US.UTF-8" # FileBot settings # EXTRACTOR="SevenZipNativeBindings" # use the lib7-Zip-JBinding.so native library # EXTRACTOR="SevenZipExecutable" # use the 7z executable EXTRACTOR="ApacheVFS" # use Apache Commons VFS2 with junrar plugin /opt/java/ejre1.7.0_55/bin/java $JAVA_OPTS -Dunixfs=false -DuseExtendedFileAttributes=true -DuseCreationDate=false -Dfile.encoding="UTF-8" -Dsun.net.client.defaultConnectTimeout=10000 -Dsun.net.client.defaultReadTimeout=60000 -Dapplication.deployment=ipkg -Dnet.filebot.Archive.extractor="$EXTRACTOR" -Dnet.filebot.AcoustID.fpcalc="fpcalc" -Dapplication.dir="$APP_DATA" -Djava.io.tmpdir="$APP_DATA/temp" -Duser.home="$APP_DATA" -jar "$APP_ROOT/FileBot.jar" "$@" When I ran that setup for the first time, Jdownloader asked me whether it should trigger the event-script above. I confirmed that. So I guess that the event trigger itself works. However nothing happened to my extracted file/folder in my download-folder (e.g.: the downloaded file was not moved to the according series/season-folder). Amc.log and amc.txt are still empty. I opened a shell session and tried the following commands: ~ # /opt/java/ejdk1.8.0_73/linux_arm_sflt/jre/bin/java -version java version "1.8.0_73" Java(TM) SE Embedded Runtime Environment (build 1.8.0_73-b02, headless) Java HotSpot(TM) Embedded Client VM (build 25.73-b02, mixed mode) ~ # /opt/java/ejdk1.8.0_73/linux_arm_sflt/jre/bin/java /opt/share/filebot/FileBot.jar Error: Could not find or load main class .opt.share.filebot.FileBot.jar So Java itself is fine (I guess, since jdownloader works well with java), however something is wrong with FileBot. What did I do wrong? What can I do to fix this? Thank you for your help. Last edited by michldi; 10.02.2016 at 10:34. |
#44
|
||||
|
||||
![]()
I suggest to change jdtofilebot.sh so it simply creates an empty folder. That way you will know if JDownloader -> script is working fine.
__________________
JD-Dev & Server-Admin |
#45
|
|||
|
|||
![]()
jiaz, ich hab deinen tipp befolgt und jdtofilebot.sh mit folgendem code befüllt:
Code:
#!/bin/sh /bin/mkdir /opt/neuneuneu /bin/mkdir /opt/path das ergebnis: jdtofilebot.sh wurde von JD2 nicht angestoßen. |
#46
|
||||
|
||||
![]()
Soweit ich weiß musst du den vollen Pfad angeben. Also /usr/bin/bash /...script
![]() Die anderen Eventscripter scripts nutzen ebenfalls bash oder sh
__________________
JD-Dev & Server-Admin |
#47
|
|||
|
|||
![]()
danke jiaz, auch für deine geduld. ich werde es heute abend ausprobieren. ich konnte allerdings gestern keine scripts im evenscripter eintragen auf der web-UI. sehr strange. hier zwei bilder. auf dem zweiten bild sieht man die meldung. alle anderen änderungen auf der web-UI (egal wo), werden übernommen. ich bentuze google chrome.
|
#48
|
||||
|
||||
![]()
Wahrscheinlich sind die Scripts ungültiges JSON. Kannst du mir das ganze Script zeigen?
__________________
JD-Dev & Server-Admin |
#49
|
|||
|
|||
![]()
ich bin mir nicht sicher, ob ich deine frage richtig verstanden habe, aber das ist das, was ich in das eventscripter-fenster einfüge (nur das und nicht mehr):
Code:
[{"eventTrigger":"ON_ARCHIVE_EXTRACTED", "enabled":true, "name":"FileBot", "script":"var amcFile = "/opt/share/filebot/jdtofilebot.sh"; \n var path = archive.getFolder(); callAsync(function() {}, amcFile, path);", "eventTriggerSettings":{}}] |
#50
|
||||
|
||||
![]()
Script ist nicht korrektes JSON, so müsste das aussehen
[{"eventTrigger":"ON_ARCHIVE_EXTRACTED", "enabled":true, "name":"FileBot", "script":"var amcFile = "/opt/share/filebot/jdtofilebot.sh";var path = archive.getFolder(); callAsync(function() {}, amcFile, path);", "eventTriggerSettings":{}}] und wie gesagt, bitte mal mit Bash versuchen
__________________
JD-Dev & Server-Admin Last edited by Jiaz; 11.02.2016 at 13:21. |
#51
|
|||
|
|||
![]()
habe das mal copy&paste eingefügt und bekomme die meldung "sorry, failed to set new value". er speichert den eintrag im evenscripter nicht.
solange er den eintrag nicht annimmt, ruft er jdtofilebot.sh nicht auf. im jdtofilebot.sh werde ich heute abend den bash-eintrag vornehmen. |
#52
|
||||
|
||||
![]()
arg, jetzt weiß ich was los ist
![]() ![]() pastebin.com/r4BifXzd
__________________
JD-Dev & Server-Admin |
#53
|
|||
|
|||
![]()
jiaz, daaaaaanke!
![]() ![]() |
#54
|
||||
|
||||
![]()
Nix zu Danken
![]()
__________________
JD-Dev & Server-Admin |
#55
|
|||
|
|||
![]()
jiaz danke nochmal. sowohl die übernahme in den eventscripter als auch der aufruf von jdtofilebot.sh durch JD haben funktioniert.
zu test-zwecken konnte ich getriggert durch JD mit jdtofilebot.sh neue Order erstellen, so wie von dir vorgeschlagen. das funktioniert also ![]() allerdings konnte ich noch kein funktionierendes filebot-script bauen - aber das ist ja kein JD problem. eine frage: wenn ich das Code:
path = archive.getFolder() ist darin auch der dateiname der entpackten datei enthalten oder nur der pfad zum order selbst, in dem sich die rar-dateien befinden? wenn der dateiname der entpackten datei nicht in "path" enthalten ist, wie kann ich das aus dem eventscripter-eintrag herauslesen? mit "file = archive.getFile()"? |
#56
|
|||
|
|||
![]() Quote:
ich weiß zwar nicht, was du mit dem Dateinamen anstellen willst, aber vielleicht kann dir ja mit meinem Ansatz helfen. Ich hab das persönlich so gelöst, dass ich in JDownloader für jedes Paket einen Unterordner erstellen lasse (Download Path: /path/to/general/download/folder/<jd:packagename>) Beispiel du lädst Serie XYZ S01E01. JD erstellt einen Unterordner, lädt alle rar-Dateien, entpackt das Archiv (mitsamt allen Daten und nicht nur einer Datei, ich glaub da entsteht schon das erste Problem mit getFile() - dass du halt mehr als eine Datei hast öfters), löscht die Archiv-Dateien. Wenn nun jdtofilebot.sh aufgerufen wird, bekommt es den pfad "/path/to/general/download/folder/Unterordner.für.XYZ.S01E01/". FileBot durchsucht nun den ganzen Unterordner und erledigt dann rest indem es das Video verschiebt, sample (und untertitel wenn gewollt) etc mit samt Unterordner löscht. Ich hatte ohne Unterordner das Problem, dass wenn ich mehrere Downloads gleichzeitig hatte, Filebot nicht ganz zurecht kam. So erledigt FileBot sehr sauber seine Aufgabe ohne Spuren zu hinterlassen. Ich hoffe dass hilft dir weiter. ^^ |
#57
|
||||
|
||||
![]()
@michldi: Danke fürs Feedback! 'archive.getFolder()' beinhaltet natürlich NUR den Pfad
![]() @CENGOiSM: Danke fürs Helfen ![]()
__________________
JD-Dev & Server-Admin |
#58
|
|||
|
|||
![]()
hi CENGOiSM,
vielen vielen dank für die erklärung! ich werde dein setup verfolgen und mich von dem dateinamen lösen. ![]() kannst du mir dein aktuell funktionierendes setup mit dem script in eventscripter, dem jdtofilebot.sh und dem filebot.sh zur verfügung stellen? ich habe es bisher leider nicht geschafft eine funktionierende kette dieser drei bausteine aufzubauen. ich würde dann die codes meinen verzeichnispfaden entsprechend modifizieren. |
#59
|
|||
|
|||
![]()
@Jiaz - Dafür, dass JD im Headless mode so schnell so gut wurde, muss man sich revanchieren.
![]() @michldi - Viel geändert hab ich nicht mehr, aber hier ist die aktuelle Konfiguration. => In den JD Einstellungen musst du deinem Default Download Folder das <jd:packagename> hinzufügen, für den Unterordner. => filebot.sh am besten nicht anfassen, bzw. lösch deine Aktuelle und führ die update-filebot.sh aus die mitgeliefert wird, dann hast du die aktuelle FileBot.jar und filebot.sh. => Hier ist meine aktuelle jdtofilebot.sh Quote:
Quote:
Wie bei Jiaz denke ich auch dass beim eventscripter einige Zeichen weggelassen werden, deswegen nimm lieber das von Jiaz in seinem pastebin Link. Poste am besten mal dein Setup, dann können wir schauen wo dein Problem ist. |
#60
|
|||
|
|||
![]()
hi @all,
thanks for your help. my setup of jdownloader & filebot works now. The main problem was, that it the event could not be startet by jdownloader when jdownloader was run as admin. It worked perfectly when jdownloader was run as root. however I solved that issue as well. here are my steps for NASes that run entware-ng: A. install java isntall java headless ejdk1.8.0_73 and reboot your NAS download Java from here: http://download.oracle.com/otn/java/...ar_2014.tar.gz create /opt/java and copy that fileinto that folder. Code:
tar xzf /opt/java/ejdk-8u73-linux-arm-sflt.gz ln -s /opt/java/ejdk1.8.0_73/linux_arm_sflt/jre/ /opt/java/jdk1.9.0 ln -s /opt/java/ejdk1.8.0_73/linux_arm_sflt/jre/ /opt/java/jre Code:
chown -R root:root /opt/java first java-test: Code:
/opt/java/ejdk1.8.0_73/linux_arm_sflt/jre/bin/java -version "java version "1.8......." reboot your NAS B. install jdownloader install jdownloader headless as described in many forums / threads. set group & owner of the jdownloader-folder as admin: Code:
chown -R 501:501 /opt/jdownloader create a jdownloader start-up-script so jdownloader runs as admin Code:
#!/bin/sh DESC="JDownloader 2 Headless" NAME=JDownloader2 PIDFILE=/opt/jdownloader/$NAME.pid USER=admin RUN_AS=admin COMMAND="/opt/java/ejdk1.8.0_73/linux_arm_sflt/jre/bin/java -- -jar /opt/jdownloader/JDownloader.jar" d_start() { sleep 10 start-stop-daemon --start --quiet --background --pidfile $PIDFILE --user $USER --chuid $RUN_AS --exec $COMMAND } d_stop() { start-stop-daemon --stop --quiet --pidfile $PIDFILE sleep 10 if [ -e $PIDFILE ] then rm $PIDFILE fi } case $1 in start) echo -n "Starting $DESC: $NAME" d_start echo "." ;; stop) echo -n "Stopping $DESC: $NAME" d_stop echo "." ;; restart) echo -n "Restarting $DESC: $NAME" d_stop sleep 10 d_start echo ":" ;; *) echo "usage: $NAME [start|stop|restart]" exit 1 ;; esac exit Code:
#!/bin/sh /bin/sh /opt/etc/jd2-start.sh start to shut down jdownloader when you turn off your NAS for some reason, create the folders "rc0.d" and "rc6.d" in /opt/etc and create a executable script amed "K93jd2" into those folders that as the following code: Code:
#!/bin/sh /bin/sh /opt/etc/jd2-start.sh stop C. install and setup filebot get filebot_4.6.1_noarch.ipk and copy it to /opt Code:
cd /opt opkg install filebot_4.6.1_noarch.ipk duplicate that folder to /opt/share/filebot/data/admin change group and owner of that admin-folder to admin and make it executable (the whole admin-folder inclding its content). this enabled me to run eventscripter & filebot when jdownloader was running as admin. create a script called jdtofilebot.sh (executable, group: admin, owner: admin) and copy it to /opt/share/filebot with the following content: Code:
#!/bin/sh ##FileBot needs that: LOG="/path_to_logfile/amc.log" EXCLUDE="/path_to_excluderlist/amc.txt" SERIEN="/path_to_your_series/{n}/Season {s.pad(2)}/{n}.{s00e00}.{t}" FILME="/path_to_your_movies/{n} ({y})/{n} ({fn.contains('1080') ? '1080p ':''}{fn.contains('720') ? '720p ':''}{fn.contains('3D') || fn.contains('3-D') ? '3D ':''}HD)" UNSORTIERT="/path_to_your_unsorted_unrecognized_movies/{file.structurePathTail}" ### separate folder for filebot for the case that it cannot recognize a movie / series ##execute filebot /opt/share/filebot/bin/filebot.sh -script fn:amc --lang de --log-file $LOG --action move "$1" --def "seriesFormat=$SERIEN" "movieFormat=$FILME" "unsortedFormat=$UNSORTIERT" -non-strict --def unsorted=y --def artwork=y --def xbmc=IP_OF_YOUR_XBMC/KODI --def excludeList=$EXCLUDE --def clean=y ## clean everything /opt/share/filebot/bin/filebot.sh -script fn:cleaner "$1" --def root=y "exts=jpg|nfo|rar|nfo|htm|html|url|txt|etc" "terms=sample|trailer|etc" go to /opt/share/filebot/bin and change the command-line of filebot.sh in there to: Code:
/opt/java/ejdk1.8.0_73/linux_arm_sflt/jre/bin/java $JAVA_OPTS -Xmx150m -Dunixfs=false -DuseExtendedFileAttributes=true -DuseCreationDate=false -Dfile.encoding="UTF-8" -Dsun.net.client.defaultConnectTimeout=10000 -Dsun.net.client.defaultReadTimeout=60000 -Dapplication.deployment=ipkg -Dnet.filebot.Archive.extractor="$EXTRACTOR" -Dnet.filebot.AcoustID.fpcalc="fpcalc" -Dapplication.dir="$APP_DATA" -Djava.io.tmpdir="$APP_DATA/temp" -Duser.home="$APP_DATA" -jar "$APP_ROOT/FileBot.jar" "$@" D. eventscripter in jdownloader intall eventscripter extension copy and paste the script from into eventscripter: pastebin.com/r4BifXzd I cannot post the eventscripter-code here since the forum removes the escaping of the code. restart jdownloader. that's it. I know not all steps are quite the old-fashioned linux style. however that worked for me as a linux-newbie. Last edited by michldi; 15.02.2016 at 12:13. |
![]() |
Thread Tools | |
Display Modes | |
|
|