Beiträge von samoth

    @samoth Der erste Fehler kam jetzt nicht noch mal

    Screencast ohne Datenbank
    ohne-Datenbank.mov

    1. Die erste Benachrichtigung Tabelle programs ist geladen
    2. Spinner Aufnahmen werden geladen
    3. Die zweite Benachrichtigung Aufnahmen-Verzeichnis angelegt (kommt nicht wenn nicht aktiviert)
    4. oben rechts lange Beschreibung wird geladen
    5. Die dritte Benachrichtigung Laden der langen Beschreibung abgeschlossen

    Screencast mit aktueller Datenbank
    mit-Datenbank.mov

    Punkt 4. oben rechts lange Beschreibung wird geladen kommt bei mir überhaupt nicht. Egal in welcher Konfiguration. Der Text "ZattoBoxExt lade Programm Informationen" - für jeden Sender oben rechts kommt bei mir nicht.

    VG, Samoth :)

    rolapp: Erstmal Danke für Deine unermüdlichen Einsatz.
    Habe mich nochmal drangesetzt und zwei Stunden Deine neue Version 1.6.5 getestet. Leider zahlreiche Exceptions. Es folgen die Ergebnisse.

    Testumgebung Win7, 64bit, Kodi (17.0-BETA7 Git:20161219-eed32e7). Platform: Windows NT x86 32-bit, HIQ, Schweizer Account
    Anmerkung: Habe alle Versionen von Dir mit genau dieser Kodi Version getestet. Entsprechende Verzeichnisse bzw. Datenbanken gelöscht. V1.5.20 läüft weiterhin ohne Probleme.

    Einstellungen
    <setting id="audio_stream" value="A" />
    <setting id="dbonstart" value="true" />
    <setting id="epgPlay" value="false" />
    <setting id="hiq" value="true" />
    <setting id="library_dir" value="" />
    <setting id="max_bandwidth" value="5000" />
    <setting id="onlyfav" value="true" />
    <setting id="reset_dir" value="" />
    <setting id="start_channel" value="ARD" />
    <setting id="start_liveTV" value="false" />
    <setting id="swiss" value="true" />
    <setting id="time_offset" value="-2" />

    Test1: Datenbank und Cache Deteien gelöscht. Programmliste nur Favoriten mit Erstellen der lokalen Aufnahme Bibliotek (library_dir='' und onlyfav=false)

    Ergebnis: Ladezeit mit Kodi17.0 BETA7 bei 500 Aufnahmen - nach 5 sec kommt die Benachrichtigung "nur Favoriten laden" und nach 4:30 ist das plugin mit der Aktualisierung fertig und es kommt dann eine erneute Benachrichtung (warum erst so spät ?). Vorher nur Anzeige des Spinners keine weiteren Informationen wie Datenbank aktualisiert oder Bemerkung: Meldung 'ZattoBoxExt lade Programminformationen' kommt alles nicht !!!
    Bemerkung: Wenn ich nach der vollendeter Aktualisierung dann zum ersten Mal die Kanalliste aufrufe erneute Wartezeit mit Spinner von 1:40 min und danach erst der Aufbau der Kanalliste sehr lange !!!, zweiter Aufruf der Kanalliste 10 sec, 3 Aufruf der Kanalliste schnell 1 sec. Ab dem nächsten Neustart funktioniert dann die Kanalliste überhaupt nicht mehr (siehe unten) !!!
    Erster Aufruf von Vorschau und EPG schnell 1sec und bleibt so schnell -> ok
    Erster Aufruf von Aufnahmen 7sec und bliebt so -> ok

    Test2: Neustart ohne Einstellungs-Änderung
    Ergebnis: nach 5sec Exception
    7:54:35.102 T:6684 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
    - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
    Error Type: <type 'exceptions.ValueError'>
    Error Contents: need more than 1 value to unpack
    Traceback (most recent call last):
    File "C:\Users\User\AppData\Roaming\Kodi\addons\plugin.video.zattooboxExt.beta\service.py", line 57, in <module>
    if __addon__.getSetting('dbonstart') == 'true': start()
    File "C:\Users\User\AppData\Roaming\Kodi\addons\plugin.video.zattooboxExt.beta\service.py", line 40, in start
    _zattooDB_.updateChannels()
    File "C:\Users\User\AppData\Roaming\Kodi\addons\plugin.video.zattooboxExt.beta\resources\zattooDB.py", line 130, in updateChannels
    c.execute('SELECT * FROM updates WHERE date=? AND type=? ', [date, 'channels'])
    File "C:\Program Files (x86)\Kodi\system\python\Lib\sqlite3\dbapi2.py", line 68, in convert_timestamp
    datepart, timepart = val.split(" ")
    ValueError: need more than 1 value to unpack
    -->End of Python script error report<--
    Bemerkung: Diese Exception kommt bei jedem Neustart wieder. Kanalliste laden geht auch nicht mehr kommt immer eine Exception (siehe weiter unten)

    Test3: Datenbank neu erstellen
    Ergebnis: Nach 2sec kommt die Benachrichtigung "nur Favoriten laden" nach 5sec die Benachrichtigung "Datenbank wurde gelöscht und neue Daten wurden geladen"
    Bemerkung:
    Wenn ich nach dem Datenbank neu erstellen dann die Aufnahmeliste aufrufe dann wird scheinbar gesamte Datenbank neu erstellt, keine Benachrichtigungen, Spinner, Wartezeit wieder 5:00 min und dann wird die Aufnahmeliste dargestellt.

    Wenn ich nach dem Datenbank neu erstellen dann die Kanalliste aufrufe Exception
    19:04:51.652 T:7552 ERROR: Control 50 in window 10025 has been asked to focus, but it can't
    19:04:56.821 T:3516 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
    - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
    Error Type: <type 'exceptions.TypeError'>
    Error Contents: 'NoneType' object has no attribute '__getitem__'
    Traceback (most recent call last):
    File "C:\Users\User\AppData\Roaming\Kodi\addons\plugin.video.zattooboxExt.beta\plugin.py", line 846, in <module>
    main()
    File "C:\Users\User\AppData\Roaming\Kodi\addons\plugin.video.zattooboxExt.beta\plugin.py", line 781, in main
    elif action == 'channellist': build_channelsList(addon_uri, addon_handle)
    File "C:\Users\User\AppData\Roaming\Kodi\addons\plugin.video.zattooboxExt.beta\plugin.py", line 197, in build_channelsList
    program = _zattooDB_.getPrograms(channels, True)
    File "C:\Users\User\AppData\Roaming\Kodi\addons\plugin.video.zattooboxExt.beta\resources\zattooDB.py", line 272, in getPrograms
    description_long = self.getShowLongDescription(row["showID"])
    File "C:\Users\User\AppData\Roaming\Kodi\addons\plugin.video.zattooboxExt.beta\resources\zattooDB.py", line 304, in getShowLongDescription
    longDesc = showInfo['program']['description']
    TypeError: 'NoneType' object has no attribute '__getitem__'
    -->End of Python script error report<--
    19:04:56.868 T:7552 ERROR: XFILE::CDirectory::GetDirectory - Error getting plugin://http://plugin.video.zattooboxExt.beta/?mode=channellist

    VG, Samoth :)

    Python: service.py
    xbmc.executebuiltin("ActivateWindow(busydialog)")
        _library_.make_library()
        recInfo()
        xbmc.executebuiltin("Dialog.Close(busydialog)")

    @samoth kommentiere die Zeilen aus und starte Kodi neu, lasse auch mal bitte Deine Aufnahmen in Ruhe.
    Ändere mal in der Kanalansicht die Ansicht auf Medienansicht, hier hat man dann auch die volle Beschreibung und darum geht das ganze eigentlich. Die Beschreibung muß dann nicht für die ganze Liste von Zattoo geladen werden, die befindet sich dann schon local in der Datenbank.

    Medienansicht hatte ich doch schon immer ;)

    Nach Auskommentieren, Neustarten und Anwählen der Kanalliste Execption ...

    20:41:10.422 T:7192 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
    - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
    Error Type: <class 'sqlite3.OperationalError'>
    Error Contents: database is locked
    Traceback (most recent call last):
    File "C:\Users\User\AppData\Roaming\Kodi\addons\plugin.video.zattooboxExt.beta\plugin.py", line 846, in <module>
    main()
    File "C:\Users\User\AppData\Roaming\Kodi\addons\plugin.video.zattooboxExt.beta\plugin.py", line 781, in main
    elif action == 'channellist': build_channelsList(addon_uri, addon_handle)
    File "C:\Users\User\AppData\Roaming\Kodi\addons\plugin.video.zattooboxExt.beta\plugin.py", line 197, in build_channelsList
    program = _zattooDB_.getPrograms(channels, True)
    File "C:\Users\User\AppData\Roaming\Kodi\addons\plugin.video.zattooboxExt.beta\resources\zattooDB.py", line 272, in getPrograms
    description_long = self.getShowLongDescription(row["showID"])
    File "C:\Users\User\AppData\Roaming\Kodi\addons\plugin.video.zattooboxExt.beta\resources\zattooDB.py", line 305, in getShowLongDescription
    c.execute('UPDATE programs SET description_long=? WHERE showID=?', [longDesc, showID ])
    OperationalError: database is locked
    -->End of Python script error report<--
    20:41:10.471 T:7544 ERROR: XFILE::CDirectory::GetDirectory - Error getting plugin://http://plugin.video.zattooboxExt.beta/?mode=channellist

    VG, Samoth

    rolapp: MMHHH.
    Vorschlag:
    Warum machst Du das nicht so? Die detaillierten Beschreibungen erst nachladen, wenn TV geschaut wird. Dann ist es wirklich im Hintergrund. Und solange die detaillierte Beschreibung nicht geladen ist zeigst Du Sie auch nicht an. Dann entfallen für den Nutzer die Wartezeiten. :)

    VG, Samoth ;)

    rolapp: Habe es mit der 1.5.20 getestet. Da läuft alles problemlos durch. :)

    Generell ist die alte Version wesentlich schneller als die aktuelle. Das Laden der langen Description braucht ganz schön Zeit ...

    Zu Deiner Testversion. Sehe beim Starten nur Favoriten laden ca. 5 Sekunden und danach einen Spinner aus dem man auch nicht mehr rauskommt. Das plugin scheint mit sich selbst beschäftigt ... Aus diesem Zustand kommt man nicht mehr raus und Kodi muss hart beendet werden ....

    VG, Samoth

    @samoth Kam der Fehler direkt nach dem Start oder Später?

    Code
    c.execute('UPDATE programs SET description_long=? WHERE showID=?', [longDesc, showID ])OperationalError: database is locked

    database is locked.

    Das hat jetzt nichts mit deinen Aufnahmen zu tun, da greift gerade eine andere Routine auf die Datenbank zu.
    Ich habe jetzt beim Kodi Start einen Fortschrittsbalken eingebaut und man kann sich aus suchen ob nur die Favoriten geladen werden


    Ich habe das Plugin aufgerufen. Daten aktualisieren sich. Nach Ende der Aktualisierung habe ich die Kanalliste aufgerufen geht. Wieder zurück und Vorschau aufgerufen geht. Wieder zurück und EPG aufgerufen geht. Wieder zurück und Aufnahmen aufgerufen. Nach ca. zwei Minuten Wartezeit kommt die Exception und das Menü für Aufnahmen baut sich nicht auf. Sieht aus wie Endlosschleife ...

    Soll ich noch mal eine ältere Version testen ?

    VG, Samoth

    @frank612: Mit DNS4me z.B. hast Du alle Möglichkeiten wie ein Schweizer. Dann macht Zattoo auch erst richtig Spass ... :)

    Für Teleboy etc. gibt es auch schon kodi addons wo das abspielen funktioniert. Aber als zusätzliche Erweiterung in diesem plugin in Richtung einer "universelle Streamingplatform" die alle Dienste beeinhaltet wäre das mit Sicherheit Klasse. Die Zugriffsmethoden sind auch über eine API etc.

    VG, Samoth

    Version 1.6.1 ist online, hier gibt es diverse Bugfixes und eine Erweiterte Funktion in der Aufnahme Liste ( nach der Idee von samoth)

    • Der Bug bei der direkten Datumseingabe im EPG für heute ist behoben
    • Da gab es eine Bug beim starten des EPG, wenn noch kein Film gelaufen.
    • der Bug mit der leeren Seite am ende der Kanäle im EPG behoben.
    • Start der Touchbedienung im EPG auf das Zattoo-Box Logo gelegt, da es Probleme mit der Darstellung des Vorschaufenster gab
    • Neue Funktion (by samoth:( Löschen einer Aufnahme löscht auch die Datei aus dem Aufnahmeverzeichnis.
    • Im Einstellungsmenü die Funktion "Verzeichnis zurücksetzten" um die Abfrage Aufnahme-Verzeichnis löschen erweitert


    Vielleicht könnten wir noch eine Bedienungsanleitung zusammen entwerfen, die man sich dann anzeigen lassen kann.

    Klasse. Vielen Dank. :)

    Ein kleiner Fehler ist aber drin ganz am Ende. Du hast jetzt einmal zuviel delete_library() drin, war auch nicht in meinem Codevorschlag.
    elif action == 'makelibrary':
    #delete_library() Bitte bei der nächsten Version entfernen.
    make_library()

    VG, Samoth :thumbup:

    Ich habe mir das mal angeschaut, das sieht schon mal Top aus. noch ein paar Bugs entfernen und wir können das lassen.Frage Warum löscht du das komplette Record-Verzeichnis beim DB-Reload. Da geht dann makeLibrary schief weil das Verzeichnis weg ist. Was auch nicht funktioniert ist wenn ich vorher im Einstellungsmenü das Verzeichnis gelöscht habe, löscht er die Einträge nicht. Was meinst Du sollen wir delete_library lieber in das Einstellungsmenü unter die Funktion Verzeichnis zurücksetzen einbauen.
    Funktioniert bei mir prima. Makelibrary legt das Verzeichnis doch an falls es nicht vorhanden ist. (if not os.path.exists(libraryPath): os.makedirs(libraryPath))
    Machen tue ich das deswegen, da ich Zattoo auch noch auf anderen Geräten nutze und wenn ich dort Aufnahmen lösche, habe ich hier die Möglichkeit alles zu refreshen und damit die obsoleten Aufnahmen zu entfernen. Einen extra Menüpunkt braucht es dewegen nicht.
    Bei delete_library hast du noch den import von shutil vergessen. Stimmt, bitte einfügen.
    Ansonsten finde ich es Top. ich nehme erst mal ein paar Sachen auf damit ich es besser testen kann.
    Schon mal Danke für die Idee und die Vorarbeit.

    VG, Samoth :)

    @samoth der Stream funktioniert dann nicht weil er ja bei zattoo gelöscht ist, das muss ich mir noch anschauen.

    Genau, so meinte ich das. Beim Hinzufügen von Aufnahmen bzw. löschen von Aufnahmen fehlt das aktualisieren der Filmdatenbank. Diese Funktionen gab es noch nicht. Für die nächste Version habe ich einen Codevorschlag und eine kleine Anpassung in der Recordingsliste (Jahr ergänzt) unten angefügt. :)

    VG, Samoth

    rolapp: Klasse das neue EPG. :thumbup: :thumbup: :thumbup:

    Super Arbeit.

    Eine kleine Sache, die mir noch aufgefallen ist. Bei aktivierter Filmdatenbank mit Verzeichnis bleibt die Aufnahme nach dem löschen in der Filmdatenbank erhalten, da das Verzeichnis des Films *.strm noch nicht gelöscht wird.

    VG, Samoth