Pfuenzle / anime-loads

17 stars 7 forks source link

JDownloader API nur auf localhost verfügbar #1

Closed sandronidi closed 3 years ago

sandronidi commented 3 years ago

Die Jdownloader API wird leider nur auf dem Localhost exposed. Es ist somit leider nicht möglich, dein Tool auf einem anderen Rechner einzusetzen als der JDownloader läuft, auch wenn das so vorgesehen ist. Vielleicht würde es sinn machen die my.jdownloader API einzubinden.

Pfuenzle commented 3 years ago

Hi, danke für die Rückmeldung erstmal ^^ Stimmt, ich hab JDownloader in Docker laufen und das Problem mit IPtables gelöst und vergessen, dass es überhaupt existiert, aber du hast Recht, das ist natürlich blöd. Ich setz mich morgen Mal an die MyJD Integration, da die lokale und externe API quasi die gleiche ist, sollte das auch in den nächsten Tagen fertig sein.

sandronidi commented 3 years ago

Ich hab JDownloader auch im Docker am laufen, wie hast du denn das Problem lösen können? Hast du dein Anime-Loads Script auch in einem Dockercontainer am laufen und da vielleicht schon ein Dockerfile?

Pfuenzle commented 3 years ago

Mit dem neuesten Commit/Release v1.2 hab ich Support für MyJdownloader hinzugefügt. (Die Downloads starten jetzt auch automatisch) Man kann auswählen, ob das Passwort gespeichert wird oder bei jedem Programmstart angegeben werden muss (Da es nur unverschlüsselt gespeichert werden kann). Alle verbundenen Geräte werden aufgelistet und eins davon kann ausgewählt werden und in der config gespeichert werden. Falls man schon Anime zu der Liste von anibot.py hinzugefügt hat, werden die übernommen, man wird aber beim ersten Start der neuen Version trotzdem dazu aufgefordert, seine Einstellungen neu zu machen. evtl. muss man neue dependencies installieren mit pip install -r requirements.txt

Damit Jdownloader den API-Port exposed, musst du im Docker container iptables installallieren und dann folgenden Befehl eingeben: iptables -t nat -I PREROUTING -p tcp -d 0.0.0.0/0 --dport 9666 -j DNAT --to-destination 127.0.0.1:9666 Außerdem musst du in deinem Docker-Befehl diese Flag hinzufügen: --sysctl net.ipv4.conf.eth0.route_localnet=1 Falls du docker-compose nutzt, einfach die zwei Zeilen hinzufügen

 sysctls:
   net.ipv4.conf.eth0.route_localnet: 1

Ich hab für mich selber schon ein rudimentäres Dockerfile, aber das braucht noch ein paar Tweaks bis ich es veröffentlichen kann, aber sollte nächste Woche fertig sein, kann dich dann gerne pingen

sandronidi commented 3 years ago

Sehr geil! Vielen Dank für den super Service. Das neue Script funktioniert einwandfrei. Das Dockerfile erwarte ich sehr gerne, dann kann das Ding selbständig vor sich hin trödeln.

Pfuenzle commented 3 years ago

Okay, hat leider etwas gedauert aber Dockerfiles sind jetzt verfügbar :D In der readme ist eine quickstart Anleitung, ist aber nicht sonderlich kompliziert