Hmm..., okay.
D.h. es passt eigentlich, funktioniert aber nicht ;).
Wie gesagt, ich bekomme bei Anzeige der MessageBox immer den Fehler "kann header nicht lesen", auch wird keine ja-nein Auswahl mehr angeboten.
Irgendwie drehe ich mich im Kreis.
Hmm..., okay.
D.h. es passt eigentlich, funktioniert aber nicht ;).
Wie gesagt, ich bekomme bei Anzeige der MessageBox immer den Fehler "kann header nicht lesen", auch wird keine ja-nein Auswahl mehr angeboten.
Irgendwie drehe ich mich im Kreis.
HI.
Ich schreibe mal, wie es bisher verstanden habe.
Die callback-Funktion heißt bei mir "showEmail".
Durch Aufruf der Messagebox wird auf diese verwiesen und es soll der Screen "ScreenMailView" geöffnet werden. Dadurch bekomme ich die Fehlermeldung "kann Header nicht lesen".
Die Variable "message" taucht im Aufruf der Messagebox und der Funktion "showEmail" auf. In der Messagebox ist sie korrekt, da dort definiert:
In der callback-Funktion ist der Aufruf "message" wohl verkehrt
In der Klasse "ScreenMailView" werden auch folgende Variablen definiert, ich weiß aber nicht was hier "self" bewirkt.
class ScreenMailView(Screen):
skin = ""
def __init__(self, session, account, message, uid, flags):
'''
Principal screen to show one mail message.
@param session:
@param account: mail acoount, this message is coming from
@param message: the message itself
@param uid: uid of the message, needed to (un)delete and unmark
@param flags: the flags of the message, needed to check, whether IS_DELETED
'''
self._session = session
self._email = message
self._account = account
Alles anzeigen
Muss jetzt in der Callback-Funktion auf die Variablen aus der Klasse "ScreenMailView" zurückgeriffen werden und was verhindert, dass die Messagebox die headers nicht findet.
danke für deine Geduld
def _onHeaderList(self, headers):
'''
Notify about the list of headers.
@param headers: list of headers
'''
# debug("[CheckMail] _onHeaderList headers: %s" %repr(headers))
message = _("New mail arrived for account %s:\n\n") %self._name
for h in headers:
m = MessageHeader(h, headers[h]['RFC822.HEADER'])
message += m.getSenderString() + '\n' + m.getSubject() + '\n\n'
self.account = account
self.message = message
self.uid = _uid
self.flags = flags
Notifications.AddNotificationWithCallback(showEmail, MessageBox, message, MessageBox.TYPE_YESNO, timeout=config.plugins.emailimap.timeout.value)
def showEmail(answer):
if answer:
self.session.open(ScreenMailView, account, message, uid, flags)
Alles anzeigen
Bin ich damit auf der richtigen Fährte?
Hi nochmal.
Ich habe mir nochmal den fstabEditor angesehen und folgendes getestet:
def _onHeaderList(self, headers):
'''
Notify about the list of headers.
@param headers: list of headers
'''
# debug("[CheckMail] _onHeaderList headers: %s" %repr(headers))
message = _("New mail arrived for account %s:\n\n") %self._name
for h in headers:
m = MessageHeader(h, headers[h]['RFC822.HEADER'])
message += m.getSenderString() + '\n' + m.getSubject() + '\n\n'
Notifications.AddNotificationWithCallback(showEmail, MessageBox, message, MessageBox.TYPE_YESNO, timeout=config.plugins.emailimap.timeout.value)
def showEmail(answer):
if answer:
self.session.open(ScreenMailView, account, message, uid, flags)
Alles anzeigen
Leider bekomme ich damit die Meldung: "Kann Header nicht lesen".
Die Variablen self.account = account etc. hatte ich eingefügt, wusste aber nicht in welche Klasse und mit welcher Einrückung.
...uff. Ich glaube ich bin noch weit weg von Python ;).
Der erste Parameter zeigt also auf eine Funktion (def) welche in einer Klasse liegt? Was beim Schließen der MessageBox passiert ist ja eigentlich nicht bedeutend.
Die Klasse in der die Email-Übersicht definiert wird, heißt im Plugin "class ScreenMailView(Screen):"
class ScreenMailView(Screen):
skin class ScreenMailView(Screen):= ""
def __init__(self, session, account, message, uid, flags):
'''
Principal screen to show one mail message.
@param session:
@param account: mail acoount, this message is coming from
@param message: the message itself
@param uid: uid of the message, needed to (un)delete and unmark
@param flags: the flags of the message, needed to check, whether IS_DELETED
'''
Alles anzeigen
und darunter die weiteren Funktionen.
Kann ich das abkupfern oder auf eine Funktion aus einer anderen Klasse verweisen und wie bringe ich der MessageBox bei dass wenn ich "ja" klicke es die Funktion ausführen soll.
Sorry nochmal für die Anfängerfragen, aber irgendwie möchte ich es verstehen, was da so treibe.
Abend - vielen Dank bisher.
Ich habe jetzt mal folgendes probiert:
def _onHeaderList(self, headers):
'''
Notify about the list of headers.
@param headers: list of headers
'''
# debug("[CheckMail] _onHeaderList headers: %s" %repr(headers))
message = _("New mail arrived for account %s:\n\n") %self._name
for h in headers:
m = MessageHeader(h, headers[h]['RFC822.HEADER'])
message += m.getSenderString() + '\n' + m.getSubject() + '\n\n'
Notifications.AddNotificationWithCallback(headers, MessageBox, message, MessageBox.TYPE_YESNO, timeout=config.plugins.emailimap.timeout.value)
Alles anzeigen
Das headers kommt wohl von (self, headers)? Damit bekomme ich ein Popup mit Auswahl ja/nein und mit der Anzeige des Email-Headers .
Drücke ich nun ja oder nein bekomme ich einen BuntScreen.
Auf weiterer Recherche bin auf Definition der keys und der Actionmap gestoßen - bin ich hier auf den richtigen Weg?
Ziel ist es mit "ja" zum entsprechenden EmailAccount zu gelangen.
Wow! Mit so viel konstruktiver Hilfe habe ich gar nicht gerechnet. Ich schaue mir das heute Abend noch mal an.
Merci für die Antwort.
Ich bin wirklich noch ganz am Anfang und versuche die Einzelheiten zu verstehen.
Ich habe die notification.py gefunden und dort gibt es die Funktion (?):
def AddNotificationWithCallback(fnc, screen, *args, **kwargs):
__AddNotification(fnc, screen, None, *args, **kwargs)
Kann ich das dann so anwenden:
Notifications.AddNotificationWithCallback(MessageBox, message, type=MessageBox.TYPE_INFO, timeout=config.plugins.emailimap.timeout.value)
Aber welchen Screen kann ich dann nehmen und was bedeutet hier "args, kwargs"?
Vielleicht muss ich noch mehr über die Grundlagen lesen, aber ich wollte am praktischen Beispiel beginnen.
sg
Hi, eines vorweg: ich bin absoluter Neuling in Python und habe mir kleine Aufgabe gestellt.
Ich möchte das imap-Plugin (enigma2-plugin-extensions-emailclient_3.999+git5231+74706cd-r2_mips32el.ipk) so gestalten, dass bei Eingang einer neuen Nachricht ein eigener Screen geöffnet wird und man bei Klick darauf in den Posteingang des Accounts geleitet wird.
Nach meinen dürftigen Vorstellungen wird eine neue Nachricht hier mittels einer Messagebox dargestellt:
Notifications.AddNotification(MessageBox, message, type=MessageBox.TYPE_INFO, timeout=config.plugins.emailimap.timeout.value)
Kann man sich nun einen eigenen Screen basteln und diesen dann bei Eingang aufrufen?
Und für später eine Taste definieren, welche auf den Posteingang des Accounts leitet?
schon mal herzlichen Dank für Newbie-Schelten
Hi.
Gibt es für das OE2 schon eine Möglichkeit das lirc-Projekt zu nutzen?
dito - gibt es hier schon Abhilfe?
Ich wünsche mir ein Feedback von offizieller Seite, ob von den Wünschen, einer die Chance hat verwirklicht zu werden
Apropos TV mit Hbbtv: Wie ist es eigentlich wenn eine Dreambox an einem solchen TV hängt.
Weiß der TV welcher Sender aktuell auf der Dreambox eingestellt ist, um z. B. anzuzeigen dass der aktuelle Sender HBBTV-Inhalte vorrätig hat.
Und wie wird dann dargestellt: gibt es die Möglichkeit das Fernsehbild von der Dreambox als Picture in Graphic darzustellen?
Auf dreamboxupdate.com gibt es schon das QTWebkit und dort ist in den Demos auch ein Beispielbrowser dabei.
D. h. es wird oder wurde schon daran gearbeitet. Wie weit ghost etc. mit der Bedienerfreundlichkeit eines Browsers
oder einer "richtigen" Hbbtv-Einbindung sind, ist mir noch nicht ersichtlich.
Aber ich glaube nicht, dass das Zeug in den Flash passt. Aber die neueren Images haben ja für mehr Flash gesorgt.
grüße
Ich denke freeman meint das hier.
Leider hat Homey die Entwcklung für das hbbtv-Plugin - zu Gunsten der Multimediathek - wohl nicht mehr auf seiner Prioritätsliste.
Wenn man sich die aktuellen Meldungen verschiedener Sender hinsichtlich hbbtv so ansieht, scheint diese Entwicklung gut voran zu gehen.
Schade, wenn man auf der Dreambox nicht davon profitieren könnte.
grüße