Moviesearch Plugin (Proof of concept)

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Quellcode

      1. alertColor = parseColor('button_yellow').argb()
      damit kracht es auch bei anderen Skins


      Quellcode

      1. alertColor = parseColor('yellow').argb()
      Wird fast bei jedem Skin funktionieren.
      Carpe diem!

      Skin: CerX FHD | Plugins: TMDb, BacksNcovers, FritzDect, AutoShredder, PluginMover | EPG: GraphMultiEPG | ... [Alle anzeigen]

      Vu+ Wiki
    • Danke für die Tipps! Wird umgesetzt :) Habe gleich noch das durchscheinende TV Bild in der Schrift gefixt

      Kannst Du mir noch einen Tipp geben?
      Ich bekomme ich diese Meldungen im Log, auch wenn ich die Tasten in der keymap.xml auskommentiere. Muss ich das für jeden Key einen Stub im Script einbauen? Oder akzeptiert enigma keine HTML Auskommentierung in der keymap und ich muss alles entfernen, was ich nicht im Script handlen will? Ich habe die keymap aus meinem alten FHEM Projekt recycled, das ist allerdings Jahre her, vielleicht hat sich da was geändert.

      Quellcode

      1. 18:40:26.025 [e2-python] action -> MoviesearchActions key_down
      2. 18:40:26.025 [e2-python] unknown action MoviesearchActions/key_down! typo in keymap?
      3. 18:40:30.988 [e2-python] action -> MoviesearchActions key_down
      VU+ Solo2 LAN
      VU+ Uno4k LAN
      VU+ Uno4k WLAN 5GHZ
      VU+ Zero LAN
      Inverto Unicable JESS LNB (32) + Inverto Power Inserter.
    • Diese Keymap reicht.

      Du kannst auch die Definitionen up, down, pageup, movedown etc. in ElementList weglassen, die bringt die schon von Haus aus mit.
      Dateien
      • keymap.xml

        (323 Byte, 1 mal heruntergeladen, zuletzt: )
      Carpe diem!

      Skin: CerX FHD | Plugins: TMDb, BacksNcovers, FritzDect, AutoShredder, PluginMover | EPG: GraphMultiEPG | ... [Alle anzeigen]

      Vu+ Wiki
    • An bei eine neue Version:

      Features
      - EPG Liste: bereits laufende Sendungen werden nicht mehr angezeigt
      - Datenbanken werden nur noch beim Start geladen, dann wird nur noch gegen die geladene Liste verglichen
      - Serien werden so gut es geht nicht geladen (ich importiere nicht, wenn S00E00 enthalten ist)
      - Sendungen zwischen 18:00 und 0:00 werden mit einem gelben Marker angezeigt (nur als Info, dass es im Fernsehabend liegt)
      - Listen können Seitenweise geblättert werden mit Steuerkreuz links/rechts
      - Channel up/down springt an Anfang oder Ende der Liste

      Fixes
      - Bugfix für Absturz bei nicht installiertem VMC. Problem war, dass das Setting für den Pfad dann auch nicht existiert
      - Keymap Fehler im Debuglog sollten weg sein, thx @schomi
      - durchscheinendes TV Bild in der Buttonschrift
      - Fixes für eventuelle Probleme mit Skins bezügl. nicht vorhandenen Farbkonstanten thx @schomi
      Dateien
      • moviesearch.zip

        (7,11 kB, 17 mal heruntergeladen, zuletzt: )
      VU+ Solo2 LAN
      VU+ Uno4k LAN
      VU+ Uno4k WLAN 5GHZ
      VU+ Zero LAN
      Inverto Unicable JESS LNB (32) + Inverto Power Inserter.
    • Moviesearch Plugin (Proof of concept)

      Die Gründe habe ich weiter oben geschrieben. Außerdem wird es mit mehr Sendern auch irgendwann kritisch mit der Performance. Python ist kein Rennpferd und zumindest bei mir werden beim EPG Liste laden Minimum 8000 Vergleiche gemacht (100 EPG Einträge gegen 800 Filme Rastern.

      Wobei mich das grad auf eine Optimierungsidee bringt. :)


      Gesendet von iPhone mit Tapatalk
      VU+ Solo2 LAN
      VU+ Uno4k LAN
      VU+ Uno4k WLAN 5GHZ
      VU+ Zero LAN
      Inverto Unicable JESS LNB (32) + Inverto Power Inserter.
    • Performance Update. Der Pluginstart (einlesen der Datenbanken) wurde reduziert von 600ms auf 90ms. Das merkt man schon heftig. Auf meiner uno4k ist da beim Pluginstart keinerlei Delay mehr

      zusätzlich:
      - Datenbanken und EPG werden nur noch einmalig beim Start abgeglichen. Es ist sehr unwahrscheinlich, dass sich in den DB oder im EPG was ändert, solange das Plugin offen ist
      - beim Wechseln zwischen Timer- und EPG Liste wird nur noch das vorgefilterte EPG mit den Timern verglichen und um diese reduziert. Das ermöglicht switchen in nahezu Echtzeit

      Quellcode

      1. Vorher:
      2. 08:59:30.965 [e2-python] [Moviesearch] Open Database: /usr/lib/enigma2/python/Plugins/Extensions/VMC/DB/VMC3.db
      3. 08:59:31.012 [e2-python] [Moviesearch] List length now: 669
      4. 08:59:31.013 [e2-python] [Moviesearch] Open Database: /media/hdd/vtidb.db
      5. 08:59:31.077 [e2-python] [Moviesearch] List length now: 722
      6. 08:59:31.079 [e2-python] [Moviesearch] filtered EPG list: 0
      7. 08:59:31.079 [e2-python] [Moviesearch] Load EPG...
      8. 08:59:31.086 [e2-python] [Moviesearch] unfiltered EPG list: 117
      9. 08:59:31.570 [e2-python] [Moviesearch] filtered EPG list: 35
      10. 08:59:31.578 [e2-python] [Moviesearch] filtered EPG list minus already set timers: 27
      11. Nachher:
      12. 10:05:03.705 [e2-python] [Moviesearch] Open Database: /usr/lib/enigma2/python/Plugins/Extensions/VMC/DB/VMC3.db
      13. 10:05:03.734 [e2-python] [Moviesearch] List length now: 669
      14. 10:05:03.736 [e2-python] [Moviesearch] Open Database: /media/hdd/vtidb.db
      15. 10:05:03.776 [e2-python] [Moviesearch] List length now: 722
      16. 10:05:03.777 [e2-python] [Moviesearch] filtered EPG list: 0
      17. 10:05:03.777 [e2-python] [Moviesearch] Load EPG...
      18. 10:05:03.785 [e2-python] [Moviesearch] unfiltered EPG list: 115
      19. 10:05:03.791 [e2-python] [Moviesearch] filtered EPG list: 35
      20. 10:05:03.794 [e2-python] [Moviesearch] filtered EPG list minus already set timers: 26
      Alles anzeigen
      Es reicht, aufbauend auf der letzten Version, die Moviesearch.py auszutauschen. GUI Neustart ist nicht nötig, das Script compiliert sich beim nächsten Pluginstart selbst.
      Dateien
      • moviesearch.zip

        (5,86 kB, 11 mal heruntergeladen, zuletzt: )
      VU+ Solo2 LAN
      VU+ Uno4k LAN
      VU+ Uno4k WLAN 5GHZ
      VU+ Zero LAN
      Inverto Unicable JESS LNB (32) + Inverto Power Inserter.
    • Ich danke Dir und habs übernommen. Verstehen tu ich es nicht wirklich. Ich dachte die Prüfung auf null beim Setting würde reichen ( if config.plugins.VMC.vmc3dbpathnew : ) aber scheinbar ist Python da picky :(. So richtig warm werde ich mit Python wohl nie werden ;)
      VU+ Solo2 LAN
      VU+ Uno4k LAN
      VU+ Uno4k WLAN 5GHZ
      VU+ Zero LAN
      Inverto Unicable JESS LNB (32) + Inverto Power Inserter.
    • Zwei Überlegungen habe ich momentan:
      - Ich bin am überlegen, ob ich Extradaten nutzen sollte, oder eher cover, oder ob man das überhaupt braucht für dieses "check - click & leave" Plugin. Niemand wird anhand eines Bildes entscheiden, ob er den Film aufnimmt oder nicht. Eher würden Fotos der Hauptdarsteller Sinn machen. Wo soll man die aber wieder zwischenlagern - das wird alles wieder 2much

      - Ich bin am überlegen, ob eine Blacklist Sinn macht. Das man quasi mit Taste 0 einen Film blacklisten kann (wären bei mir zum Beispiel "Die Schlümpfe"). Das wär dann wie Tinder :P - Ausschlussprinzip. Allerdings müsste man dann auch ein Blacklist Management einbauen, damit man einen Film auch wieder von der Blacklist runterkriegt, wenn man plötzlich Schlümpfe Fan geworden ist.
      VU+ Solo2 LAN
      VU+ Uno4k LAN
      VU+ Uno4k WLAN 5GHZ
      VU+ Zero LAN
      Inverto Unicable JESS LNB (32) + Inverto Power Inserter.
    • mir persönlich würde es in der jetzigen Form schon reichen, find es cool, dass ich nicht den EPG mehrerer Sky Sender durchblättern muss. :thumbup:

      Cover wäre schön, aber kein Muss, vor allem wenn es dadurch zu "Geschwindigkeitseinbußen" führt.
      Darsteller find ich nicht wichtig, das wäre für ein Filmarchiv sinnvoller. ;)
      - - - Beitrag wurde mit Deppentalk erstellt. - - -
    • Meine Rede ;)

      Ich habe mal testweise bei mir die id's aus den Extradaten geladen, so dass nun in jedem ListItem der Pfad zum passenden EPGImage (oder Platzhalter) vorgehalten wird. Zeitverlust ist kaum feststellbar. Prinzipiell müsste es jetzt nur noch im change event der Liste als Pixmap irgendwo hingelegt werden. Ich weiß allerdings echt nicht, wo ich es anzeigen soll. Font's verkleinern kommt nicht in Frage, aktuell ist es bewusst so, das ich das Plugin aus 6m (Couch) auf einem 55" bedienen kann. ;)
      VU+ Solo2 LAN
      VU+ Uno4k LAN
      VU+ Uno4k WLAN 5GHZ
      VU+ Zero LAN
      Inverto Unicable JESS LNB (32) + Inverto Power Inserter.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von hgdo ()

    • Moviesearch Plugin (Proof of concept)

      Vielleicht könnte man es auch Vollbild machen, angelehnt an den normalen EPG Screen (EPG -> gelb)


      Gesendet von iPhone mit Tapatalk

      Mal ne Frage bevor ich durchdrehe:

      Im XML habe ich ein Widget mit Namen "myCover" angelegt (ignoriert die position und size, die spielen ja erstmal keine Rolle)

      Quellcode

      1. <widget
      2. name="myCover"
      3. position="850,40"
      4. size="800,640"
      5. transparent="0"
      6. alphatest="on" />



      Dann im Script

      Quellcode

      1. from Components.Pixmap import Pixmap
      2. from enigma import loadJPG


      im __init__

      Quellcode

      1. self["myCover"] = Pixmap()

      Dann will ich ein Bild laden

      Quellcode

      1. try:
      2. self.colorprint("path: " + p)
      3. if fileExists(p):
      4. ptr = loadJPG(p)
      5. self["myCover"].setPixmap(ptr)

      und kriege diese Ausgabe:

      Quellcode

      1. 18:22:24.073 [e2-python] [Moviesearch] path: /media/usb1/EPGImages/03.11.18/107478634.jpg
      2. 18:22:24.076 [e2-python] [Moviesearch] error: 'Pixmap' object has no attribute 'setPixmap'
      in der Class Reference steht die Funktion aber drin enigma2: Components.Pixmap.Pixmap Class Reference

      Wo soll denn da der Fehler sein?
      VU+ Solo2 LAN
      VU+ Uno4k LAN
      VU+ Uno4k WLAN 5GHZ
      VU+ Zero LAN
      Inverto Unicable JESS LNB (32) + Inverto Power Inserter.
    • Die instance scheint es nicht zu geben :(


      Quellcode

      1. def loadImage(self, p):
      2. try:
      3. self.colorprint("path: " + p)
      4. if fileExists(p):
      5. ptr = loadJPG(p)
      6. self["myCover"].instance.setPixmap(ptr)
      Fehler:

      Quellcode

      1. 19:25:06.888 [e2-python] [Moviesearch] path: /media/usb1/EPGImages/03.11.18/107478634.jpg
      2. 19:25:06.910 [e2-python] [Moviesearch] error: 'NoneType' object has no attribute 'setPixmap'
      VU+ Solo2 LAN
      VU+ Uno4k LAN
      VU+ Uno4k WLAN 5GHZ
      VU+ Zero LAN
      Inverto Unicable JESS LNB (32) + Inverto Power Inserter.