KiddyTimer V1.3

  • wie gesagt: Die Sache mit dem Timer war schon ne Krücke, weil der ursprüngliche Code (der untere im Post) eben gar nicht funktioniert hat...


    Aber Du könntest natürlich recht haben, dass ich hier einfach den Timer global deklarieren müsste, um ein Ergebnis zu bekommen...


    Obwohl: Den Timer will ich eigentlich nicht wirklich verwenden...


    Das seltsame ist ja: Das Plugin verwendet genau diese Logik (allerdings nicht mit session in kwargs, sondern indem es nur auf sessionstart hört) und kriegt ganz ohne Probleme einen Screen initialisiert... nur die Sache mit der "Benutzerinteraktion" funktioniert nicht....


    Danke, dass Du Dir das anschauen willst... Eigentlich hast Du ja mit Deinen eigenen Plugins wirklich genug zu tun...


    Gruss
    Tode

  • Na, passt schon ;)

    <b>MfG Ali</b>
    <p />
    <select OnChange="window.open(this.options[this.selectedIndex].value, 'New')">
    <option value="/wbb2">Aus meinem Labor:</option>
    <option value="/wbb2/thread.php?threadid=127480">ARD Mediathek</option>
    <option value="/wbb2/thread.php?threadid=105590">CCcam Info</option>
    <option value="/wbb2/thread.php?threadid=99943">CS-Manager</option>
    <option value="/wbb2/thread.php?threadid=117478">DVD Backup</option>
    <option value="/wbb2/thread.php?threadid=90957">Extended Service Info</option>
    <option value="/wbb2/thread.php?threadid=92153">Mosaic</option>
    <option value="/wbb2/thread.php?threadid=114726">Movie Jukebox</option>
    <option value="/wbb2/thread.php?threadid=127314">Movielist Preview</option>
    <option value="/wbb2/thread.php?threadid=107501">ORF.at</option>
    <option value="/wbb2/thread.php?threadid=99478">Permanent Clock</option>
    <option value="/wbb2/thread.php?threadid=111496">Podcast</option>
    <option value="/wbb2/thread.php?threadid=125382">Porn Center</option>
    <option value="/wbb2/thread.php?threadid=89009">RS Downloader</option>
    <option value="/wbb2/thread.php?threadid=118188">Seekbar</option>
    <option value="/wbb2/thread.php?threadid=92584">Zap-History Browser</option>
    <option value="/wbb2/thread.php?threadid=127065">Zap Statistic</option>
    <option value="/wbb2/thread.php?threadid=125298">ZDF Mediathek</option>
    </select>

  • Das sollte genau das machen, was du willst:

    <b>MfG Ali</b>
    <p />
    <select OnChange="window.open(this.options[this.selectedIndex].value, 'New')">
    <option value="/wbb2">Aus meinem Labor:</option>
    <option value="/wbb2/thread.php?threadid=127480">ARD Mediathek</option>
    <option value="/wbb2/thread.php?threadid=105590">CCcam Info</option>
    <option value="/wbb2/thread.php?threadid=99943">CS-Manager</option>
    <option value="/wbb2/thread.php?threadid=117478">DVD Backup</option>
    <option value="/wbb2/thread.php?threadid=90957">Extended Service Info</option>
    <option value="/wbb2/thread.php?threadid=92153">Mosaic</option>
    <option value="/wbb2/thread.php?threadid=114726">Movie Jukebox</option>
    <option value="/wbb2/thread.php?threadid=127314">Movielist Preview</option>
    <option value="/wbb2/thread.php?threadid=107501">ORF.at</option>
    <option value="/wbb2/thread.php?threadid=99478">Permanent Clock</option>
    <option value="/wbb2/thread.php?threadid=111496">Podcast</option>
    <option value="/wbb2/thread.php?threadid=125382">Porn Center</option>
    <option value="/wbb2/thread.php?threadid=89009">RS Downloader</option>
    <option value="/wbb2/thread.php?threadid=118188">Seekbar</option>
    <option value="/wbb2/thread.php?threadid=92584">Zap-History Browser</option>
    <option value="/wbb2/thread.php?threadid=127065">Zap Statistic</option>
    <option value="/wbb2/thread.php?threadid=125298">ZDF Mediathek</option>
    </select>

  • vielen Dank... Aber das ist mir momentan ein wenig zu hoch...


    Ich versuche mal, das zu verstehen:


    So weit ist alles klar:


    - Ich merke mir die ursprüngliche Funktion doShow der Infobar in einer alternativen Variablen. Du hast jetzt einfach den ersten Buchstaben grossgeschrieben, man könnte das aber auch irgendwie "doShowOriginal" nennen... (gibt es da "best practices" für solche Dinge, dass man die Gross- Kleinschreibung ändert, wenn man sowas macht, oder ist das einfach Deine Art das zu tun ?)


    - Dann schreibe ich mein eigenes doShow, das der Klasse Infobar zugewiesen wird (in der letzen Zeile Deines code- Abschnittes, das war erst mal etwas verwirrend)


    - In dem eigenen doShow setze ich wieder das Original- doShow zurück (damit meine Funktion wirklich nur einmal ausgeführt wird


    Jetzt aber zu meinen Fragen:


    1. Müsste ich nicht das DoShow in meiner eigenen doShow explizit aufrufen, denn sonst wird beim starten meines Plugins ja tatsächlich die Infobar NICHT angezeigt, oder ?


    2. Dass ich einfach die Eigenschaften einer Klasse on the fly überschreiben kann, ohne eine eigene Klasse zu haben, die von dieser Klasse erbt ist mir neu...
    Könnte ich da quasi dauerhaft Funktionen von Enigma austauschen, ohne was zu patchen, indem ich einfach ein autostart- plugin schreibe ?


    3. So ein Kopfstand, nur um eine Messagebox beim Systemstart zu zeigen... Wieso funktioniert die eigentlich logisch klingende (und mir auch von x anderen Entwicklern im IRC empfohlene Methode, sich an den sessionstart zu hängen eigentlich nicht ?
    Hast Du da eine Erklärung für, oder hast Du Dich damit gar nicht weiter beschäftigt und gleich den Workaround programmiert ?
    Weil: Scheinbar geht das ja... Im git ist das Plugin CrashlogAutoSubmit, das ja auch sowas macht...


    4. DANKE. Dann muss äh kann ich mich ja doch nochmal da dranmachen...


    Tode

  • Quote

    Ich merke mir die ursprüngliche Funktion doShow der Infobar in einer alternativen Variablen. Du hast jetzt einfach den ersten Buchstaben grossgeschrieben, man könnte das aber auch irgendwie "doShowOriginal" nennen... (gibt es da "best practices" für solche Dinge, dass man die Gross- Kleinschreibung ändert, wenn man sowas macht, oder ist das einfach Deine Art das zu tun ?)


    Du kannst das nennen, wie du willst. Glaube, ich hatte das mal so von ritzMo übernommen.


    Quote

    - Dann schreibe ich mein eigenes doShow, das der Klasse Infobar zugewiesen wird (in der letzen Zeile Deines code- Abschnittes, das war erst mal etwas verwirrend)


    Die letzte Zeile überschreibt die Funktion doShow der InfoBarGenerics.InfoBarShowHide Klasse einmalig... das wird dann in der Funktion doShow wieder zurückgeändert. Die Funktion kannst du natürlich auch nennen wie du willst.


    Quote

    - In dem eigenen doShow setze ich wieder das Original- doShow zurück (damit meine Funktion wirklich nur einmal ausgeführt wird


    Richtig


    Quote

    1. Müsste ich nicht das DoShow in meiner eigenen doShow explizit aufrufen, denn sonst wird beim starten meines Plugins ja tatsächlich die Infobar NICHT angezeigt, oder ?


    Richtig. Damit die InfoBar gezeigt wird, musst du die Originalfunktion selbst aufrufen.


    Quote


    2. Dass ich einfach die Eigenschaften einer Klasse on the fly überschreiben kann, ohne eine eigene Klasse zu haben, die von dieser Klasse erbt ist mir neu...
    Könnte ich da quasi dauerhaft Funktionen von Enigma austauschen, ohne was zu patchen, indem ich einfach ein autostart- plugin schreibe ?


    Ja, kannst du.
    Für das obige Beispiel brauchst du noch nicht mal mit autostart im PluginDescriptor arbeiten, da die Plugins sowieso von enigma2 aufgerufen werden beim Start.


    Quote

    3. So ein Kopfstand, nur um eine Messagebox beim Systemstart zu zeigen... Wieso funktioniert die eigentlich logisch klingende (und mir auch von x anderen Entwicklern im IRC empfohlene Methode, sich an den sessionstart zu hängen eigentlich nicht ?
    Hast Du da eine Erklärung für, oder hast Du Dich damit gar nicht weiter beschäftigt und gleich den Workaround programmiert ?
    Weil: Scheinbar geht das ja... Im git ist das Plugin CrashlogAutoSubmit, das ja auch sowas macht...


    Wenn das dort geht musst du dir die sourcen nochmal genauer anschauen. Irgendwas muss ja dann anders sein ;)
    Ich hatte das mit normalen Starten einer MessageBox noch nie probiert direkt nach sessionstart/autostart. Das ist doch normal viel zu früh... Glaube, dass deswegen da nix kommt.
    Beim Vergleichen der code-Zeilen von deinem und meinem Beispiel ist doch eher das Original ein Kopfstand *g*

    <b>MfG Ali</b>
    <p />
    <select OnChange="window.open(this.options[this.selectedIndex].value, 'New')">
    <option value="/wbb2">Aus meinem Labor:</option>
    <option value="/wbb2/thread.php?threadid=127480">ARD Mediathek</option>
    <option value="/wbb2/thread.php?threadid=105590">CCcam Info</option>
    <option value="/wbb2/thread.php?threadid=99943">CS-Manager</option>
    <option value="/wbb2/thread.php?threadid=117478">DVD Backup</option>
    <option value="/wbb2/thread.php?threadid=90957">Extended Service Info</option>
    <option value="/wbb2/thread.php?threadid=92153">Mosaic</option>
    <option value="/wbb2/thread.php?threadid=114726">Movie Jukebox</option>
    <option value="/wbb2/thread.php?threadid=127314">Movielist Preview</option>
    <option value="/wbb2/thread.php?threadid=107501">ORF.at</option>
    <option value="/wbb2/thread.php?threadid=99478">Permanent Clock</option>
    <option value="/wbb2/thread.php?threadid=111496">Podcast</option>
    <option value="/wbb2/thread.php?threadid=125382">Porn Center</option>
    <option value="/wbb2/thread.php?threadid=89009">RS Downloader</option>
    <option value="/wbb2/thread.php?threadid=118188">Seekbar</option>
    <option value="/wbb2/thread.php?threadid=92584">Zap-History Browser</option>
    <option value="/wbb2/thread.php?threadid=127065">Zap Statistic</option>
    <option value="/wbb2/thread.php?threadid=125298">ZDF Mediathek</option>
    </select>

  • Vielen Dank für Deine Ausführungen.


    Das mit dem "Kopfstand" war natürlich mehr scherzhaft gemeint...
    Was mich gestört hatte, ist, dass ich mich an ein anderes "Frontend- Element" anhänge, statt mein eigenes zu schaffen...


    Jetzt versuche ich das mal auf mein Plugin zu übertragen (da ist ja ein wenig mehr noch dahinter) und melde mich dann wieder.


    Gruss
    Tode

  • Meins war auch scherzhaft gemeint... mach dir nur keinen Kopf drüber ;)

    <b>MfG Ali</b>
    <p />
    <select OnChange="window.open(this.options[this.selectedIndex].value, 'New')">
    <option value="/wbb2">Aus meinem Labor:</option>
    <option value="/wbb2/thread.php?threadid=127480">ARD Mediathek</option>
    <option value="/wbb2/thread.php?threadid=105590">CCcam Info</option>
    <option value="/wbb2/thread.php?threadid=99943">CS-Manager</option>
    <option value="/wbb2/thread.php?threadid=117478">DVD Backup</option>
    <option value="/wbb2/thread.php?threadid=90957">Extended Service Info</option>
    <option value="/wbb2/thread.php?threadid=92153">Mosaic</option>
    <option value="/wbb2/thread.php?threadid=114726">Movie Jukebox</option>
    <option value="/wbb2/thread.php?threadid=127314">Movielist Preview</option>
    <option value="/wbb2/thread.php?threadid=107501">ORF.at</option>
    <option value="/wbb2/thread.php?threadid=99478">Permanent Clock</option>
    <option value="/wbb2/thread.php?threadid=111496">Podcast</option>
    <option value="/wbb2/thread.php?threadid=125382">Porn Center</option>
    <option value="/wbb2/thread.php?threadid=89009">RS Downloader</option>
    <option value="/wbb2/thread.php?threadid=118188">Seekbar</option>
    <option value="/wbb2/thread.php?threadid=92584">Zap-History Browser</option>
    <option value="/wbb2/thread.php?threadid=127065">Zap Statistic</option>
    <option value="/wbb2/thread.php?threadid=125298">ZDF Mediathek</option>
    </select>

  • soo... also beim Systemstart funktioniert Dein Code schon mal wunderbar.


    Jetzt brauch ich nur noch ein ähnliches Event, das mir den Standby überwacht. Ich hänge mich zwar schon an den Standby per "Standby.inStandby.onClose.append" an, aber hier habe ich wieder das selbe Problem: Wenn dieses Event getriggert wird, ist das Frontend scheinbar noch nicht vollständig initialisiert, und die Messagebox kommt nicht. Ausserdem wird das onShow der InfoBar auch nicht getriggert, so dass ich -wenn ich mich da dranhänge- meine Abfrage erst beim nächsten Zappen kriege....


    Hast Du da vielleicht auch noch ne Idee ?


    Danke
    Tode

  • AliAbdul: Hat sich erledigt... Ich habe rausgefunden, dass ich statt session.openWithCallback einfach Notifications.AddNotificationWithCallback verwenden muss, dann ist es egal, wo und wann im Code das ganze passiert: Sobald die Notification angezeigt werden KANN wird sie angezeigt...


    Also war der ganze Wirbel umsonst... Ich habe mir nochmal Deinen Hinweis "zu Herzen genommen", dass dann wohl was im anderen Code anders sein muss, wenn es dort funktioniert und bei mir nicht... und es war alles gleich, ausser der Aufruf der Messagebox...


    Jetzt kann ich endlich richtig weitermachen....


    Danke nochmal für Deine Unterstützung.


    Tode

  • neue Version 0.5 im ersten Post ... Dank AliAbdul, ohne den diese Version nicht zustande gekommen wäre.


    Neues Feature: Abfrage zur Aktivierung bei jedem Start (damit man nicht immer das Plugin deaktivieren muss, wenn man mal ausser der Reihe Fernsehen will)


    Viel Spass
    Tode

  • welche depends werden den gebraucht ?


  • hmm... da stehen keine Depends, oder ?


    Dann wird es wohl so sein, dass es keine Depends gibt...


    Ich gehe auch -soweit mir bekannt- nirgends auf relativ neue Funktionen... Das ganze sollte auch in einem uralten Image funktionieren.


    Vielleicht mit einer Ausnahme: Die Orientation des ProgressBar gibt es imho erst seit Ende Januar diesen Jahres (Genauer gesagt: Jan 19, da war der Commit der Orientation für den eSlider), das Image sollte also neuer sein als das....


    EDIT: Wie würde das aussehen ?


    Depends: enigma2(>=2.6git20090119)
    So?


    Tode

    Edited 2 times, last by Tode ().

  • Hallo,
    ich habe aktuell folgendes Problem und frage mich ob dieses Plugin mir hilft (oder ein anderes):
    Unsere Tochter soll zu bestimmten Zeiten nicht unkontrolliert die Dream benutzen. Meistens die Zeiten wo sie alleine zu Hause ist.


    Ich stelle mir also ein Plugin vor, welches zu bestimmten Zeiten je Wochentag sofort nach einschalten der Box nach einer PIN fragt. Eine zeitliche Begrenzung brauche ich nicht. Einmal die PIN eingegeben --> alles frei bis zum nächsten StandBy.


    Beispiel: MO-FR zwischen 8:00 Uhr und 18:00 Uhr beim Anschalten die PIN-Abfrage. In allen anderen Zeiten keine PIN-Abfrage (da wir das dann zu Hause kontrollieren können und ich Abends und am WOE nicht immer eine PIN eingeben möchte).


    Dieses Plugin hat ein anderes Konzept, oder?


    Gibt es eine Lösung für meine Problem?

  • Momentan gibt es keine Lösung, die alle Deine Wünsche berücksichtigt:


    Dieses Plugin ermöglicht, den täglichen TV- Konsum einzuschränken. Natürlich kannst Du einfach die Zeit für die Tage Montag bis Freitag auf 0 stellen.


    Beim starten aus dem Standby fragt das Plugin ob es aktiviert werden soll. Wenn man "Nein" auswählt, dann muss man eine PIN eingeben, um das Plugin zu deaktivieren.


    Im Plugin kann man eine Uhrzeit einstellen, ab der dann nicht mehr gefragt wird. (in Deinem Fall: 18:00) Das mit der Startzeit (8:00) hatte ich mir auch überlegt, das aber verworfen, weil ich dachte: eigentlich ist egal, ob die Kids die Dream um 6:00 oder um 8:00 einschalten...


    Aber eigentlich ist die Funktion, die Du suchst der Jugendschutz. Dieser ermöglicht, die Box generell mit PIN zu schützen, hat aber weder ein speichern der PIN bis zum nächsten Standby noch eine Zeiteinstellung, zu der der Jugendschutz nicht mehr zieht.


    Ich arbeite gerade am DMM- Jugendschutz, um Ihn zu verbessern, aber das geht nur mühsam und in kleinen Schritten (das speichern der PIN bis zum nächsten standby habe ich schon), und ob es dann irgendwann in die Images kommt ist auch nicht sicher...


    Gruss
    Tode

  • Kann man auch die Anzeige etwas dezenter machen?
    Ein wenig kleiner?
    Ansonsten ist es ein Super-Plugin!

    Gruß
    newbie2007


    2x DM7025 SAT/SAT
    1 TB Synology-Diskstation DS-109

  • Du musst nur die Bilder im Verzeichnis img nehmen und mit einem handelsüblichen Zeichenprogramm verkleinern (Smiley-Slider.png, Smiley-Background.png für den Smiley- Timer, Timer0000.png -Timer1000.png für den Eieruhr- Timer).


    Dann mit pngquant wieder zurück ins Dreambox- Format bringen (mit 8Bit Farbtiefe = 256 Farben in pngquantFE), weil ich noch kein Programm gefunden habe, das pngs mit 8Bit Farbtiefe und Alpha- Transparenz speichern kann) und fertig...


    Ich werde in Kürze nochmal an den KiddyTimer gehen, um den Code "schöner" zu machen, wenn ich dann kleinere Images habe, füge ich diese gerne als Option ein.


    Aber selbst machen: Das ist mir zu viel Arbeit, zumal ich selbst es so ganz gut finde.


    Gruss
    Tode

  • Wo finde ich das Verzeichnis "img"?

    Gruß
    newbie2007


    2x DM7025 SAT/SAT
    1 TB Synology-Diskstation DS-109

  • /usr/lib/enigma2/python/Plugins/Extensions/KiddyTimer/img

  • Danke. Übersetzung wurde an Schwerkraft committed.


    Gruss
    Tode