Beiträge von Ingo-FP-Angel

    Ulr1ch Wo das Log zu finden ist steht hier: Wie aktiviere ich Debug Logging? - Wo finde ich das Kodi.log? - Wie lade ich die Datei ins Forum? -Sammelthread-

    kexplorer Diese Log-Zeilen stammen von Kodi selbst oder Python Paketen, für etwas mehr Kontext wäre es aber gut, auch Output aus meinem Plugin mit zu posten. Dazu ist es wahrscheinlich nötig, das Debug-Log zu aktivieren. Dann sollte ich sehen können, welcher konkrete Aufruf nicht geklappt hat.

    Und mögt Ihr mir vielleicht noch verraten, welche Bib Ihr nutzt und welcher konkrete Film nicht geht? Mag sein, dass alle Bibs und alle Filme betroffen sind, aber wir alle kennen ja Murphys Law und vielleicht picke ich zum Reproduzieren genau die Medien raus, die noch gehen. ;)

    Nachtrag: nur um ein generelles Problem beim Anbieter auszuschließen, über die Webseite lassen sich die Sachen aktuell abspielen?

    Vielleicht ist das nicht die Version, die Kodi braucht.

    Sieht so aus, als gäbe es auch ein "libpcre3-dev", vielleicht hilft das?

    Nachtrag: vielleicht ist es schon das richtige Paket, aber das Build-Skript findet die Dateien aus irgendwelchen Gründen nicht. Vielleicht muss man mit "export PCRE_LIBRARY=..." und "export PCRE_INCLUDE_DIR=..." die Pfade angeben, wo die ".so" bzw. ".h" Dateien aus "libpcre2-dev" hin installiert wurden.

    Die README ist leider nicht so aufgebaut, dass man das einfach so in ein Terminal pasten kann.

    Zum Beispiel folgender Teil: gcc (>= 7) | gcc-7

    Das "(>= 7)" bedeutet, dass das Paket mit Namen "gcc" mindestens die Version 7 haben muss, aber das "(>= 7)" darf man dann nicht eingeben beim Installieren mit apt.

    Ebenso das " | " darf nicht eingegeben werden. Das ist nur eine Kurzschreibweise für "oder" und bedeutet, entweder das Paket "gcc" installieren (wenn das mindestens Version 7 hat) oder "gcc-7" (wenn es das gibt, aber dann ist klar, dass es genau die Version 7 ist; die Paketnamen unterschiedlicher Distributionen müssen halt nicht immer zwingend gleich lauten).

    Also wenn da als Abhängigkeit "gcc (>= 7) | gcc-7" steht, muss man je nach Distribution "sudo apt install gcc" oder "sudo apt install gcc-7" verwenden.

    Dasselbe Spiel muss man dann für alle Einträge auf der Seite machen, wo es Klammern oder das Pipe-Zeichen gibt. Und ich denke, die Kommas müssen auch alle weg.

    Nachtrag: auf https://github.com/xbmc/xbmc/blob…encies-manually steht eine Zeile, die man so komplett rauskopieren kann, das würde ich mal probieren.

    Uni-Bibliotheken nutzen gerne mal Shibboleth (mit Username/Passwort) als Login-Methode oder einen Login basierend auf der IP, die aus dem Uni-Netz kommen muss.

    v1.0.11 unterstützt jetzt zumindest den IP basierte Login.

    Ob ich Shibboleth zukünftig einbauen kann, weiss ich leider nicht. Es sieht mir auf dem ersten Blick recht anders aus als OpenID. Und es würde auf jeden Fall wieder davon abhängen, dass jemand für mich den Netzwerktraffic analysiert/mir zukommen lässt, der einen entsprechenden Zugang besitzt.

    curl: (1) Received HTTP/0.9 when not allowed

    Ok, das sieht insofern "gut" aus, als dass es eine echte Antwort vom Drucker gegeben hat. Die "gefällt" curl mit Standardeinstellungen nur nicht.

    Der Drucker spricht offenbar eine veraltete Version des HTTP Protokoll, das kann man aber explizit mit `--http0.9` erlauben:

    curl.exe --http0.9 --location --request POST 'http://192.168.178.9:8899/command' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode '~M105'

    Die Fehlermeldungen aus der cmd deuten für mich darauf hin, dass die cmd das Kommando anders parst und deshalb nicht mit genau dieser Syntax klar kommt. "URL rejected: Port number was not a decimal number between 0 and 65535" heisst ja, dass es die cmd nicht hinbekommen hat, die "8899" als Portnummer zu erkennen bzw. das "Could not resolve host: application" deutet drauf hin, dass die cmd das 'Content-Type: application/x-www-form-urlencoded' für die URL hält. Damit würde ich mich nicht weiter auseinandersetzen, sondern bei der PowerShell bleiben.

    Wieder was gelernt, dass es eine `curl.exe` auch unter Windows gibt, war mir nicht bewusst. Würde ja bedeuten, die Beispiele, die man so im Netz findet, sollten in der PowerShell auch funktionieren, wenn man `curl` durch `curl.exe` ersetzt, so dass eben nicht der Alias genutzt wird (ich hab verstanden, dass es am Ende mit anderen Tools umgesetzt werden soll; nur fürs Gesamtverständnis).

    Und ja, fhem kenne ich nicht und würde ich mich jetzt auch nicht einarbeiten wollen. ;)

    Mit Firefox würde ich das ganze definitiv nicht ausprobieren, wenn man da was in die URL Zeile packt, wird da ja immer ein GET Request ohne Request Body draus. Nachdem, was ich hier so gelesen habe, braucht es aber POST plus Body. Damit ist FF m.E. raus (ja, man kann natürlich auch per JavaScript und fetch in der Browser Konsole arbeiten, wenn man das will).

    Zur Lösungsfindung fände ich es hilfreich, sich auf einen Weg zu einigen.

    Ich würde denken, folgendes sollte funktionieren:

    curl.exe --location --request POST 'http://192.168.178.9:8899/command' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode '~M105'

    Zumindest sollte es dann sinnvollere Ausgaben geben, weil die Syntax korrekt ist.

    Das schickt dann per POST das Temperatur-Kommando "~M105" an den allgemeinen "command" Endpunkt.

    Wobei ich natürlich nicht sagen und mangels Hardware nicht testen kann, ob "--location" (zum Folgen eventueller Redirects) und das URL-Encoding überhaupt nötig ist, d.h. ob nicht auch schon das hier reicht:

    curl.exe --request POST 'http://192.168.178.9:8899/command' --header 'Content-Type: text/plain' --data '~M105'

    Invoke-WebRequest : Es wurde kein Positionsparameter gefunden, der das Argument "--request" akzeptiert.

    Dieser Fehler kommt daher, dass Du offenbar die PowerShell (unter Windows?) benutzt. Da ist "curl" nur ein Alias auf "Invoke-WebRequest". Und das ist wenig direkt kompatibel zu dem Original "curl".

    Aber für sowas gibt es Konverter, z.B. https://curlconverter.com/powershell-webrequest/ und der spuckt folgendes aus:

    Code
    Invoke-WebRequest -Uri "http://<printer_ip>/command" `
        -Method Post `
        -ContentType "application/x-www-form-urlencoded" `
        -Body "~M105"

    Alternativ kannst Du in der WSL unter Windows mit den echten Linux-Tools arbeiten.

    v1.0.9 nutzt jetzt das Refresh Token, um ein abgelaufenes Access Token zu erneuern.

    Vielleicht finden wir ja durch Beobachtung heraus, wie lange so ein Refresh Token nutzbar ist, und ob es doch noch nötig wird, dass Passwort abzuspeichern. Würde das jetzt erstmal ohne Passwort-Speichern lassen.

    Aleksander: ich bin mir nicht zu 100% sicher, ob das so auch mit der Berliner Bib funktioniert wie gedacht. Gib gerne Feedback.

    Ja, es gibt ein Refresh Token. Es war auch schon eine Funktion vorbereitet, um das zu nutzen. Wurde bisher noch nicht aufgerufen.

    Man sieht dem Refresh Token nur dummerweise nicht an, wie lange das gültig ist bzw. eine bestehende Session damit erneuert werden kann.

    Und bei den Bibliotheken mit externem Login bin ich mir nicht sicher, ob ich den Token Endpoint kenne, der das Refresh Token fressen würde. Und testen/analysieren kann ich das nicht selbst, bei meiner Bib wird das einfachere Login-Verfahren benutzt.

    Ist sicher alles kein Hexenwerk, aber eben auch nicht mal so eben nebenbei gemacht.

    Das Plugin speichert das Passwort aktuell gar nicht, das hat der initiale Autor nicht vorgesehen. Über das Warum kann ich nur mutmaßen. Das Passwort würde dann halt im Klartext in der Datei für die Settings stehen, das mag ein Grund sein, das nicht tun zu wollen.

    Ich hab da auch schon drüber nachgedacht, bin mir aber auch noch nicht sicher, was da das beste wäre.

    Grundsätzlich könnte ich mir auch vorstellen, dass einfach nur noch die Passwort-Abfrage kommt, wenn die Anmeldung abgelaufen ist. Dann braucht man nicht mehr die Bib auswählen und die Benutzernummer eingeben. Das wäre etwas komfortabler.

    Oder eben die Möglichkeit, das Passwort doch abzuspeichern. Aber ich hab gerade mal auf meinem Linux-System geguckt: die Datei ~/.kodi/userdata/addon_data/http://plugin.video.filmfriend.de/settings.xml wird standardmäßig mit Zugriffsrechten angelegt, dass jeder Benutzer im System sie lesen darf. Und ich bin mir auch gerade nicht sicher, ob man in den Addon Settings nicht durch Umschalten in den Expertenmodus plus [definition='1','3']Debug[/definition] Infos dann einfach das Passwort einsehen könnte bzw ob sich das noch einschränken lässt (Nachtrag: man kann Settings als hidden kennzeichnen, d.h. zumindest in der Anzeige stehen dann nur die üblichen Sternchen).

    Klar, auf dem eigenen Rechner, an den nie eine andere Person geht, ist das alles kein Problem. Aber schön fände ich das nicht.

    Vielleicht wäre es aber auch eine Möglichkeit, nach der Passwort-Eingabe abzufragen, ob das Passwort gespeichert werden soll mit dem Hinweis, dass Menschen mit Zugang zum System das Passwort dann "klauen" können. Dann könnte man bewusst entscheiden, ob das für einen ok ist oder nicht.

    Dank der Unterstützung von Alexander (Entwicklungsstände ausprobieren und Informationen/Daten der VÖBB zuliefern) und easy4me (Python-Tipps) funktioniert in v1.0.8 der Login bei der VÖBB (Berlin)! :)

    Die Umsetzung ist m.E. so generisch, dass sie auch für andere Bibliotheken mit einer separaten Login-Seite funktionieren sollte.

    Falls nicht enthält das Debug-Log jetzt auch diverse Ausgaben, um bei der Ursachensuche zu helfen (Username und Passwort logge ich natürlich nicht!).

    Bei diesem sog. "externen" Login wird auch abgefragt, ob man Zugriff auf die Altersfreigabe gewähren möchte (sonst geht es nicht weiter).

    Wie Filmfriend.de das abbildet, weiß ich leider nicht (meine Bib fragt das Alter nicht ab). Dementsprechend kann ich auch nicht sagen, ob das Plugin nur Inhalte zeigt, die der Freigabe entsprechen oder ob der ganze Katalog zur Verfügung steht.

    Also vielleicht erstmal ausprobieren, bevor man das den minderjährigen Kids hinstellt...