JDownloader Community - Appwork GmbH
 

Reply
 
Thread Tools Display Modes
  #1  
Old 27.06.2015, 01:25
CENGOiSM CENGOiSM is offline
JD Beta
 
Join Date: Jun 2015
Posts: 53
Default FileBot und JDownloader kombinieren via EventScripter

Hallo JD-Community,

nach einem gescheiterten Versuch letztes Jahr JDownloader auf meinem NAS einzurichten, habe ich es dieses Jahr erneut probiert - JD läuft soweit.

Nun habe ich von FileBot gehört und wollte dies natürlich direkt kombinieren mit JD. FileBot und JD laufen alleine wie geschmiert, nur habe ich Probleme, diese beiden miteinander zu verketten. :D

Deswegen hatte ich mir nach einer Recherche hier im Forum und im Internet Hilfe im IRC Chat von euch gesucht, wobei mir raztoki behiflich (Thank you again for your support raztoki :D). Jedoch werd ich aus der Sache net mehr schlau:

JD downloadet ein Paket. Wenn das Paket fertig entpackt wurde, soll eine sh-Datei aufgerufen werden, welche den Pfad des Paketes bekommt und FileBot mit seiner Arbeit beginnen kann.

Mein Script für EventScripter sieht folgendermaßen aus:
[{"eventTrigger":"ON_ARCHIVE_EXTRACTED",
"enabled":true,
"name": "FileBot",
"script": "var shPath = "/ffp/bin/sh"; \n
var amcFile = "/ffp/filebot/jdtofilebot.sh"; \n
var path = archive.getFolder(); \n
path = "\\"+path+\\""; \n
callAsync(function() {}, shPath, amcFile, path);"
}]

Wenn ich >/ffp/bin/sh /ffp/filebot/jdtofilebot.sh "/pfad/zu/einem/entpackten/paket" ausführe läuft FileBot soweit auch richtig. Auch mit alert(path); wirft JD auch den richtigen Ordnerpfad aus.

In den Logs vom EventScripter steht am Ende immer nur Init Duration und eine Zahl, aber ich vermute dass heißt einfach nur dass das Skript ausführbar ist. Die Logs von Filebots sind leer, wird vermutlich nicht mal ausgeführt. :(

Würde mich freuen, wenn hier jemand im Board mir einen Rat geben könnte wo ich ansetzen könnte, irgendwie nutze ich callAsync falsch denke ich.

MfG
CENGOiSM
Reply With Quote
  #2  
Old 27.06.2015, 11:30
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 59,726
Default

Schreib mal Bismarck im Forum an, er hat JDownloader und Filebot/Eventscripter schon am Laufen
https://board.jdownloader.org/showth...light=bismarck
__________________
JD-Dev & Server-Admin
Reply With Quote
  #3  
Old 27.06.2015, 14:59
CENGOiSM CENGOiSM is offline
JD Beta
 
Join Date: Jun 2015
Posts: 53
Default

War grad dabei ihm eine Nachricht zu schreiben, boom:
> vBulletin-Systemmitteilung
> Sorry, you can only send messages to the JD Supporter group until you have 3 posts.

Jetzt fehlt mir nur noch ein Beitrag.
Auf jeden Fall danke für den Link, mehr oder weniger hatte ich mir bereits diesen Thread als Hilfe genommen für mein eigenes Skript. Könnte sich vielleicht das EventScripter selbst irgendwie vergangen haben?

MfG
CENGOiSM
Reply With Quote
  #4  
Old 27.06.2015, 16:22
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 59,726
Default

Du kannst Coalado auch unter support@jdownloader.org erreichen, evtl kann er auch Helfen.
Ansonsten einfach noch posten und dann kannst auch Bismarck ne PM schreiben, oder du schreibst direkt in dem verlinkten Thread.

Eventscripter vergangen haben? Wie meinen?
__________________
JD-Dev & Server-Admin
Reply With Quote
  #5  
Old 27.06.2015, 16:43
CENGOiSM CENGOiSM is offline
JD Beta
 
Join Date: Jun 2015
Posts: 53
Default

Verhangen wollte ich eigentlich schreiben. :D
Alles klar, ich schreib mal dem Coalado und dem Bismarck.
Reply With Quote
  #6  
Old 27.06.2015, 16:49
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 59,726
Default

Evtl im /ffp/filebot/jdtofilebot.sh vergessen den aktuellen Ordner zu setzen?
Also wenn du darin binaries/tools nutzt, dann am besten den vollen Pfad zu den Dateien.
__________________
JD-Dev & Server-Admin
Reply With Quote
  #7  
Old 27.06.2015, 17:07
CENGOiSM CENGOiSM is offline
JD Beta
 
Join Date: Jun 2015
Posts: 53
Default

/ffp/bin/sh und /ffp/filebot/jdtofilebot.sh sollten soweit absolute Pfade sein.
Als ffp liegt im Root Ordner und ist ein SymLink, denke das sollte so klappen oder?

Manuell über ssh eingegeben klappts auch wunderbar, bin echt am verzweifeln -.-

Bin grad dabei es mit sh statt mit /ffp/bin/sh zu probieren, da ist mir wieder ein Problem mit dem Download aufgetreten. Und zwar hab ich die Meldung "IP already loading"..
Ich lade von ShareOnline, denke mal dass hat was mit der Anzahl der Verbindungen zu tun (aka Sharing unterbinden) aber ich hab keine Einstellung gefunden im Gui.
Kann man da was über die Konsole einstellen? Am liebsten wärs mir wie am Desktop oder in PyLoad 3 Downloads mit einer Verbindungen.
Reply With Quote
  #8  
Old 27.06.2015, 17:16
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 59,726
Default

Webinterface kannst das machen -> Einstellungen -> Prof Einstellungen
suche nach
"chunks" für die Connections / Downloads
"downloads" für die Downloads

ich meinte eher im Script /ffp/filebot/jdtofilebot.sh selbst, ob da alle Befehle absolut sind?
__________________
JD-Dev & Server-Admin
Reply With Quote
  #9  
Old 27.06.2015, 17:36
CENGOiSM CENGOiSM is offline
JD Beta
 
Join Date: Jun 2015
Posts: 53
Default

Chunks hab ich schon auf 1 gestellt gehabt, und Downloads waren auf zwei als der Fehler aufgetreten ist. Wenn ich ein Paket vom Linkgrabber zu den Downlods hinzufüge, könnten dort mehrere Verbindungen aufgebaut werden wodurch meine IP temporär gesperrt wird?

Und ja im jdtofilebot.sh sind auch alle Pfade absolut. ^^
Geklappt hat es ja auch schon mit jdtofilebot.sh. Mein erster Ansatz war: Archiv entpackt > jdtofilebot.sh
Aber dadurch wurden auch Daten verschoben die noch am entpacken waren und im JD zu Fehlern geführt haben.
Daraufhin hab ich dann im jdtofilebot den "Pfad/zum/DownloadordnerFürAllePakete" durch "$1" ersetzt, damit nur der Unterordner im Downloadordner übergeben wird via callAsync.

Seitdem wird Filebot nicht mal mehr ausgeführt :D
Reply With Quote
  #10  
Old 27.06.2015, 17:46
.bismarck's Avatar
.bismarck .bismarck is offline
Leerzeichenüberseher
 
Join Date: Jul 2010
Posts: 890
Default

Hi,
Weshalb musst Du denn die Shell festlegen, ist die nicht im Pfad?
Code:
echo $PATH
Wenn ffb/bin nicht enthalten ist:
Code:
echo PATH=/ffp/bin:$PATH
Ist nach einem Neustart des NAS aber wieder weg.

Teste dann mal folgendes:
Code:
[{"eventTrigger":"ON_ARCHIVE_EXTRACTED",
"enabled":true,
"name": "FileBot",
"script": "var amcFile = "/ffp/filebot/jdtofilebot.sh"; \n
var path = archive.getFolder(); \n
path = "\\"+path+\\""; \n
callAsync(function() {}, amcFile, path);"
}]
Evtl. auch mal die path Variable im eventscript anpassen:
Code:
var path = archive.getFolder() + "/" + archive.getName();
Kannst Du mal den Inhalt von jdtofilebot.sh posten?


.bismarck
Reply With Quote
  #11  
Old 27.06.2015, 18:11
CENGOiSM CENGOiSM is offline
JD Beta
 
Join Date: Jun 2015
Posts: 53
Default

Hey,
unter echo $PATH wird mir der Pfad zu Java ausgespuckt, das sollte ich so einrichten laut Java Tutorial. :S

Ich nutze /ffp/bin/sh statt sh weil das System (Zyxel NSA325 mit einem FFP Stick) zwei Shells besitzt. Dachte mir vllt passt mit sh die Umgebungsvariablen nicht mehr, wegen Java & Co. Aber funktioniert soweit mit beiden.

Ohne sh oder /ffp/bin/sh wirft EventScripter einen Fehler aus, ich finde den Log dazu grad nicht, aber ich versuche den Fehler zu reproduzieren. Eventuell mit "./jdtofilebot.sh"? Könnte das so klappen?

jdtofilebot.sh:
Quote:
sh /ffp/filebot/filebot.sh -script fn:amc --lang de --log-file "/ffp/filebot/logs/amc.log" --action move "$1" --def "seriesFormat=/Pfad/zu/TV-Serien/{n}/Staffel {s}/{n} S{s}E{e}" "movieFormat=/Pfad/zu/Filme/{n} ({y})/{n} ({fn.contains('1080') ? '1080p ':""}{fn.contains('3D') || fn.contains('3-D') ? '3D':""} HD)" "animeFormat=/Pfad/zu/Anime/{n}/{n} E{absolute}" -non-strict --def clean=y --def excludeList="/ffp/filebot/amc.txt"

sh /ffp/filebot/filebot.sh -script fn:cleaner "$1" --def root=y
Die FileBot.sh ist die offizielle von den Machern persönlich, da hab ich nicht rumgespielt. :D
Ich hatte mir testweise den Pfad unter .getFolder mit alert auslesen lassen, diesen dann manuell so eingegeben > sh /ffp/filebot/jdtofilebot.sh "/Pfad/von/alert/kopiert"
Hat soweit prima geklappt..

Installiert wurde alles mit root, chmod und alles schon gemacht, wenn das weiterhilft. :/
Reply With Quote
  #12  
Old 27.06.2015, 19:13
CENGOiSM CENGOiSM is offline
JD Beta
 
Join Date: Jun 2015
Posts: 53
Default

Okay, ich habs mal ohne sh versucht:
Quote:
Cannot run program "/ffp/filebot/jdtofilebot.sh": error=13, Permission denied
Und mit . vor dem Pfad:
Quote:
Cannot run program "./ffp/filebot/jdtofilebot.sh": error=2, No such file or directory
Aber vermutlich hab ich den Punkt falsch gesetzt.

Wie sollte ich chown anwenden um die Rechte zu richten?
Reply With Quote
  #13  
Old 28.06.2015, 04:25
.bismarck's Avatar
.bismarck .bismarck is offline
Leerzeichenüberseher
 
Join Date: Jul 2010
Posts: 890
Default

Moin,
war das ne lustige Party *g*
Füge mal in Deinem jdtofilebot.sh Script als erste Zeile folgendes ein:
Code:
#!/ffp/bin/sh
Vorher aber die PATH Variable setzen zur shell. Dann müsste es funktionieren.
Wenn es dennoch nicht geht wäre eine TeamViewer Sitzung der einfachste Weg um zum Ziel zu kommen.


.bismarck

Last edited by .bismarck; 28.06.2015 at 04:47.
Reply With Quote
  #14  
Old 28.06.2015, 10:13
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 59,726
Default

"Installiert wurde alles mit root...."
Läuft JD auch als Root? Wenn nein ist alles klar! JD(Non Root) kann ja schlecht Root Starten Ich würde mal Chown/Chmod alles kontrollieren.
Der JD Nutzer muss natürlich das script starten können
__________________
JD-Dev & Server-Admin
Reply With Quote
  #15  
Old 28.06.2015, 14:06
CENGOiSM CENGOiSM is offline
JD Beta
 
Join Date: Jun 2015
Posts: 53
Default

@Bismarck Das wars :D ich hatte in der ersten Zeile ein /bin/bash hinzugefügt, keine Ahnung warum :-). Aber mit /ffp/bin/sh läuft jetzt alles tip top. Auch ohne eine PATH Variable gesetzt zu haben, sollte ich da noch was machen? Wofür wäre das eigentlich gut gewesen?
Noch eine letzte Frage: Ich hab die ganzen " entfernt beim Pfad, weil im Skript am Ende /Pfad/zu/JD"/Pfad/zum/Downloadordner" stand. Ich frage mich, was passiert wenn ein Leerzeichen im Ordnerpfad ist, würde das abgeschnitten werden in der Shell?
EDIT: In deinem EventScripter Code hast du die " beim String nicht "escaped" :D. Funktioniert das so überhaupt?
EDIT2: Sehe grad, dass ich das selber geschrieben habe so, was natürlich so nicht geklappt hatte. Diese Frage hat sich damit erübrigt. ^^
EDIT3: Hab grad mit Leerzeichen gedownloadet, klappt wunderbar auch ohne diesen ganzen Escaping Schnick Schnack! Endlich ^^ Danke dir für deinen "Geheimtrick" in der ersten Zeile, dass hats gemacht! :D Ich schreib später meine Konfiguration hier in diesen Thread, falls jemand ein ähnliches Problem hatte und/oder etwas ähnliches wie ich aufstellen will.

@Jiaz Java, Filebot und JDownloader sind alle mit Root installiert worden :D. Aber was mir aufgefallen ist, sobald ich in einem Editor das Script geändert hatte, wurde der Mode wieder auf 644 gestellt worden und war nicht mehr 755.

Last edited by CENGOiSM; 28.06.2015 at 14:51. Reason: Geschafft (Y) :D
Reply With Quote
  #16  
Old 28.06.2015, 14:07
raztoki's Avatar
raztoki raztoki is offline
English Supporter
 
Join Date: Apr 2010
Location: Australia
Posts: 15,972
Default

I do recall that I recommended to chown/chmod accordingly.
__________________
raztoki @ jDownloader reporter/developer
http://svn.jdownloader.org/users/170

Don't fight the system, use it to your advantage. :]
Reply With Quote
  #17  
Old 28.06.2015, 15:54
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 59,726
Default

Danke fürs Feedback und cool das es endlich klappt
__________________
JD-Dev & Server-Admin
Reply With Quote
  #18  
Old 28.06.2015, 15:54
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 59,726
Default

Wenn ich mal Zeit hab sollten wir mal nen Headless/ARM/NAS Wiki machen für Scripte/Howtos und co
__________________
JD-Dev & Server-Admin
Reply With Quote
  #19  
Old 18.07.2015, 12:36
0bi-wan 0bi-wan is offline
Baby Loader
 
Join Date: Jul 2015
Posts: 6
Default

Hallo zusammen,

ich bin gerade dabei eben diese Kombination aus JD und FileBot auf meiner Synology Diskstation einzurichten, aber irgendwie läuft das alles nicht.

Ich habe die Skripts in diesem Thread an meine Bedürfnisse angepasst und ein Aufruf aus Sabnzb funktioniert auch.

Meine Konfiguration:

org.jdownloader.extensions.eventscripter.EventScripterExtension.scripts.json:
(erstellt mit JD im GUI und auf die DiskStation kopiert)
Spoiler:
Code:
[ {
  "eventTrigger" : "ON_ARCHIVE_EXTRACTED",
  "enabled" : true,
  "name" : "Beispiel",
  "script" : "var amcFile = \"/volume1/@optware/etc/filebot/jdtofilebot.sh\";\nvar path = archive.getFolder();\npath = \"\\\\\"+path+\\\\\"\";\ncallAsync(function() {}, amcFile, path);",
  "eventTriggerSettings" : {
  }
} ]



jdtofilebot.sh:

Spoiler:
Code:
#!/bin/sh
#
# filebot script, dass mit $1 = aktueller Pfad aufgerufen wird
#

sudo filebot  -script fn:amc --lang de --log-file "/volume1/Videos/Neu/amc.log" --action move "$1" --def "seriesFormat=/volume1/Videos/serien/{n}/Staffel {s}/{n} - {s00e00} - {t}" "movieFormat=/volume1/Videos/filme/{n} ({y})" -non-strict


filebot.sh:
(wurde angepasst, damit alle user das Skript starten können)

Spoiler:
Code:
#!/bin/sh

# force JVM language and encoding settings
export LANG="de_DE.UTF-8"
export LC_ALL="de_DE.UTF-8"

/opt/bin/sudo /var/packages/JavaManager/target/Java/bin/java -Dunixfs=false -DuseExtendedFileAttributes=true -DuseCreationDate=false -Dfile.encoding=UTF-8 -Dsun.net.client.defaultConnectTimeout=10000 -Dsun.net.client.defaultReadTimeout=60000 -Dapplication.deployment=ipkg -Duser.home=/opt/share/filebot/data -Dapplication.dir=/opt/share/filebot/data -Djava.io.tmpdir=/opt/share/filebot/data/temp -Djna.library.path=/opt/share/filebot -Djava.library.path=/opt/share/filebot -Dnet.filebot.AcoustID.fpcalc=/opt/share/filebot/fpcalc -jar /opt/share/filebot/FileBot.jar "$@"


Mir ist bisher aufgefallen, dass das Skript auch keine log-Datei anlegt, daher gehe ich davon aus, dass es überhaupt nicht gestartet wird.

Hoffe ihr könnt mir helfen.

Gruß
0bi
Reply With Quote
  #20  
Old 19.07.2015, 19:39
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 59,726
Default

sudo -> Hast du sudoers so eingestellt das NICHT nach dem PW gefragt werden muss?
Denn in der Shell hast du evtl schon Root rechte oder noch ein sudo cookie.
JD hat beides NICHT und nachfragen kann Sudo ohne Shell nicht
Warum überhaupt sudo? du solltest nur Root nutzen wenn nötig. Filebot als Root laufen lassen sieht irgendwie falsch aus!
__________________
JD-Dev & Server-Admin
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +2. The time now is 06:13.
Provided By AppWork GmbH | Privacy | Imprint
Parts of the Design are used from Kirsch designed by Andrew & Austin
Powered by vBulletin® Version 3.8.10 Beta 1
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.