JDownloader Community - Appwork GmbH
 

Notices

Reply
 
Thread Tools Display Modes
  #81  
Old 10.01.2017, 19:06
JamesBlond007
Guest
 
Posts: n/a
Default

Hey,

ich hole den Thread mal wieder rauf in der Hoffnung, dass man mir bei meinem Problem helfen kann. Eigentlich halte ich es für sehr einfach, versuche auch schon seit Tagen verschiedenste Scripte, aber nichts will funktionieren.
Eigentlich möchte ich nämlich nur ganz stupide mein Skript aufrufen welches im Ordner /usr/bin liegt und zuordnung heißt (gelegentlich auch mal in zuordnung.sh umbenannt bei verschiedenen Skripten.

Der Code dieses Scripts ist eigentlich auch ein sehr einfacher FileBot-Aufruf mit bestimmten Parametern. Ob Bash oder Sh wäre mir theoretisch egal, denn es lief bei manuellem ausführen sowohl mit #!/bin/sh als auch #!/bin/bash.

Hier der Rest des Scripts:
Spoiler:

filebot -script "fn:amc" /media/disc2/Downloads/ --output "/media/disc2/" --lang de --action move --encoding UTF-8 --conflict override -non-strict --log-file "/media/disc2/Logs/Filebot.log" --def "movieFormat={fn =~ /3D/ || file =~ /3D/ ? 'Filme 3D' : fn =~ /XXX/ || file =~ /XXX/ ? 'XXX' : 'Filme'}/{fn =~ /XXX/ || file =~ /XXX/ ? folder.name : {n}+' ('+{y}+')'}{fn =~ /3D/ || file =~ /3D/ ? ' [3D] [H-SBS]' : ''}/{fn =~ /XXX/ || file =~ /XXX/ ? fn : {n}+' ('+{y}+')'}{fn =~ /3D/ || file =~ /3D/ ? ' H-SBS' : ''}" seriesFormat="/media/disc2/Serien/{n}/Staffel {s}/{n} - {sxe} - {t}" clean=y --def unsorted=y --def gmail=logmailadresse@gmail.com:passwd --def mailto=meine.e-mail.adresse@web.de --def reportError=y --def plex=192.168.2.113:plextoken


Wie ihr seht sind auch alle Pfade fest definiert und FileBot ist ja auch so schlau und versucht keine gepackten Dinge zu mappen. Also brauche ich auch keinen Pfad zu übergeben.

Mein derzeitiges EventScript liest sich folgendermaßen:
Spoiler:
[{"eventTrigger":"ON_ARCHIVE_EXTRACTED", "enabled":true, "name":"Filebot", "script":"var amcFile = "/usr/bin/zuordnung.sh";var path = "/media/disc2/Downloads/";callAsync(function() {}, amcFile, path);", "eventTriggerSettings":{}, "id":HierstehtdieID}]


Wie ihr seht habe ich dort den Pfad darum ebenfalls fest auf den Grundordner definiert, besser wäre es natürlich, wenn ich gar nichts an zusätzlichen Pfaden übermitteln würde. Eine Zeit lang hatte ich in dem aufrufenden Skript auch mal eine Funktion drin, den Consolenlog von Filebot per Mail zu senden. Es wurde auch scheinbar mal aufgerufen, aber nicht richtig ausgeführt und die Mail hatte keinen Inhalt die versendet wurde.
Jdownloader erstellt leider derzeit, warum auch immer, scheinbar auch keinen EventScripter-Log wo der Fehler liegen könnte.

Ich würde auch wirklich nicht schreiben wenn ich nicht schon fast alles was mir einfällt und ich gelesen habe ausprobiert hätte. Es will einfach nicht. Die Rechte des Skripts stehen übrigens auf rwxrwsrwx - 2777, group users und Eigentümer extra mal auf jdownloader gesetzt.

Ich hoffe ihr könnt mir weiterhelfen.
Danke
Reply With Quote
  #82  
Old 10.01.2017, 20:29
CENGOiSM CENGOiSM is offline
JD Beta
 
Join Date: Jun 2015
Posts: 53
Default

Quote:
Originally Posted by JamesBlond007 View Post
Hey,

ich hole den Thread mal wieder rauf in der Hoffnung, dass man mir bei meinem Problem helfen kann. Eigentlich halte ich es für sehr einfach, versuche auch schon seit Tagen verschiedenste Scripte, aber nichts will funktionieren.
Eigentlich möchte ich nämlich nur ganz stupide mein Skript aufrufen welches im Ordner /usr/bin liegt und zuordnung heißt (gelegentlich auch mal in zuordnung.sh umbenannt bei verschiedenen Skripten.

Der Code dieses Scripts ist eigentlich auch ein sehr einfacher FileBot-Aufruf mit bestimmten Parametern. Ob Bash oder Sh wäre mir theoretisch egal, denn es lief bei manuellem ausführen sowohl mit #!/bin/sh als auch #!/bin/bash.

Hier der Rest des Scripts:
Spoiler:

filebot -script "fn:amc" /media/disc2/Downloads/ --output "/media/disc2/" --lang de --action move --encoding UTF-8 --conflict override -non-strict --log-file "/media/disc2/Logs/Filebot.log" --def "movieFormat={fn =~ /3D/ || file =~ /3D/ ? 'Filme 3D' : fn =~ /XXX/ || file =~ /XXX/ ? 'XXX' : 'Filme'}/{fn =~ /XXX/ || file =~ /XXX/ ? folder.name : {n}+' ('+{y}+')'}{fn =~ /3D/ || file =~ /3D/ ? ' [3D] [H-SBS]' : ''}/{fn =~ /XXX/ || file =~ /XXX/ ? fn : {n}+' ('+{y}+')'}{fn =~ /3D/ || file =~ /3D/ ? ' H-SBS' : ''}" seriesFormat="/media/disc2/Serien/{n}/Staffel {s}/{n} - {sxe} - {t}" clean=y --def unsorted=y --def gmail=logmailadresse@gmail.com:passwd --def mailto=meine.e-mail.adresse@web.de --def reportError=y --def plex=192.168.2.113:plextoken


Wie ihr seht sind auch alle Pfade fest definiert und FileBot ist ja auch so schlau und versucht keine gepackten Dinge zu mappen. Also brauche ich auch keinen Pfad zu übergeben.

Mein derzeitiges EventScript liest sich folgendermaßen:
Spoiler:
[{"eventTrigger":"ON_ARCHIVE_EXTRACTED", "enabled":true, "name":"Filebot", "script":"var amcFile = "/usr/bin/zuordnung.sh";var path = "/media/disc2/Downloads/";callAsync(function() {}, amcFile, path);", "eventTriggerSettings":{}, "id":HierstehtdieID}]


Wie ihr seht habe ich dort den Pfad darum ebenfalls fest auf den Grundordner definiert, besser wäre es natürlich, wenn ich gar nichts an zusätzlichen Pfaden übermitteln würde. Eine Zeit lang hatte ich in dem aufrufenden Skript auch mal eine Funktion drin, den Consolenlog von Filebot per Mail zu senden. Es wurde auch scheinbar mal aufgerufen, aber nicht richtig ausgeführt und die Mail hatte keinen Inhalt die versendet wurde.
Jdownloader erstellt leider derzeit, warum auch immer, scheinbar auch keinen EventScripter-Log wo der Fehler liegen könnte.

Ich würde auch wirklich nicht schreiben wenn ich nicht schon fast alles was mir einfällt und ich gelesen habe ausprobiert hätte. Es will einfach nicht. Die Rechte des Skripts stehen übrigens auf rwxrwsrwx - 2777, group users und Eigentümer extra mal auf jdownloader gesetzt.

Ich hoffe ihr könnt mir weiterhelfen.
Danke
Wenn das FileBot Skript manuell läuft, ist das schon mal ein gutes Zeichen. Wenn es nämlich nicht automatisch läuft, ist höchstwahrscheinlich deine EventScripter Config falsch. Wenn du das Skript in jDownloader eingibst, kommt da keine invalid Fehlermeldung? Ich weiß nicht, ob das Forum hier etwas entfernt, aber in deinem Skript oben wurde nicht korrekt "escapet" - sprich wenn zwischen " " weitere " " stehen, müssen die "makiert" werden um es nicht falsch zu intepretieren.

Ich escape das mal gleich richtig und poste das auf pastebin.
EDiT: pastebin.com/MveYhW7R


PS: Ich würde nicht nur den übergeordneten Downloadordner übergeben, zumindest hat das bei mir immer zu Schwierigkeiten geführt. ^^

Last edited by CENGOiSM; 10.01.2017 at 20:38.
Reply With Quote
  #83  
Old 11.01.2017, 16:43
JamesBlond007
Guest
 
Posts: n/a
Default

Hey,

danke schonmal für deine Rückmeldung.
Richtig escaped hatte ich. Habe dafür 2 Vorgehensweisen. Zum einen nehm' ich den lokalen Jdownloader und packe da alles in ein Script und lese die JSON Datei hinterher aus und Variante 2 ist der jsonprettyprint. Den habe ich auch bei deinem Code verwenden müssen. Da stimmte ein " nicht. Warum auch immer. Jdownloader hat sich die ganze Zeit beschwert und ich hab es nicht gerafft. Hab es jetzt geändert, läuft leider immer noch nicht. Interessanterweise hat er mich nicht nach "Erlaubnis" gefragt.

Edit: Die Meldung kam nach einem neuladen der Seite allerdings weiß ich nicht ob er die Bestätigung richtig genommen hat. Da das Fenster sich nicht geschlossen hat.
Werde auch da noch weiterprobieren.

Aber bist du dir sicher das callAsync ohne weiteren Parameter ausgeführt werden "darf". Also als reiner Funktionsaufruf?

Vielleicht hast du ja sonst noch Ideen woran es liegen könnte.

Last edited by JamesBlond007; 11.01.2017 at 16:52.
Reply With Quote
  #84  
Old 26.01.2017, 01:50
synologist
Guest
 
Posts: n/a
Default

Abend!

Vielen Dank erstmal für die ganze Arbeit.

habe das bei analog zu den geposteten Scripts gemacht... Bei mir läuft JD auf einem Synology 412+. Filebot ist in einem Debian-Chroot installiert. Mein Script sieht so aus:

Quote:
#!/bin/sh

export PATH=$PATH:/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin:/opt/java/bin

chroot /chroot/ /bin/bash -c "touch "/volume1/jdownloader_downloads/thetimeis$(date +%H%M%S).txt""

chroot /chroot/ /bin/bash -c "filebot -script /etc/transmission-daemon/amc.groovy "/volume1/jdownloader_downloads/extracted" --output "/volume1/Plex" --action move --conflict auto -non-strict --log-file /volume1/jdownloader_downloads/filebotlog.txt --def unsorted=y music=y artwork=n excludeList=/volume1/jdownloader_downloads/filebotexcludes.txt clean=y --def "seriesFormat=/volume1/Plex/Series/{n}/Season {s}/{fn}" "movieFormat=/volume1/Plex/Filme/{n} {y}/{fn}" "musicFormat=/volume1/music/Pyload/{artist}/{artist} - {album}/{pi.pad(2)} - {t}""

chroot /chroot/ /bin/bash -c "touch "/volume1/jdownloader_downloads/thetimeis$(date +%H%M%S).txt""
das Script wird zwar aufgerufen, denn der erste Befehl zur Erstellung einer Datei mit der aktuellen Uhrzeit im Namen wird ausgeführt. Filebot wird danach allerdings nicht mehr aufgerufen (es wird auch keine Filebotlog.txt erstellt bzw bearbeitet), der zweite Befehl zur Erstellung einer Datei wird dann auch nicht mehr ausgeführt.
Wenn ich das Script so ausführe, funktioniert Filebot perfekt.

für Hilfe wäre ich echt dankbar!
Reply With Quote
  #85  
Old 26.01.2017, 10:37
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 79,290
Default

@synologist:
Warum einfache Touch Befehle in einer Chroot? Gibts Touch nur in der Chroot?
Soweit ich weiß werden bei einem chroot die Umgebungsvariablen nicht mitübernommen, somit bringen deine exports am anfang nichts.
ich würde vorschlagen du schreibst ein script und führst dieses dann in der chroot aus

also zb

Quote:
#!/bin/sh
chroot /chroot/ /bin/bash -c "/pfad/filebotscript.sh"
und im filebotscript dann alles touchen, exporten und co
__________________
JD-Dev & Server-Admin
Reply With Quote
  #86  
Old 26.01.2017, 15:45
synologist
Guest
 
Posts: n/a
Default

die touch befehle sollen mir zeigen, ob JD das Skript nach dem Entpacken ausführt. Das tut er auch, nur wird dann filebot nicht gestartet. Der Grund warum das ist in der Chroot ausgeführt wird ist, daß ich auf der Synology einiges viel einfacher in der Debian Chroot zum Laufen bekommen habe, unter anderem filebot.

Wenn ich dich richtig verstehe, schlägst du vor, im vom Eventscripter aufgerufenen Script nochmal auf ein Script zu verweisen.

Habe das gemacht, auch da wird filebot nicht aufgerufen.

Stehe da völlig auf dem Schlauch...

Quote:
Originally Posted by Jiaz View Post
@synologist:
Warum einfache Touch Befehle in einer Chroot? Gibts Touch nur in der Chroot?
Soweit ich weiß werden bei einem chroot die Umgebungsvariablen nicht mitübernommen, somit bringen deine exports am anfang nichts.
ich würde vorschlagen du schreibst ein script und führst dieses dann in der chroot aus

also zb



und im filebotscript dann alles touchen, exporten und co

Last edited by synologist; 26.01.2017 at 15:52.
Reply With Quote
  #87  
Old 26.01.2017, 15:57
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 79,290
Default

Schick mir mal beide Scripts an support@jdownloader.org , evtl sehe ich was. Ist per E-Mail einfacher als hier im Forum
__________________
JD-Dev & Server-Admin
Reply With Quote
  #88  
Old 26.01.2017, 16:11
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 79,290
Default

Hab dir geantwortet
__________________
JD-Dev & Server-Admin
Reply With Quote
  #89  
Old 26.01.2017, 22:15
synologist
Guest
 
Posts: n/a
Default

Das Problem war, daß JD gewisse Umgebungsvariablen nicht an Filebot weitergegeben hat.

Mit folgenden Zeilen im Skript, welches dann Filebot aufruft gehts nun endlich.
Quote:
export PATH=$PATH:/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin:/opt/java/bin
export HOME=/


Quote:
Originally Posted by synologist View Post
Abend!

Vielen Dank erstmal für die ganze Arbeit.

habe das bei analog zu den geposteten Scripts gemacht... Bei mir läuft JD auf einem Synology 412+. Filebot ist in einem Debian-Chroot installiert. Mein Script sieht so aus:



das Script wird zwar aufgerufen, denn der erste Befehl zur Erstellung einer Datei mit der aktuellen Uhrzeit im Namen wird ausgeführt. Filebot wird danach allerdings nicht mehr aufgerufen (es wird auch keine Filebotlog.txt erstellt bzw bearbeitet), der zweite Befehl zur Erstellung einer Datei wird dann auch nicht mehr ausgeführt.
Wenn ich das Script so ausführe, funktioniert Filebot perfekt.

für Hilfe wäre ich echt dankbar!
Reply With Quote
  #90  
Old 10.03.2017, 12:13
suffx
Guest
 
Posts: n/a
Default

Quote:
Originally Posted by CENGOiSM View Post
@Jiaz - Dafür, dass JD im Headless mode so schnell so gut wurde, muss man sich revanchieren. Werden jetzt eigentlich die neuen Captchas von dieser einen sehr bekannten Serien anbietenden Seite unterstützt? Bzw hat 9kw da nachgeholfen? Ich meine letztens hätte JD da Schwierigkeiten gehabt.

@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



=> Und hier noch der eventscripter


Aber am eventscripter hab ich nichts verändert, auch jdtofilebot.sh ist eigentlich soweit gleich geblieben bis auf das mit dem UNSOTIERT.
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.

Hi Leute,

ich bin auch gerade dabei mir dieses super setup einzurichten. Also jdownloader und filebot laufen schonmal jeder für sich auf meiner ds216play. Nun geht es darum diese über die scripte zu verknüpfen. Vorab: ich habe mich noch nie tiefergehend mit der DS beschäftigt, also SSH zugriffe usw. habe ich nie gebraucht, deshalb bin ich mir bei manchen pfaden nicht ganz sicher.

Also, nochmal zum Verständnis. Ich würde jetzt

1. Das o. g. EventScripter Script in den EventScripter einfügen
2. die jdtofilebot.sh die hier genannt wurde unter /ffp/filebot/jdtofilebot.sh ablegen (und ggf. auf meine bedürfnisse anpassen)
3. Die filebot.sh nicht anfassen

Ist das so korrekt?

Könnte nochmal bitte jemand bestätigen, ob die scripte die ich zitiert habe so korrekt sind und das escaping stimmt? Die Pastebin links sind leider alle tot.

Hab ich noch einen Schritt übersehen?
Reply With Quote
  #91  
Old 11.03.2017, 16:37
Horst789 Horst789 is offline
Modem User
 
Join Date: Feb 2010
Location: Hamburg
Posts: 4
Default

-

Last edited by Horst789; 23.01.2020 at 14:30.
Reply With Quote
  #92  
Old 11.03.2017, 17:55
suffx
Guest
 
Posts: n/a
Default

Wie komme ich überhaupt in das Verzeichnis /ffp/filebot/? wird mir über filestation nicht angezeigt und auch über ssh, egal ob als admin oder root nicht...

Auch auf die Gefahr hin dass die Freischaltung meiner Frage wieder mindestens 24 Stunden dauert und hier anscheinend niemand mehr wirklich aktiv ist: Ich habe jetzt vieles probiert um Jdownloader und Filebot zum Laufen zu kriegen. Zunächst hier mein EventScripter Script:

Code:
[{"eventTrigger":"ON_ARCHIVE_EXTRACTED", "enabled":true, "name":"FileBot", "script":"var amcFile = \"/volume1/video/jdtofilebotsh/jdtofilebot.sh\";var path = archive.getFolder(); callAsync(function() {}, amcFile, path);", "eventTriggerSettings":{}, "id":1489257796220}]
Hab es mit prettyjson validiert, sollte also von der syntax her passen.

Hier der Inhalt meiner jdtofilebot.sh:

Code:
#!/bin/sh
##FileBot benötigt diese Variablen
/bin/mkdir /volume1/video/Downloads/videos/testordner
LOG="/volume1/video/Serien/amc.log"
EXC="/volume1/video/Serien/amc.txt"
SERIEN="/volume1/video/Serien/{n}/{s}/{n}.{s00e00} - {t} ({y}) {vf}"
FILME="/volume1/video/Filme/{n} ({y}) {source}({vf}@{vc}) [{rating}]/{n} ({y}) {source}({vf}@{vc}) [{rating}]"
##UNSORTIERT="/path/{file.structurePathTail}" ### Wenn Filebot mal etwas nicht zuordnen kann, dann kannst du es in einen seperaten Ordner verschieben lassen, dann bleibt es im Downloadordner übersichtlich.
##FileBot ausführen
/var/packages/filebot/target/filebot.sh -script fn:amc --lang de --log-file $LOG --action move "$1" --def "seriesFormat=$SERIEN" "movieFormat=$FILME" "animeFormat=$ANIME" "unsortedFormat=$UNSORTIERT" -non-strict --def unsorted=y --def clean=y
## Aufräumen, --def root löscht den Unterordner mit
/var/packages/filebot/target/filebot.sh -script fn:cleaner "$1" --def root=y
Dieses script kann ich manuell über die konsole oder den aufgabenplaner ausführen und es läuft auch erfolgreich durch.

Leider wird es aber nicht aufgerufen, wenn JD einen Download beendet und entpackt hat. Ich habe eben noch den Benutzer für die jdtofilebot.sh von admin auf root geändert, da JD ja auch unter root läuft, hat aber nichts geholfen.

Leider finde ich auch keine Log datei in der relevante infos stehen, nur die amc.log, wo aber nichts neues drin steht, da das script ja gar nicht ausgeführt wird.

Ich hoffe ihr könnt mir helfen, so langsam verzweifel ich

Last edited by raztoki; 13.03.2017 at 02:13.
Reply With Quote
  #93  
Old 12.03.2017, 15:47
CENGOiSM CENGOiSM is offline
JD Beta
 
Join Date: Jun 2015
Posts: 53
Default

Quote:
Originally Posted by suffx View Post
Auch auf die Gefahr hin dass die Freischaltung meiner Frage wieder mindestens 24 Stunden dauert und hier anscheinend niemand mehr wirklich aktiv ist: Ich habe jetzt vieles probiert um Jdownloader und Filebot zum Laufen zu kriegen. Zunächst hier mein EventScripter Script:

Code:
[{"eventTrigger":"ON_ARCHIVE_EXTRACTED", "enabled":true, "name":"FileBot", "script":"var amcFile = \"/volume1/video/jdtofilebotsh/jdtofilebot.sh\";var path = archive.getFolder(); callAsync(function() {}, amcFile, path);", "eventTriggerSettings":{}, "id":1489257796220}]
Hab es mit prettyjson validiert, sollte also von der syntax her passen.

Hier der Inhalt meiner jdtofilebot.sh:

Code:
#!/bin/sh
##FileBot benötigt diese Variablen
/bin/mkdir /volume1/video/Downloads/videos/testordner
LOG="/volume1/video/Serien/amc.log"
EXC="/volume1/video/Serien/amc.txt"
SERIEN="/volume1/video/Serien/{n}/{s}/{n}.{s00e00} - {t} ({y}) {vf}"
FILME="/volume1/video/Filme/{n} ({y}) {source}({vf}@{vc}) [{rating}]/{n} ({y}) {source}({vf}@{vc}) [{rating}]"
##UNSORTIERT="/path/{file.structurePathTail}" ### Wenn Filebot mal etwas nicht zuordnen kann, dann kannst du es in einen seperaten Ordner verschieben lassen, dann bleibt es im Downloadordner übersichtlich.
##FileBot ausführen
/var/packages/filebot/target/filebot.sh -script fn:amc --lang de --log-file $LOG --action move "$1" --def "seriesFormat=$SERIEN" "movieFormat=$FILME" "animeFormat=$ANIME" "unsortedFormat=$UNSORTIERT" -non-strict --def unsorted=y --def clean=y
## Aufräumen, --def root löscht den Unterordner mit
/var/packages/filebot/target/filebot.sh -script fn:cleaner "$1" --def root=y
Dieses script kann ich manuell über die konsole oder den aufgabenplaner ausführen und es läuft auch erfolgreich durch.

Leider wird es aber nicht aufgerufen, wenn JD einen Download beendet und entpackt hat. Ich habe eben noch den Benutzer für die jdtofilebot.sh von admin auf root geändert, da JD ja auch unter root läuft, hat aber nichts geholfen.

Leider finde ich auch keine Log datei in der relevante infos stehen, nur die amc.log, wo aber nichts neues drin steht, da das script ja gar nicht ausgeführt wird.

Ich hoffe ihr könnt mir helfen, so langsam verzweifel ich
Solange das jdtofilebot Skript alleine läuft, bis du ja schon fast am Ziel.
Hast du in JD das Skript erlaubt? Wenn man was Neues in den EventScripter einträgt muss man das beim ersten Aufruf quittieren, bevor es funktioniert. Vielleicht hast du das noch nicht gemacht?
Reply With Quote
  #94  
Old 12.03.2017, 18:23
suffx
Guest
 
Posts: n/a
Default

Quote:
Originally Posted by CENGOiSM View Post
Solange das jdtofilebot Skript alleine läuft, bis du ja schon fast am Ziel.
Hast du in JD das Skript erlaubt? Wenn man was Neues in den EventScripter einträgt muss man das beim ersten Aufruf quittieren, bevor es funktioniert. Vielleicht hast du das noch nicht gemacht?
Ja, das habe ich gemacht. Ich habe dabei nicht das Häkchen bei "always" gesetzt. Nachdem ich allow geklickt hatte, würde das Skript anscheinend trotzdem nicht ausgeführt und die Abfrage kam seitdem nicht wieder. Auch wenn ich das Skript angepasst habe.

Auch der Ordner der am Anfang des Skripts zum Test erstellt werden soll wird nicht angelegt. Also er geht scheinbar gar nicht in das Skript rein

Quote:
Originally Posted by CENGOiSM View Post
Solange das jdtofilebot Skript alleine läuft, bis du ja schon fast am Ziel.
Hast du in JD das Skript erlaubt? Wenn man was Neues in den EventScripter einträgt muss man das beim ersten Aufruf quittieren, bevor es funktioniert. Vielleicht hast du das noch nicht gemacht?
OK ,ich bin etwas weiter gekommen. Habe die eventscripter log gefunden, und die sagt no such file or directory. Ich kann es mir nur nicht erklären, der pfad im eventscripter script ist 100% korrekt und stimmt mit dem tatsächlichen pfad überein... stimmen da irgendwelche berechtungen nicht?

der Jdownloader läuft unter jdownloader@root, die datei jdtofilebot.sh hat als besitzer root und 777er rechte.

hier der fehler aus der log datei:

Code:
------------------------Thread: 14932:EventScripterExtension.log-----------------------
--ID:14932TS:1489352950103-3/12/17 10:09:10 PM -  [] -> java.io.IOException: Cannot run program "/volume1/video/jdtofilebotsh/jdtofilebot.sh": error=2, No such file or directory
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
	at org.appwork.utils.processes.ProcessBuilderFactory.runCommand(ProcessBuilderFactory.java:127)
	at org.appwork.utils.processes.ProcessBuilderFactory.runCommand(ProcessBuilderFactory.java:113)
	at org.appwork.utils.processes.ProcessBuilderFactory.runCommand(ProcessBuilderFactory.java:108)
	at org.appwork.utils.processes.ProcessBuilderFactory.runCommand(ProcessBuilderFactory.java:56)
	at org.jdownloader.extensions.eventscripter.sandboxobjects.ScriptEnvironment$2.run(ScriptEnvironment.java:185)
Caused by: java.io.IOException: error=2, No such file or directory
	at java.lang.UNIXProcess.forkAndExec(Native Method)
	at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
	at java.lang.ProcessImpl.start(ProcessImpl.java:134)
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
hier nochmal die jdtofilebot.sh:

Code:
[{"eventTrigger":"ON_ARCHIVE_EXTRACTED", "enabled":true, "name":"FileBot", "script":"var amcFile = \"/volume1/video/jdtofilebot.sh\";var path = archive.getFolder(); callAsync(function() {}, amcFile, path);", "eventTriggerSettings":{}, "id":1489257796220}]
Jetzt habe ich in der Eile natürlich Auszüge gepostet wo der Pflad nicht übereinstimmt :D

In meinem Script und auf der Festplatte stimmen die Pfade aber wie gesagt zu 100% überein! Ich hab die Datei auch schon nach /bin kopiert und entsprechend im Event Schripter angepasst, aber jedes Mal wieder heißt es No such file. Aber nochmal, die Datei liegt definitiv am richtigen Ort...

Last edited by raztoki; 13.03.2017 at 02:13.
Reply With Quote
  #95  
Old 13.03.2017, 11:50
suffx
Guest
 
Posts: n/a
Default

Quote:
Originally Posted by suffx View Post
Ja, das habe ich gemacht. Ich habe dabei nicht das Häkchen bei "always" gesetzt. Nachdem ich allow geklickt hatte, würde das Skript anscheinend trotzdem nicht ausgeführt und die Abfrage kam seitdem nicht wieder. Auch wenn ich das Skript angepasst habe.

Auch der Ordner der am Anfang des Skripts zum Test erstellt werden soll wird nicht angelegt. Also er geht scheinbar gar nicht in das Skript rein



OK ,ich bin etwas weiter gekommen. Habe die eventscripter log gefunden, und die sagt no such file or directory. Ich kann es mir nur nicht erklären, der pfad im eventscripter script ist 100% korrekt und stimmt mit dem tatsächlichen pfad überein... stimmen da irgendwelche berechtungen nicht?

der Jdownloader läuft unter jdownloader@root, die datei jdtofilebot.sh hat als besitzer root und 777er rechte.

hier der fehler aus der log datei:

Code:
------------------------Thread: 14932:EventScripterExtension.log-----------------------
--ID:14932TS:1489352950103-3/12/17 10:09:10 PM -  [] -> java.io.IOException: Cannot run program "/volume1/video/jdtofilebotsh/jdtofilebot.sh": error=2, No such file or directory
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
	at org.appwork.utils.processes.ProcessBuilderFactory.runCommand(ProcessBuilderFactory.java:127)
	at org.appwork.utils.processes.ProcessBuilderFactory.runCommand(ProcessBuilderFactory.java:113)
	at org.appwork.utils.processes.ProcessBuilderFactory.runCommand(ProcessBuilderFactory.java:108)
	at org.appwork.utils.processes.ProcessBuilderFactory.runCommand(ProcessBuilderFactory.java:56)
	at org.jdownloader.extensions.eventscripter.sandboxobjects.ScriptEnvironment$2.run(ScriptEnvironment.java:185)
Caused by: java.io.IOException: error=2, No such file or directory
	at java.lang.UNIXProcess.forkAndExec(Native Method)
	at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
	at java.lang.ProcessImpl.start(ProcessImpl.java:134)
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
hier nochmal die jdtofilebot.sh:

Code:
[{"eventTrigger":"ON_ARCHIVE_EXTRACTED", "enabled":true, "name":"FileBot", "script":"var amcFile = \"/volume1/video/jdtofilebotsh/jdtofilebot.sh\";var path = archive.getFolder(); callAsync(function() {}, amcFile, path);", "eventTriggerSettings":{}, "id":1489257796220}]


In meinem Script und auf der Festplatte stimmen die Pfade aber wie gesagt zu 100% überein! Ich hab die Datei auch schon nach /bin kopiert und entsprechend im Event Schripter angepasst, aber jedes Mal wieder heißt es No such file. Aber nochmal, die Datei liegt definitiv am richtigen Ort...
edit, anpassung der pfade
Reply With Quote
  #96  
Old 13.03.2017, 20:03
suffx
Guest
 
Posts: n/a
Default

Quote:
Originally Posted by suffx View Post
Ja, das habe ich gemacht. Ich habe dabei nicht das Häkchen bei "always" gesetzt. Nachdem ich allow geklickt hatte, würde das Skript anscheinend trotzdem nicht ausgeführt und die Abfrage kam seitdem nicht wieder. Auch wenn ich das Skript angepasst habe.

Auch der Ordner der am Anfang des Skripts zum Test erstellt werden soll wird nicht angelegt. Also er geht scheinbar gar nicht in das Skript rein



OK ,ich bin etwas weiter gekommen. Habe die eventscripter log gefunden, und die sagt no such file or directory. Ich kann es mir nur nicht erklären, der pfad im eventscripter script ist 100% korrekt und stimmt mit dem tatsächlichen pfad überein... stimmen da irgendwelche berechtungen nicht?

der Jdownloader läuft unter jdownloader@root, die datei jdtofilebot.sh hat als besitzer root und 777er rechte.

hier der fehler aus der log datei:

Code:
------------------------Thread: 14932:EventScripterExtension.log-----------------------
--ID:14932TS:1489352950103-3/12/17 10:09:10 PM -  [] -> java.io.IOException: Cannot run program "/volume1/video/jdtofilebotsh/jdtofilebot.sh": error=2, No such file or directory
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
	at org.appwork.utils.processes.ProcessBuilderFactory.runCommand(ProcessBuilderFactory.java:127)
	at org.appwork.utils.processes.ProcessBuilderFactory.runCommand(ProcessBuilderFactory.java:113)
	at org.appwork.utils.processes.ProcessBuilderFactory.runCommand(ProcessBuilderFactory.java:108)
	at org.appwork.utils.processes.ProcessBuilderFactory.runCommand(ProcessBuilderFactory.java:56)
	at org.jdownloader.extensions.eventscripter.sandboxobjects.ScriptEnvironment$2.run(ScriptEnvironment.java:185)
Caused by: java.io.IOException: error=2, No such file or directory
	at java.lang.UNIXProcess.forkAndExec(Native Method)
	at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
	at java.lang.ProcessImpl.start(ProcessImpl.java:134)
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
hier nochmal die jdtofilebot.sh:

Code:
[{"eventTrigger":"ON_ARCHIVE_EXTRACTED", "enabled":true, "name":"FileBot", "script":"var amcFile = \"/volume1/video/jdtofilebot.sh\";var path = archive.getFolder(); callAsync(function() {}, amcFile, path);", "eventTriggerSettings":{}, "id":1489257796220}]
Jetzt habe ich in der Eile natürlich Auszüge gepostet wo der Pflad nicht übereinstimmt :D

In meinem Script und auf der Festplatte stimmen die Pfade aber wie gesagt zu 100% überein! Ich hab die Datei auch schon nach /bin kopiert und entsprechend im Event Schripter angepasst, aber jedes Mal wieder heißt es No such file. Aber nochmal, die Datei liegt definitiv am richtigen Ort...

Edit: Konnte das Problem nun selber beheben. Das Problem war, dass die jdtofilebot.sh nicht unix codiert war am Zeitenende. Hab es mit notepad++ umgestellt und schon lief alles.
Reply With Quote
  #97  
Old 13.03.2017, 20:36
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 79,290
Default

Es gibt zwei beliebte Stolpersteine
1.) Datei muss Ausführbar sein (chmod +x Datei)
2.) Da JDownloader keine Umgebungsvariablen weitergibt, sollte in der filebot.sh (dem Skript) der Pfad von Java hardcoded werden und nicht via Umgebungsvariable genutzt werden. Sprich wenn Filebot in der Shell geht aber via JDownloader nicht, dann liegt es evtl genau daran
__________________
JD-Dev & Server-Admin
Reply With Quote
  #98  
Old 13.03.2017, 20:37
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 79,290
Default

@suffx: In Zukunft bitte einfach deinen Post editieren statt einen neuen zu erstellen und den alten zu zitieren
__________________
JD-Dev & Server-Admin
Reply With Quote
  #99  
Old 14.03.2017, 05:39
CENGOiSM CENGOiSM is offline
JD Beta
 
Join Date: Jun 2015
Posts: 53
Default

Freut mich, dass es nun läuft. ����
Falls du dir einen weiteren Schritt zutraust, schau nach "Flexget".
Vielleicht ist das ja was für dich?
Reply With Quote
  #100  
Old 14.03.2017, 13:28
suffx
Guest
 
Posts: n/a
Default

Danke für den Hinweis :-)

Hab ich mich noch nie mit beschäftigt... Mir ist nicht ganz klar auf was für quellen man da am besten zugreift... Torrents wären ja nicht so ideal. Mediatheken wären aber interessant.
Reply With Quote
  #101  
Old 17.03.2017, 21:11
Huppi
Guest
 
Posts: n/a
Default

Halli Zusammen,

ich bin wie suffx dabei filebot auf einem Synology NAS einzurichten. Java, JDownloader, Filebot und Event Scripter laufen schon.

Zu meiner Konfiguration Java, Jdownloader und Filebot sind über das Paketzentrum als root installiert und liegen im Verzeichnis "/volume2/@appstore/".

Mein Event Scripter Code sieht so aus:
Spoiler:

Code:
{"eventTrigger":"ON_ARCHIVE_EXTRACTED",
"enabled":true,
"name":"FileBot",
"script":"var amcFile = \"/volume2/@appstore/filebot/jdtofilebot.sh\";var path = archive.getFolder(); callAsync(function() {}, amcFile, path);",
"eventTriggerSettings":{}}]


Meine jdtofilebot.sh Code sieht so aus:
Spoiler:
Code:
!/bin/sh
##FileBot needs that:
LOG="/volume2/video/Download/FILEBOTCONFIG/amc.log"
EXCLUDE="/volume2/video/Download/FILEBOTCONFIG/amc.txt"
SERIEN="/volume2/video/Serien/{n} /{n.space('.')}.{s00e00}"
FILME="/volume2/video/Filme/{n} ({vc})/{n}"
UNSORTIERT="/volume2/video/Download/UNSTORTIERT/{file.structurePathTail}" ### separate folder for filebot for the case that it cannot recognize a movie / series

##execute filebot
/volume2/@appstore/filebot/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
/volume2/@appstore/filebot/filebot.sh -script fn:cleaner "$1" --def root=y "exts=jpg|nfo|rar|nfo|htm|html|url|txt|etc" "terms=sample|trailer|etc"
-Duser.home="$APP_DATA" -jar "$APP_ROOT/FileBot.jar" "$@"


So sieht meine filebot.sh aus:
Spoiler:
Code:
#!/bin/sh
PRG="$0"

# resolve relative symlinks
while [ -h "$PRG" ] ; do
	ls=`ls -ld "$PRG"`
	link=`expr "$ls" : '.*-> \(.*\)$'`
	if expr "$link" : '/.*' > /dev/null; then
		PRG="$link"
	else
		PRG="`dirname "$PRG"`/$link"
	fi
done

# get canonical path
WORKING_DIR=`pwd`
PRG_DIR=`dirname "$PRG"`
APP_ROOT=`cd "$PRG_DIR" && pwd`


# add package lib folder to library path
PACKAGE_LIBRARY_PATH="$APP_ROOT/lib/$(uname -m)"

# add 3rd party packages to $LD_LIBRARY_PATH by default
SYNO_LIBRARY_PATH="/usr/local/mediainfo/lib:/usr/local/chromaprint/lib"

# add fpcalc to the $PATH by default
export PATH="$PATH:/usr/local/chromaprint/bin"


# restore original working dir (which may be /root and yield permission denied)
if [ -x "$WORKING_DIR" ]; then
	cd "$WORKING_DIR"
else
	cd "/volume1"
fi


# make sure required environment variables are set
if [ -z "$USER" ]; then
	export USER=`whoami`
fi

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


# add PACKAGE_LIBRARY_PATH to LD_LIBRARY_PATH
if [ ! -z "$LD_LIBRARY_PATH" ]; then
	export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$SYNO_LIBRARY_PATH:$PACKAGE_LIBRARY_PATH"
else
	export LD_LIBRARY_PATH="$SYNO_LIBRARY_PATH:$PACKAGE_LIBRARY_PATH"
fi

# choose extractor
EXTRACTOR="ApacheVFS"					# use Apache Commons VFS2 with junrar plugin
# EXTRACTOR="SevenZipExecutable"		# use the 7z executable
# EXTRACTOR="SevenZipNativeBindings"	# use the lib7-Zip-JBinding.so native library

# select application data folder
APP_DATA="$APP_ROOT/data/$USER"

# start filebot
java -Djava.awt.headless=true -Dunixfs=false -DuseExtendedFileAttributes=true -DuseCreationDate=false -Dfile.encoding="UTF-8" -Dsun.jnu.encoding="UTF-8" -Djava.net.useSystemProxies=false -Djna.nosys=false -Djna.nounpack=true -Dapplication.deployment=spk -Dnet.filebot.Archive.extractor="$EXTRACTOR" -Dapplication.dir="$APP_DATA" -Djava.io.tmpdir="$APP_DATA/temp" -Duser.home="$APP_DATA" -Djava.util.prefs.PreferencesFactory=net.filebot.util.prefs.FilePreferencesFactory -Dnet.filebot.util.prefs.file="$APP_DATA/prefs.properties" $JAVA_OPTS -jar "$APP_ROOT/FileBot.jar" "$@"


Nun zu den Dingen, die ich nicht alleine hinbekomme

1. Im Ordner der Filme wird ja automatisch eine "movie.nfo" erstellt. Kann man die genauso benennen lassen wie der Film?
2. Welchen Scraper nutzt er für die Filminfos? Kann man den noch ändern und anpassen?

Last edited by Huppi; 17.03.2017 at 22:01.
Reply With Quote
  #102  
Old 20.03.2017, 16:55
suffx
Guest
 
Posts: n/a
Default

Hi Huppi,

ich glaube nicht, dass man die movie.nfo anders benennen lassen kann. Habe dazu nichts gefunden. Man kann anscheinend nur angeben dass eine erstellt wird. Da jeder Film aber eh in nem eigenen Ordner liegt, stört mich das nicht weiter. Kodi hat damit jedenfalls keine Probleme.

Standard scraper für Filme sind TMDb und für Serien TVDb. Man kann zB AniDB benutzen, die scheint aber nur für anime zu sein. Ich würde auch gerne IMDB nutzen, weil die Daten einfach vollständiger sind. Zum Beispiel bei Lost Staffel 1 ist die letzte Folge (Exodus Part 2 (Teil 2)) NUR auf IMDB zu finden. TVDB listet sie nicht und somit wird sie nicht gescraped. Bisher der einzige Fall der mir aufgefallen ist... trotzdem blöd.

Anscheinend bietet IMDB aber keine API, weshalb es nicht unterstützt wird.
Reply With Quote
  #103  
Old 20.03.2017, 18:24
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 79,290
Default

@Huppi: Erste Zeile des jdtofilebot.sh ist falsch. '!/bin/sh' muss '#!/bin/sh sein'
__________________
JD-Dev & Server-Admin
Reply With Quote
  #104  
Old 01.04.2017, 14:55
Huppi
Guest
 
Posts: n/a
Default

Woran kann es liegen wenn Filebot die Artwork Sachen in den übergeordneten Ordner legt, anstatt in den Serienordner? Die Serie selbst verschiebt er richtig, nur die Artwork sachen nicht.. :/


jdtofilebot.sh
Code:
#!/bin/sh
##FileBot needs that:
LOG="/volume2/video/Download/FILEBOTCONFIG/amc.log"
EXCLUDE="/volume2/video/Download/FILEBOTCONFIG/amc.txt"
SERIEN="/volume2/video/Serien/{n}/{n.space('.')}.{s00e00}"
FILME="/volume2/video/Filme/{n} ({vc})/{n}"
UNSORTIERT="/volume2/video/Download/UNSTORTIERT/{file.structurePathTail}" ### separate folder for filebot for the case that it cannot recognize a movie / series

##execute filebot
/volume2/@appstore/filebot/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
/volume2/@appstore/filebot/filebot.sh -script fn:cleaner "$1" --def root=y "exts=jpg|nfo|rar|nfo|htm|html|url|txt|etc" "terms=sample|trailer|etc"
-Duser.home="$APP_DATA" -jar "$APP_ROOT/FileBot.jar" "$@"
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 23:46.
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 - 2024, Jelsoft Enterprises Ltd.