Super. Kommt auch eine Windows oder Android version ?
VG, Samoth
Super. Kommt auch eine Windows oder Android version ?
VG, Samoth
@samoth Der erste Fehler kam jetzt nicht noch mal
Screencast ohne Datenbank
ohne-Datenbank.mov
- Die erste Benachrichtigung Tabelle programs ist geladen
- Spinner Aufnahmen werden geladen
- Die zweite Benachrichtigung Aufnahmen-Verzeichnis angelegt (kommt nicht wenn nicht aktiviert)
- oben rechts lange Beschreibung wird geladen
- 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
Alles anzeigen@samoth Ich habe den Fehler gefunden, Ich habe bei jeden Neustart die Datenbank komplett neu angelegt. Das ist jetzt bei meinen 10 Aufnahmen nicht weiter ins Gewicht gefallen. Ich habe das jetzt geändert Ich bin mal auf dein Angebot eingegangen und habe es mit deinen Daten getestet.
- Test: Datenbank und Cache-Dateien gelöscht. Programmliste nur Favoriten mit erstellen der lokalen Aufnahme Bibliothek.
- Test: Neustart ohne Einstellungs-Änderung
- Test: Tabelle Progams in der Datenbank gelöscht.
Folgende Ladezeiten für Kodi habe ich erhalten. (Alle mit ca 500 Aufnahmen)
- ca 5 Minuten
- ca 20 Sekunden
- ca 1 Minute
Kanalliste mit langer Beschreibung ist relativ ohne Ladezeit sichtbar
Aufnahmelist brauch bei ca 500 Einträgen ca 5 Sekunden Ladezeit, das lässt sich auch nicht mehr weiter optimieren Liste wird beim Aufrufen erstellt.Jetzt ist das schon so wie ich es haben Wollte. Die vielen Benachrichtigungen beim Starten von Kodi werde ich nach einer Probezeit reduzieren. Den Menüpunkt Datenbank neu erstellen habe ich wieder aus dem Hauptmenü herausgenommen.
Die überarbeitete Version ist Online
Dank an @samoth für die Hilfe und das Feedback
Was mich jetzt noch Interessiert:
- Feedback wegen der Ladezeit der Kanalliste und Kodi Start
- Wie sieht das Vorschaubild im EPG aus und welchen Skin benutzt Ihr (hier mal einen Screenshot einfügen)
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
Ich gebe für heute auf. In deiner Testversion taucht dieses Fenster gar nicht auf. Nur eine kurze Meldung am Anfang dann nichts weiter.
VG, Samoth
rolapp. Ja. Na klar.
VG, Samoth
Habe keinen Fortschrittsbalken. Warte jetzt mal 15min ....
VG, Samoth
Python: service.pyxbmc.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
@samoth Das Aufnahme Menü sollte sich dann aber schneller aufbauen wie vorher?
Nein. Der Aubau der Aufnahmenliste dauert nach dem Einlesen der Aufnahmen immer ca. 10 Sec langsamer als die 1.5.20 ...
VG, Samoth
P.S. Ist natürlich auch ein extrem mit 500 Aufnahmen ...
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: Muss mich korregieren. Habe nicht lange genug gewartet. Nach > 10 Minuten kann ich wieder auf Kodi zugreifen und es läuft durch. Das Aufnahme Menü baut sich jetzt auf.
Generell dauert es sehr lange.
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?
Codec.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
Alles anzeigenNeue Version 1.6.4.1 ist Online
- Teletext hat jetzt Touch Unterstütziung
- lange Programm Beschreibung wird jetzt beim Kodi Start in die Datenbank geschrieben und im Hintergrund automatisch aktualisiert, dadurch startet die Kanalliste nun schneller. Das erste Einlesen für alle Kanäle dauert bei mir ca 90 Sekunden. Es kommt dann ein Benachrichtigungs-Fenster wenn das erste Einlesen fertig ist.
- Das Verzeichnis mit den Aufnahmen wird auch bei kodi Start aktualisiert, ergibt einen Geschwindigkeitsvorteil bei vielen Aufnahmen.
Habe grad Deine neue Version getestet. Beim Einlesen der Aufnahmen mittlerweile fast 500 kommt es zu folgender Execption.
Einlesen der Aufnahmen in die Filmdatenbank war nicht aktiviert. Habe vorher alle Plugin Verzeichnisse und Datenbanken gelöscht.
Du kannst gerne meinen Account zum Testen nutzen
VG, Samoth
18:28:58.066 T:3696 ERROR: Control 50 in window 10025 has been asked to focus, but it can't
18:31:06.708 T:1080 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\service.py", line 40, in <module>
start()
File "C:\Users\User\AppData\Roaming\Kodi\addons\plugin.video.zattooboxExt.beta\service.py", line 38, in start
refreshProg()
File "C:\Users\User\AppData\Roaming\Kodi\addons\plugin.video.zattooboxExt.beta\service.py", line 26, in refreshProg
_zattooDB_.getProgInfo(startTime, endTime)
File "C:\Users\User\AppData\Roaming\Kodi\addons\plugin.video.zattooboxExt.beta\resources\zattooDB.py", line 431, in getProgInfo
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
c.execute('UPDATE programs SET description_long=? WHERE showID=?', [longDesc, showID ])
OperationalError: database is locked
-->End of Python script error report<--
@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
@frank612: Ein weiterer Erweiterungswunsch wäre dann noch die Einbindung von Teleboy, Wilmaa und Swisscom
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
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.
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
Du hast in den Einstellungen unter EPG die Option im EPG immer abspielen ausgewählt.
Es kommt sonst bei der Aktuellen Sendung folgende Abfrage:
- LiveTv
- von Anfang abspielen
- aufnehmen
bei vergangener Sendung kommt die Abfrage
- von Anfang abspielen
- aufnehmen