[+all Plugins] Ihad enigma2 Plugin Tutorial

  • Ich hab's doch noch geschafft nach langem Forschen!!!


    Mit
    service = self.session.nav.getCurrentService()
    seek = service and service.seek()
    position = seek.getPlayPosition()
    Spielzeit = position[1]
    config.plugins.merlinmusicplayer.lastsonglistpts.value = Spielzeit
    config.plugins.merlinmusicplayer.lastsonglistpts.save()


    wird die Spielzeit abgespeichert, mit


    self.playSong(self.songList[self.currentIndex][0].filename)
    service = self.session.nav.getCurrentService()
    self.seek = service.seek()
    self.seek.seekTo(config.plugins.merlinmusicplayer.lastsonglistpts.value)
    self.updatedSeekState()


    wird diese Position aufgerufen und ab dieser Stelle abgespielt. Yipee!!!

  • gibt es irgendwo eine Referenz was es alles für funktionen gibt ?
    ich will einfach nur eine txt datei downloaden und darstellen, hab dazu mir die lessons angeschaut und diese mit dem Bild für praktisch gefunden.
    Dort gibt es die funktion getPicfromUrl, nun weiß ich aber nicht welche ich nehmen kann um einfach nur zu downloaden, und dann die gedownloadede txt anzuzeigen ?

  • Kann ich das Tut auf meiner DM900 kopieren wenn ich die ipk entpacke oder geht das nicht wegen ARM?

  • Hallo liebes Forum.
    Ich bin gerade dabei mich ein bisschen in Sachen Plugins zu beschäftigen, Python Kenntnisse sind durchschnittlich vorhanden, ich habe auch schon einige Sachen Erfolgreich, dank dieses Ihad Tutorial, gemacht.
    Jetzt aber mal eine Frage zu Tutorial 3 (Call My Msg), da sind mir die Funktionen "myMsg" und vor allem "callMyMsg" ein bisschen unverständlich.
    Ich möchte mir dieses Plugin erweitern. Aber was ist z.b. mit Parameter "result" gemeint?
    Ist das nur ein Platzhalter?


    Kann mir jemand die 3 Funktionen etwas erklären?


  • Hallo


    Aller Anfang ist schwer :winking_face:
    Ich will mal versuchen, etwas Licht ins Dunkel zu bringen.


    Die def myMgs wird ja durch die OK-Taste aufgerufen, was weiter oben im Plugin so festgelegt wurde.
    In der def myMsg wird dann eine Messagebox ja/nein aufgerufen, die dann das Ergbnis der Auswahl an die Funktion def callMyMsg übergibt. Das Ergebnis der Auswahl bei ja/nein ist dabei in der Variable "result" gespeichert.
    Je nachdem wie die Frage bei myMsg beantwortet wurde, wird in callMyMsg weitergemacht.


    openWithCallback leitet immer an eine Funktion weiter, die als erster Parameter angegeben ist.

  • Schon mal vielen dank ;).


    Ich hab mir auch genau das Modul Massage.Box.py durchgelesen, dann wird ja schon einiges klar.
    Aber ich verstehe das mit der Variable (result) nicht so, Woher weiß openWithCallback das es in die Variable result gespeichert wird? Und wenn es zutrifft dann wird es ja (durch die Funktion callMyMsg) geschlossen, und wenn kein result is, dann kommt die Massage "Ah, you like the Ihad plugin!\n;-)".
    Die stelle ist mir noch ein bisschen unklar.

  • openWithCallback ist egal, wie die Variable heißt.
    Sie übergibt ihr Ergebnis der Messagebox einfach an die Zielfunktion.


    Dort muss man diese Rückgabe definieren und verarbeiten.


    In dem Fall wurde eben "result" dafür festgelegt. Man könnte die Variable auch "ergebnis" nennen. Mit der Variable wird dann eben weitergearbeitet.
    Wie die heißt, legt man in der Zielfunktion selber fest.

  • OK, jetzt habe ich es verstanden, wenn ich dann "ja" drücke, dann ist automatisch der Parameter "result" wahr, weil

    Code
    if result:
         self.close(None)


    Denn es schließt ja nur wenn ich auf "ja" drücke, wenn ich "nein" drücke trifft ja die Bedingung nicht zu und es greift dann else.
    Ist dieses "openWithCallback" eigentlich eine Vordefinierte Funktion?

  • Genau. openWithCallback ist eine feste Funktion aus dem System.


    Je nachdem, wie man die Frage stellt, muss man dann die Rückinfo auswerten.


    If result:... wird ausgeführt wenn man "ja" gedrückt hat.


    Man kann das result auch mit If not result:... prüfen. Dann wird etwas ausgeführt, wenn man "nein" gedrückt hat.
    (ich glaube If result == False:... ginge auch dafür)

  • Kann man die Funktion irgendwo nachschauen?


    Ich hab es jetzt geschafft, daraus ein Plugin zu basteln, was ein anderes Python Script läd, Wenn das Script schon läuft legt es eine Datei an, und wenn sie existiert, dann gibt er mir aus ob ich es beenden möchte, wenn dies der Fall ist, wird die Datei gelöscht und beim nächsten Aufruf wird gefragt ob ich es starten möchte (die Datei existiert ja nicht mehr) und es wir bei "ja" gestartet.
    Die Datei speichere ich in tmp Verzeichnis.

  • Anbei hab ich noch eine kleine Frage, ich bekomme im "MenuList" die Schrift nicht größer, habe jetzt schon fast alles versucht, wenn ich "font="Regular;25"" einbaue, dann wird sie größer, aber dann fehlt von der höhe ein Stück. Von der Länge her gehts.Ich hab alle "size" schon vergrößert und es ändert sich nichts. Kann mir jemand helfen?
    Hier mein bisheriger Screen:


    Code
    skin = """
    		<screen position="200,150" size="460,250" title="Ping" >
    			<widget name="myMenu" position="10,20" size="200,200" font="Regular;25" />
    		</screen>"""
  • Probier mal itemHeight="35" dahinter.

    Einmal editiert, zuletzt von r80 ()

  • Hi guys, first of all thanks to the creator of the tutorial plugins ... I wanted to add to this somewhat dated topic, to inform you that I am modifying the various tutorial plugins for openatv 6.5 python 3.8. I don't know if it has already been done, but I will do it anyway to practice in this environment ... eventually I can help, once finished I could create the ipk and post it here, if I can! Thank you all. Ps: how is the IPK created😅? Sorry for my bad english 😅