Hi Leute, so langsam verliere ich etwas die Gedult. Ich versuch jetzt schon seit geraumer Zeit mein Plugin welches mit dem Autostart der Box aufgerufen wird mit einem Screen zu versehen.
Das Ziel ist, dass das Plugin beim aufwecken aus dem Standby gestartet wird eine Überprüfung durchführt und wenn diese erfolgreich ist dann soll eine MessageBox aufgehen die den Benutzer fragt ob er Updaten möchte.
Nur leider bekomm ich bei allen möglichen Versuchen die verschiedensten Fehlermeldungen.
Die neuste ist:
Traceback (most recent call last):
File "/usr/lib/enigma2/python/mytest.py", line 594, in <module>
runScreenTest()
File "/usr/lib/enigma2/python/mytest.py", line 453, in runScreenTest
session = Session(desktop = getDesktop(0), summary_desktop = getDesktop(1), navigation = nav)
File "/usr/lib/enigma2/python/mytest.py", line 192, in __init__
p(reason=0, session=self)
File "/usr/lib/enigma2/python/Plugins/Extensions/UpdateChecker/plugin.py", line 123, in autostart
global_session.open(UpdateCheckerScreen)
File "/usr/lib/enigma2/python/mytest.py", line 319, in open
dlg = self.current_dialog = self.instantiateDialog(screen, *arguments, **kwargs)
File "/usr/lib/enigma2/python/mytest.py", line 254, in instantiateDialog
return self.doInstantiateDialog(screen, arguments, kwargs, self.desktop)
File "/usr/lib/enigma2/python/mytest.py", line 279, in doInstantiateDialog
readSkin(dlg, None, dlg.skinName, desktop)
AttributeError: 'UpdateCheckerScreen' object has no attribute 'skinName'
Der Code dazu sieht wie folgt aus:
Alles anzeigen
So langsam weiß ich nicht weiter, kann mir evtl. jmd sagen wie das Ganze mit den Screens und der GUI funktioniert?
Ist es irgendwie möglich die MSGBox zu erzeugen nach dem autostart?
Was mach ich falsch?
In einem anderen Plugin das man normal aus dem Pluginmenü startet funktioniert das mit der Gui bestens. Wieso hier nicht?!
PLZ HELP!
Das Ziel ist, dass das Plugin beim aufwecken aus dem Standby gestartet wird eine Überprüfung durchführt und wenn diese erfolgreich ist dann soll eine MessageBox aufgehen die den Benutzer fragt ob er Updaten möchte.
Nur leider bekomm ich bei allen möglichen Versuchen die verschiedensten Fehlermeldungen.
Die neuste ist:
Traceback (most recent call last):
File "/usr/lib/enigma2/python/mytest.py", line 594, in <module>
runScreenTest()
File "/usr/lib/enigma2/python/mytest.py", line 453, in runScreenTest
session = Session(desktop = getDesktop(0), summary_desktop = getDesktop(1), navigation = nav)
File "/usr/lib/enigma2/python/mytest.py", line 192, in __init__
p(reason=0, session=self)
File "/usr/lib/enigma2/python/Plugins/Extensions/UpdateChecker/plugin.py", line 123, in autostart
global_session.open(UpdateCheckerScreen)
File "/usr/lib/enigma2/python/mytest.py", line 319, in open
dlg = self.current_dialog = self.instantiateDialog(screen, *arguments, **kwargs)
File "/usr/lib/enigma2/python/mytest.py", line 254, in instantiateDialog
return self.doInstantiateDialog(screen, arguments, kwargs, self.desktop)
File "/usr/lib/enigma2/python/mytest.py", line 279, in doInstantiateDialog
readSkin(dlg, None, dlg.skinName, desktop)
AttributeError: 'UpdateCheckerScreen' object has no attribute 'skinName'
Der Code dazu sieht wie folgt aus:
Python-Quellcode
- class UpdateCheckerScreen(Screen):
- skin = """
- <screen name="BouquetUpdateChecker" position="130,150" size="460,400" title="BouquetUpdateChecker" >
- <widget name="myLabel" position="10,60" size="400,120" font="Regular;20"/>
- <widget name="myMenu" position="10,10" size="420,380" scrollbarMode="showOnDemand" />
- </screen>"""
- #Wird beim Start des Plugins aufgerufen
- def __init__(self, session, args = 0):
- self.session = session
- #startet UpdateChecker
- ok = CheckUpdates.checkIfUpdatesAvailable(self)
- if ok == 1:
- self["myLabel"] =Label(_("Es steht eine neue Senderliste zum Download bereit."))
- Screen.__init__(self, session)
- self["myMenu"] = MenuList(list)
- self["myActionMap"] = ActionMap(["SetupActions"],
- {
- "cancel": self.cancel, # add the RC Command "cancel" to close your Screen
- "ok": self.callMyMsgUpdate,
- }, -1)
- ###########################################################################
- def cancel(self):
- self.close(False, self.session)
- ########################################################
- def myMsgErrorCode(self, entry):
- self.session.open(MessageBox,_("Fehlercode: %s") % (entry), MessageBox.TYPE_ERROR)
- ######################################################
- def callMyMsgUpdate (self, result):
- print("cccccccccccccccccccccccccccccccccccccccccccccccccccccccc")
- if result:
- print("ddddddddddddddddddddddddddddddddddddddddddddddddddd")
- self.cancel() #erinnerung an lassen
- else:
- print("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee")
- self.myMsgReminderYN()
- ######################################################
- def callMyMsgUpdateReminder(self, result):
- print("ffffffffffffffffffffffffffffffffffffffffffffffffffff")
- if result:
- print("gggggggggggggggggggggggggggggggggggggggggggggggggggg")
- self.cancel() #erinnerung an lassen
- else:
- print("hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh")
- CheckUpdates.takeNewInfo()
- #######################################################
- def myMsgUpdateYN(self):
- print("uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu")
- self.session.openWithCallback(self.callMyMsgUpdate, MessageBox, _("Es steht eine neue Senderliste zum Download bereit.\nJetzt aktualisieren?"), MessageBox.TYPE_YESNO)
- #######################################################
- def myMsgReminderYN(self):
- self.session.openWithCallback(self.callMyMsgUpdateReminder, MessageBox, _("Spaeter noch einmal erinnern?"), MessageBox.TYPE_YESNO)
- ###########################################################################
- #reason == 1 : wenn das Plugin/E2 beendet wird, falls man noch was aufraeumen moechte
- #reason == 0 : das Plugin wird gestartet/initialisiert
- def autostart(reason, **kwargs):
- #print(kwargs.keys())
- session
- if (reason == 0) and (kwargs.has_key("session")):
- session = kwargs["session"]
- session.open(UpdateCheckerScreen)
- #CheckUpdates.checkIfUpdatesAvailable(self)
- ###########################################################################
- def main(session, **kwargs):
- print("Start Main")
- session.open(callMyMsgUpdate)
- ###########################################################################
- def Plugins(**kwargs):
- list = [
- PluginDescriptor(name="UpdateChecker",
- description="UpdateChecker",
- where = [PluginDescriptor.WHERE_SESSIONSTART,
- PluginDescriptor.WHERE_AUTOSTART],
- fnc = autostart)]
- list.append(PluginDescriptor(name="UpdateChecker",
- description="UpdateChecker",
- where = PluginDescriptor.WHERE_PLUGINMENU,
- icon = "plugin.png",
- fnc = main))
- return list
So langsam weiß ich nicht weiter, kann mir evtl. jmd sagen wie das Ganze mit den Screens und der GUI funktioniert?
Ist es irgendwie möglich die MSGBox zu erzeugen nach dem autostart?
Was mach ich falsch?
In einem anderen Plugin das man normal aus dem Pluginmenü startet funktioniert das mit der Gui bestens. Wieso hier nicht?!
PLZ HELP!