• Naja, die EPG-db ist da ja auch recht eingeschränkt in ihrer Abfrage.


    Wenn man da kombinierte where-Bedingungen analog von SQL-Abfragen loswerden könnte, wären einige komplexe Suchen im AT auch deutlich schneller.


    Aber so bekommt man 1000 Treffer für den EPG-Titel zurück und filtert diese dann nachträglich manuell nach Wochentag, Sender, Zeitraum ...

    eine sql-datenbank oeffnen und where queries absetzen ist aber kein akt. das sind 10 codezeilen und fuer @gutemine 5 min aufwand :winking_face:

  • Hab mir die EPG.db da noch nicht genauer angeschaut.
    Ist das eine normale SQL-DB?
    Kann man die extern öffnen?


    Dann bräuchte man die epgcache-Befehle ja nicht unbedingt :winking_face:

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • hab noch nicht reingeschaut... aber wuerde mal davon ausgehen, dass es eine normal sql-db ist.

    hier ein beispiel meiner movie db.

    createtable generiert oder oeffnet die tabelle und select macht dann das query.


  • Wenn du aktuelle Sachen mit SQL aus der EPG Datenbank holen willst musst du sie erst vom memory rausschreiben lassen und schon sind ein paar Sekunden vergangen, auch ist die Struktur für laden und speichern optimiert und nicht für queries.


    Direkt im memory kannst du nur über das E2 Interface zugreifen, nicht umsonst habe ich das auch beim EPGExport so umgesetzt, wobei ich da ja genau alle Daten haben will die da sind....

  • Konnte die epg.db tatsächlich in einem SQLite-Tool öffnen :winking_face:

    Eine Suche nach einem Titel mit Einschränkung auf 2 Wochentage und max. 5 Tage in der Zukunft dauert ca. 0,35 Sekunden.


    Das SQL-Statement lässt sich bestimmt noch optimieren. :winking_face:

    Bin da nicht so der SQL-Freak.


    Ist jetzt nur die Frage, ob das auch im laufenden Betrieb ginge, oder ob man da E2 Probleme bereitet :thinking_face:

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

    Einmal editiert, zuletzt von Sven H ()

  • Die Frage wird nur sein, ob E2 die aktuellen EPG-Daten nur im Speicher hat, oder regelmäßig in die Datei zurückschreibt.


    Sonst wird es wohl passieren, dass man in der Datei alte Daten recherchiert, die im Speicher schon längst aktualisiert/geändert sind :winking_face:

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • wenn man nachts einen epg-update macht, dann sollte man epg-daten haben, die aktuell genug sind, selbst wenn sich die daten seit dem ein bisschen geaendert haben.

    in grossrechnern wird data-mining auch nicht immer auf den aktuellsten transaktionsdaten gemacht.

  • <p>Ja, aber dann würde man EPG-Treffer bekommen, die sich dann mit dem aktuellen EPG nicht decken. <br>Das wäre schon blöd.</p>
    <p><br></p>
    <p>Für den AT oder andere Such-Plugins wäre es schon hilfreich, wenn man das epgcache.search etwas aufbohrt.</p>
    <p><br></p>
    <p>Wenn man da einen Filter für Wochentage und den Zeitraum (bis 5 Tage in die Zukunft), Sender oder Bouquet angeben könnte, wäre die Trefferliste schon deutlich kleiner, die dann noch manuell nachgefiltert werden müsste.</p>
    <p><br></p>
    <p>Vielleicht kann <woltlab-metacode data-name="user" data-attributes="WzI5MDdd">Reichi</woltlab-metacode> der epgcache.search-Function einen where-Parameter spendieren (als neuen SearchType), wo man spezielle Filter mitgeben könnte <img src="https://dreambox.de/board/wcf/images/smilies/emojione/1f609.png" class="smiley" alt=";)" height="23" srcset="https://dreambox.de/board/wcf/images/smilies/emojione/1f609@2x.png 2x"></p>

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • Natürlich ist das blöde, weil die epg.db nur beim Runterfahren geschrieben und beim starten gelesen wird, womit die Daten wenn du die box immer im Idle hast sogar Wochen alt sein können. Man kann zwar das rausschreiben erzwingen, aber das dauert einige Sekunden und dann ist die Performance vom Query aber sowas von egal.

  • Das hab ich mir schon so gedacht.


    Da bleibt wohl wirklich nur ein neuer SearchType von Reichi für die epgcache.search, wo man die Suchkriterien einfach in einer where-Klausel übergibt.

    Dann kann man ganz flexibel auch nach Wochentag, für die nächsten X Tage, Sender, Timespan ... direkt in den EPG-Daten suchen.

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • sagen wir mal so .. ich bin nicht sicher ob DP intern die Database überhaupt zum cachen verwendet und insofern ist das mit den queries vielleicht nicht so einfach.

  • Sven, mit "einfach übergeben" ist es vermutlich nicht getan - es muss auch die Ausführung noch implementiert werden. Vermutlich wird epgcache.search (was immer das ist) kein SQL verstehen. Oder?

    DM900 UHD mit DVB T2 | OE 2.5 unstable 4.3.1r28 mit GP3.3

  • Ich hab Reichi zu diesem Thema mal angeschrieben.
    Mal sehen, ob er Zeit zum Antworten findet.
    Ich weiß auch nicht, wie die Daten intern im Speicher abgefragt werden.


    Wenn eine Antwort kommt, sind wir bestimmt schlauer :winking_face:

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • Ein .search müsste keywords haben. Dann kannst du schon intern die entsprechende Abfrage bauen.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Wenn wir aber mal ehrlich sind eine vernünftige EPG-Suche hätte schon was.

    Noch besser wäre eine globale suche ich weiß ja nicht in wie weit man media.db vernünftig durchsuchen kann oder auf die db von VideoDB von außen zugreifen kann.

    Oder ob zusätzlich noch Mediathekviewweb, Youtube oder gar das Mediaportal durchsucht werden kann.

    Und diese Daten je nach Fundort sortiert angezeigt werden können.

  • Die media.db hat aber auch noch ganz viele Einträge von gelöschten Sachen. Daher eher ungeeignet

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Was ich mich Frage... Warum nicht ein paar Sekunden investieren und die epg.db beim öffnen des Plugins raus schreiben. Danach kann man alle Anfragen im sql erledigen. Die Frage ist. Ob man dann Aktionen wie Auto-Timer oder Timer erstellen kann....

    Die meisten Probleme macht man sich selber!

  • Die Quelle der EPG-Suche ist doch beim Erstellen von Timern/Autotimern nebensächlich.
    Von daher geht das dann natürlich noch :winking_face:


    Aber wenn ich bei jedem Öffnen der EPG-Suche jedesmal mehrere Sekunden warten müsste, würde ich die nicht oft nutzen.


    Da bin ich ja jetzt froh, dass EPG-Treffer eigentlich sofort angezeigt werden.

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP