E2-Plugin Modifikation

  • Ein kleines HowTo auf Grundlage eigener bescheidener Erfahrungen mit euphorischen Momenten, halt schön, wenn so ne eigene Modifikation funktioniert:


    1. Plugin modifizieren:


    1.1 Motivation: Ein Plugin modifizieren, eine Kleinigkeit verändern wollen, damit es Features bietet, wie man sie selbst haben möchte.


    1.2 Eigene Beispiele:


    1.2.1 EPGRefreshS - mich störte es, dass ich die Senderverbleibsdauer in Minuten angeben konnte und nicht in Sekunden


    1.2.2 LetterBoxV - ich nutzte LetterBoxV und vergrößerte in 4:3 geboxte 16:9 TV-Formate (schwarze Balken links/rechts wie oben/unten), nach Vergrößerung nur noch oben und unten. Eben dieses Feature konnte ich bei einer Aufnahme nicht mehr nutzen. Da LetterBox nur nur über das blaueTasteMenü aufrufbar ist bzw. Quickbutton ebenfalls mit den Farbtasten funktioniert und eben diese sind im Video-Modus reserviert. Also schrieb ich es in den Plugin-Browser rein, den man auch im Video-Modus erreicht (die nötige Idee und Umsetzungsschritte habe ich in anderen Forenbeiträgen gefunden).


    1.3 Voraussetzung ist natürlich ein wenig Programmiersprachkenntnis. Als kleine Einstiegshilfe bietet sich vielleicht folgender Link an: http://dream.reichholf.net/pydoc/html/index.html, danke JuSt611. Ein auskommentierter Quellcode wäre auch ganz cool, gibts sowas? Also bei mir war es eher Rumprobiere und Hilfen anderer Foristen.


    2. Umbenennung


    2.1 Motivation: LetterBox angeglichen und mit einem E2-Softwareupdate wars auch leider wieder damit gewesen. Ohne jetzt genauer zu wissen, woran sich ein Update genau orientiert, kam mir einfach eine Idee, benenn es um, mach es "eigenständig", was auch klappte.


    2.2 Ordner umbenennen: Mit einem FTP-Client auf die Box verbinden und in das Verzeichnis /usr/lib/enigma2/python/Plugins/Extensions wechseln. Da liegen die einzelnen Plugins und auch sagen wir mal das von euch veränderte Plugin /A. Da machen wir jetzt ein /As draus und soweit fertig.


    2.3 Namen im Plugin selbst verändern: etwas kniffliger und erstmal ansatzweise "richtig". Ich bezieh mich jetzt auf die eigenen oben angesprochenen Mods.


    2.3.1 In LetterBoxV war es noch recht "einfach". Ich habe lediglich nach dem Namen "LetterBoxV" gesucht und ihn hinter plname gefunden und halt angeglichen, das passte dann auch soweit. Hier der Quellcode-Auszug:


    Code
    def Plugins(**kwargs):
    	plname = "LetterBoxV Zoom"
    	return [


    2.3.2 Bei EPGRefreshS war es im Endeffekt eine Verzweiflungstat mit dem Ziel, EPGRefreshS auch ohne nötige Grundkenntnis von EPGRefresh zu trennen. Ähnlich wie oben habe ich diesmal aber der Konsitenz halber alle EPGRefresh-Zeichensätze abhängig von der Groß- und Kleinschreibung zu EPGRefreshS bzw. epgrefresh umbenannt und das haute hin. Leider tut es aber nach aktuellen Updates nicht mehr, also es aktualisiert nicht, erst nach einer Installation. Also wird da wohl auch was mit umgeschrieben, also verändert.


    => bei LetterBoxV haut meine Idee der Umbennung zum Updateschutz hin, bei EPGRefreshS nicht, also man kann es erstmal so probieren, aber ohne Gewähr


    3. Aus eurem Mod eine IPK machen:


    3.1 Erstmal saugt ihr euch dieses plugin2ipk.tar.gz von


    skin2ipk und plugin2ipk Tool


    (Swiss-MAD erwähnte noch eine wie er sagt, flexiblere Variante, ich habe sie selbst aber nicht ausprobiert, hier auf jeden Fall mal der Link dazu [url=http://www.i-have-a-dreambox.com/wbb2/thread.php?postid=522027#post522027,]IPKG script gesucht[/url], danke)



    Dieses plugin2ipk.tar.gz über einen FTP-Client ins /tmp der Dreambox bringen und weiter mit telnet auf die Box drauf (wie das geht, habe ich mal versucht, in einem Howto zu beschreiben, hier http://www.i-have-a-dreambox.c…read.php?threadid=159838.).


    cd /tmp
    gunzip /tmp/plugin2ipk.tar.gz
    tar-xvf /tmp/plugin2ipk.tar


    Nun ins Plugin2ipkVerzeichnis, das Programm lässt sich halt nur aus "seinem" Verzeichnis aus ausführen:


    cd /media/hdd/plugin2ipk


    Nun kommt:


    ./plugin2ipk.sh As 1.0 euername mipsel


    (1.0: eure Version, euername: euer pseudonym/name, As: der Pluginname, abhängig vom Verzeichnisnamen, in dem ihr es habt, mipsel: die Archtektur).


    Das ist als kleine Übersicht gedacht. Leider etwas bescheiden an nötigen Programmierhilfen, aber als petitpeu.


    Mal ein kurzer Einblick zu meinen Mods:


    LetterBoxV:


    in plugin.py


    Code
    def Plugins(**kwargs):
    	plname = "LetterBoxV Zoom" # Plugin-Browser Benennung
    	return [
    PluginDescriptor(name=plname,description="Zoom into letterboxed movies",where=PluginDescriptor.WHERE_PLUGINMENU,fnc=zoom_toggle), # where=PluginDescriptor.WHERE_PlUGINMENU, damit hab ich es ins Plugin-Menü bekommen
    		PluginDescriptor(where=PluginDescriptor.WHERE_SESSIONSTART,fnc=zoom_init)]


    EPGRefreshS:


    in EPGRefresh.py


    Code
    # Recheck later
    					epgrefreshtimer.add(EPGRefreshTimerEntry(
    							time() + config.plugins.epgrefresh.delay_standby.value*60, # hier dann die 60 raus und man hat es in Sekunden (60 Faktor für halt aus Sekunden Minuten mach)
    							self.refresh,
    							nocheck = True)
    					)


    AutoTimerHauptfenster:


    in AutoTimerOverview.py



    wie kommt man nun auf sowas, man schaut sich halt erstmal die Codes an und hat halt vorher schon seine Ideen/Anhaltspunkte. Hier halt mal meine PluginMods offengelegt. Vielleicht kommt auch was von Swiss-MAD, würde mich freuen.

    17 Mal editiert, zuletzt von msg11 ()

  • Zitat

    Original von msg11
    (*) Ich hoffe hier gibt es demnächst einfach mal ein schönes kleines Tutorial. Man muss ja schon wissen, wie python funzt und welche E2-Klassen eingesetzt werden und wofür die stehen. Das kann man schon mal dokumentieren.


    Dann wirf mal einen Blick hier hinein.

    DM 8000 HD + ALPS BSBE2 Tuner
    HDD Western Digital WD10EVDS AV-GP 1TB
    DVD Sony AD 7690H
    Barry Allen Multiboot Konfiguration
    DMM Release 3.2.4 + GP3
    Images auf USB Stick

  • Du könntest langsam mal anfangen die plugins anderer User zu respektieren. Es erscheint
    so, als wäre diese plugin von dir. Wenigstenst eine Nennung, von wem das plugin stammt,
    das du hier erwähnst, wäre wünschenswert.

  • @msg11


    Wenn du mit deinem Tread Anfängern helfen willst, solltest du auch Sachen verlinken. Sonst scheitern die ersten schon weil sie nicht alles finden was sie brauchen.
    Z.b. Den Tread zu "plugin2ipk" verlinken. ---> skin2ipk und plugin2ipk Tool


    Dabei solltest du auf keinen Fall das ipkg-build.sh vergessen, weil meiner Ansicht nach ist dies die flexiblere Variante. --> IPKG script gesucht

  • Die aktuellen Scripts


      plugin2ipk
      skin2ipk
      ipk-build


    sind hier zu finden.


    Gruß
    JuSt

    DM 8000 HD + ALPS BSBE2 Tuner
    HDD Western Digital WD10EVDS AV-GP 1TB
    DVD Sony AD 7690H
    Barry Allen Multiboot Konfiguration
    DMM Release 3.2.4 + GP3
    Images auf USB Stick

  • Zitat

    Original von Swiss-MAD
    @msg11


    Wenn du mit deinem Tread Anfängern helfen willst, solltest du auch Sachen verlinken. Sonst scheitern die ersten schon weil sie nicht alles finden was sie brauchen.
    Z.b. Den Tread zu "plugin2ipk" verlinken. ---> skin2ipk und plugin2ipk Tool


    Dabei solltest du auf keinen Fall das ipkg-build.sh vergessen, weil meiner Ansicht nach ist dies die flexiblere Variante. --> IPKG script gesucht


    Natürlich, ihr habt ja auch total Recht. Da war ich etwas zu zügig unterwegs, danke. Nehm ich auf.


  • Danke, hab den Text einfach aus dem EPGRefreshS-Thread kopiert und nicht darauf geachtet, dass er den richtigen Link als String drin hatte und nicht den Link halt.

  • ein wenig ausgebessert, zu nötigen Programmierkenntnissen würde ich gerne Hilfen einbringen, also ansonsten halt als kleiner Überblick, vielleicht hilft es...

    Einmal editiert, zuletzt von msg11 ()

  • Zitat

    Original von msg11
    aber ich habe gerade mal den AutoTimer echt schick umgepatcht, schauts euch an,


    Du sprichst mir oft etwas in Rätseln....auch wenn ich den Tread den du meinst gefunden habe (AutoTimer - WizardDeutsch und/oder Hauptfenster verändert), aber finden das die anderen auch ?


    Auch in dem Tread ist mir einiges Rätselhaft.


    Z.b.:

    Zitat

    Original von msg11
    mir gefiel halt die Oberfläche nicht so und nun biete ich euch einfach mal 3 Alternativen. Das Hauptfenster rot bis blau .....


    Farbverlauf im Hauptfenster von Rot nach Blau ?
    Titel des Treads ist aber "Tastenumbelegung" und weiter unten schreibst du auch was von den Tasten.


    Sorry aber so unkomplettes Zeugs verwirrt einige, vor allem die Anfänger.
    Nimm dir doch bitte die 1-2min zusätzlich und schreibe so das alle wissen um was es geht.
    Bitte meine Kritik nicht übel nehmen, aber wenn nur wenige kapieren was du mitteilen willst, wirst du auch keine grosse Resonanz darauf erwarten können. :winking_face:

  • Habe die Veränderungen im Anfangspost erwähnt. Anfangs war es auch unkomplett, dafür hatte ich halt ein Screenshot angefügt. Aber danke, hast ja Recht, halbwegs gut erklärt ist besser als total irritierend. Darauf versuche ich vermehrt auch bereits bei den ersten Posts zu achten. Das Screenshot war zwar da, aber sicher, eine plakativere Beschreibung hätte das Ganze gelungener abgerundet und nicht verkompliziert, also unangenehmer gemacht.


    Darum gehts: AutoTimer - WizardDeutsch und/oder Hauptfenster verändert, hat Swiss-MAD ja auch gepostet. Ach mei, die Freude über, hach, was geschafft und seis auch drum.


    Ohne irgendwelche Ansprüche stellen zu wollen, würde ich es aber trotzdem ebenso cool finden, wenn vielleicht "du", Swiss-MAD, mal Auszuüge mit nahezu oder sogar wirklich zeile für zeile Auskommentierung deines Quellcodes posten würdest. Also damit ist glaub ich wirklich jedem geholfen, der was in Richtung Plugins machen möchte. Nur so mal am Rande. Danke für deinen Post und Unrecht hast du ja nicht. Werde es versuchen, von Anfang an zu beherzigen. Wenn es aber nicht klappen sollte, nicht böse sein.

    8 Mal editiert, zuletzt von msg11 ()

  • Hab euch mal meine PluginMods mit Kommentaren offengelgt. Ich hab da echt nur wenig gemacht.

    3 Mal editiert, zuletzt von msg11 ()

  • Zitat

    Original von msg11
    würde ich es aber trotzdem ebenso cool finden, wenn vielleicht "du", Swiss-MAD, mal Auszuüge mit nahezu oder sogar wirklich zeile für zeile Auskommentierung deines Quellcodes posten würdest.


    Dafür bin ich leider zu doof, ich kann nicht wirklich programmieren.
    Deshalb habe ich bei EMC meine fleissigen helfer. :winking_face:

  • Zitat

    Original von Swiss-MAD


    Dafür bin ich leider zu doof, ich kann nicht wirklich programmieren.
    Deshalb habe ich bei EMC meine fleissigen helfer. :winking_face:


    Als ob, du hast es richtig drauf.

    Einmal editiert, zuletzt von msg11 ()