Beiträge von Seppl1

    Nicht vergessen, dass man time dann natürlich auch noch importieren muss.

    Nachdem der Fehler jetzt gelöst ist (das Problem kannte ich noch gar nicht), würde ich ein paar Verbesserungen am Code vorschlagen:


    Statt import datetime würde ich direkt from datetime import datetime importieren. Dann wird weniger importiert, was das Ganze minimal schneller machen sollte und man spart sich etwas Schreibarbeit, weil man z.B. in Zeile 10 statt datetime.datetime.now() jetzt datetime.now() nutzen kann. Wenn man sehr schreibfaul ist (wie ich), kann man auch from datetime import datetime as dt machen und dann dt.now() nutzen.


    Bei der for-Schleife würde ich so was versuchen:

    Python
    for movie in data['result']['movies']:
        last_p = movie['lastplayed']
        #...

    Dann brauchst du auch die Variable total gar nicht.


    In Zeile 36 würde ich dann gleich 2 Änderungen machen:
    Du überprüfst hier nur, ob last_p ein leerer String ist, oder nicht. Um den Code robuster zu machen, könntest du noch andere Fälle abdecken, indem du einfach nur if last_p: nutzt. Ein leerer String wird nämlich als False interpretiert, genau so wie eine 0 oder None. Alles andere wird als True gewertet (evtl. gibt es noch eine Ausnahme, die mir gerade nicht einfällt).
    Und es ist weniger Schreibarbeit [ag]

    Insgesamt hast du in den letzten Zeilen ziemlich viel Einrückung. So etwas mache ich gerne etwas flacher, indem ich die Logik bei Conditions umdrehe. Also statt

    Python
    if last_p:
        # format string to date
        last_date = datetime.datetime.strptime(last_p, "%Y-%m-%d %H:%M:%S")
        #...

    Würde ich schreiben

    Python
    if not last_p:
        continue
    
    
    # format string to date
    last_date = datetime.datetime.strptime(last_p, "%Y-%m-%d %H:%M:%S")
    #...

    continue bedeutet, dass die for-Schleife mit dem nächsten Element weiter machen soll. Alles darunter wird also nicht mehr ausgeführt, sondern erst wieder mit dem nächsten i bzw. movie


    In Zeile 42 vergleichst du zwei Daten, indem du beide in einen String umwandelst. Das kann schnell zu Fehlern führen. Ich würde lieber if lastp_plus_year < now: machen. Für deine Tests müsstest du now dann eben erzeugen wie bei last_date, also mit strptime von datetime oder time.


    Zu guter Letzt die Variable ans:
    Die wird mit jedem Schritt der for-Schleife wieder überschrieben und enthält am Ende nur den label-Wert des letzten Films. Ich vermute du willst eher eine Liste, d.h. vor die Schleife (Z. 25) kommt ans = list() und in Zeile 43 dann ans.append(str(label))

    Vermutlich musst du aus ans dann in Zeile 46 wieder einen String machen, da weiß ich nicht wie xbmcgui.Dialog().ok() mit einer Liste umgehen würde.

    Aktuell sieht es so aus, als ob die erwähnte Änderung zwar hilft, das Problem nach einiger Zeit aber wieder auftritt. Nach einem Reboot ist dann aber erstmal alles wieder i.O.

    Es sind also wohl noch weitere Änderungen nötig. Wann die veröffentlicht werden und ob Inputstream.Adaptive für Kodi 18 überhaupt noch ein Update bekommt kann ich aktuell nicht sagen.

    @Sonitus Ich kann dir keine PN schreiben, vielleicht ist dein Account noch zu neu. Evtl. hilft dir aber Folgendes:


    Für jeden der die Datei braucht und weiß, wie er auf seinem PC ein Python-Skript ausführen kann, hier eine Anleitung.

    • Lade dir dieses Chrome OS Image herunter (ca. 1GB)
    • Speichere dieses Python-Skript im selben Verzeichnis wie das heruntergeladene Image und führe es aus.
    • Nun sollte in dem Verzeichnis eine Datei libwidevinecdm.so sein, kopiere diese nach ~/.kodi/cdm/libwidevinecdm.so auf deinem RPi.
    • Jetzt noch das RPi neustarten und es sollte wieder flüssig laufen.

    Achso, dass hätte ich vielleicht erwähnen sollen: Das Addon funktioniert nur unter Kodi Matrix.

    Inputstream.adaptive muss immer zur Kodi Version passen, daher wurde vor kurzem das Versionsschema geändert, so dass jetzt erkennbar ist, dass z.B. inputstream.adaptive 19.X nur unter Kodi 19 läuft.

    Also für das aktuelle Problem mit Widevine 4.10.2391.0 gibt es einen ersten potentiellen Fix für inputstream.adaptive. Zurzeit wird er getestet.

    Momentan ist es immernoch sinnvoller einfach weiter Version 4.10.2252.X zu verwenden, aber wer experimentierfreudig ist kann auch selbst testen, ob das Problem damit behoben wird. Die Änderung ist in diesem Repo: https://github.com/glennguy/input…x-multi-session

    Für RPi2/3 gibt es einen Testbuild des Addons hier: https://github.com/xbmc/inputstre…ment-1019208879
    Einfach die Zip herunterladen und installieren. Für den RPi4 wird die aber nicht funktionieren!

    Nach ersten Berichten scheint es damit jedenfalls besser zu sein. Wäre aber gut, wenn es mehr testen würden und [definition=12,0]debug[/definition] logs bereitstellen könnten, falls es doch noch Probleme gibt.

    Genau, wie @ManiacKill sagt, einfach die alte Widevine wiederherstellen. Dazu das Addon "Inputstream Helper" öffnen und auf "Widevine wiederherstellen" gehen. Dann die größte Versionsnummer auswählen. Das sollte 4.10.2252.5 sein, es sollte aber alles mit 4.10.2252.X funktionieren.

    Wenn ich genaueres weiß, werde ich das hier schreiben. Aktuell ist die Vermutung, dass das Problem mit HTTP/2 zusammenhängt, gibt aber noch nichts genaues.

    Die installierten Addons stehen im [definition=9,2]kodi.[definition='1','0']log[/definition][/definition]. Wo das ist weiß ich gerade nicht auswendig, vielleicht in /storage/.kodi/temp?
    Außerdem sind alle Addons in /storage/.kodi/addons installiert, sollten dir also angezeigt werden, wenn du ls -la /storage/.kodi/addons ausführst.
    Addons werden aber nicht als DEB verteilt, sondern in einer ZIP.


    Mich wundert ein wenig, dass der Ordner dem User "1000" und der Gruppe "1000" gehört.

    DEB Pakete sind ja nicht viel mehr als Tar Archive, es könnte vielleicht sein, dass die UID und GID beim packen mitgesichert wurden. Bei Ubuntu (wo die DEB offensichtlich her ist) und den meisten anderen Distros sind das ja die Standard-UID und -GID für den "ersten Nutzer aus Fleisch und Blut". Was mich aber auch wundert und mir gerade eben erst aufgefallen ist: Das Verzeichnis /storage gehört anscheinend auch Nutzer 1000.
    Ich glaube an dem System wurde wirklich schon viel rumgespielt. Für den produktiven Einsatz würde ich mal darüber nachdenken es komplett neu aufzusetzen.