AMDUser
Anmeldungsdatum: 12. August 2005
Beiträge: 96
Wohnort: Leichlingen
|
So langsam werden die Mirrors gefüllt und bald müsste die Ankündigung für das Release auftauchen, da ist auch mein speziell für 9.04 in Python geschriebener GMail-Notifier gerade so fertig geworden - zumindest in einem ersten Stadium. https://launchpad.net/gm-notify/0.x/0.5 Er integriert sich wunderbar in das Indicator-Applet und nutzt den neuen notify-osd daemon um über Mails zu benachrichtigen. Leider fehlt bisher ein anständiges, graphisches Konfigurationsinterface weswegen zum Eingeben der Benutzerdaten ein Kommandozeilenscript beigelegt ist. Einfach die README lesen darin ist die Installation mit zwei simplen Befehlen beschrieben. Ich bin gespannt auf Kommentare und Anregungen ☺ Alex P.S. Da Launchpad zur Zeit ein wenig überlastet scheint hier das .tar.gz im Anhang. Screenshots findet ihr auf meinem Blog http://www.bleedingpaper.com
- gm-notify-0.5.tar.gz (17.7 KiB)
- Download gm-notify-0.5.tar.gz
|
AMDUser
(Themenstarter)
Anmeldungsdatum: 12. August 2005
Beiträge: 96
Wohnort: Leichlingen
|
Noch ein wichtiger Hinweis:
Damit das ganze funktioniert sind die Pakete python-indicate und python-notify erforderlich. Ein | sudo apt-get install python-indicate python-notify
|
sollte dafür reichen.
|
firefreak
Anmeldungsdatum: 8. September 2006
Beiträge: Zähle...
Wohnort: Spittal an der Drau
|
Super! Das ist genau das was ich gesucht habe ☺ . Perfekt wird's sobald dein Programm eine Konfig-GUI hat und einen Ton abspielt sobald eine neue Mail da ist. Hoffe du baust das noch ein. mfg, ein zufriedener Nutzer ^^
|
fanarell
Anmeldungsdatum: 16. November 2006
Beiträge: 71
|
Hey, danke für die Arbeit. ☺ Ich musste eine Kleinigkeit bei mir ändern, dein Skript bei mir funktioniert: In der Datei gmailatom.py:
def getUnreadMsgCount(self):
return min(20, self.m.getUnreadMsgCount())
Ich rufe meine Mails mit Thunderbird auf. Deswegen sind alle meine Mails als 'unread' geflaggt. Der Feed von Google ist auf 20 Einträge begrenzt, weswegen deine Schleifen auf Einträge jenseits der Arraygrenzen zugreifen. Da die Googlemail-Einträge beim POP-Abruf nicht auf 'read' gestellt werden, bringt mir dein Skript leider nicht viel, da je nach Änderung entweder immer wieder die gleichen Mails angezeigt werden, oder jede E-Mail nur einmal erscheint. Das Verhalten, dass jede Mail nur einmal erscheint hatte ich zwischenzeitlich erreicht, indem ich in der Methode 'filterNewMail()' die Zeile
#self.oldmail = []
auskommentiert habe. Eventuell wäre es sinnvoll in die README zuschreiben, dass der Benutzername inkl. @googlemail.de gefordert ist. Viele Grüße,
Fanarell
|
AMDUser
(Themenstarter)
Anmeldungsdatum: 12. August 2005
Beiträge: 96
Wohnort: Leichlingen
|
Hallo zusammen,
kaum hat man sich versehen, da ist auch schon das nächste Release fertig ☺ . Version 0.7 hat zwei neue Features:
auf die Idee mit dem Sound bin ich garnicht mehr gekommen, vielen Dank für den Hinweis firefreak 😉
Herunterladen kann man sich das Ganze wieder auf Launchpad: https://launchpad.net/gm-notify/0.x/0.7 Ich wünsche erneut viel Spaß beim Ausprobieren und Benutzen! UPDATE: Screenshots gibts wie immer auf www.bleedingpaper.com 😉 @fanarell:
Das ist zugegebenermaßen ein Problem an das ich zu Beginn garnicht gedacht habe. Leider muss ich dazu sagen, dass mir spontan keine Lösung einfällt, die das ganze richtig löst außer einem beinahe kompletten rewrite weswegen ich erstmal nicht viel mehr tun kann als zu sagen, dass man doch auch IMAP benutzen könnte 😉 Aber da ich ansonsten im Moment keine anderen größeren Featurerequests habe könnte ich das ja vielleicht in der nächsten Version angehen. Das mit dem Benutzernamen ist allerdings sehr seltsam → Bei mir klappt es ohne @gmail.com hervorragend ☺ Eine gute Nacht!
|
AMDUser
(Themenstarter)
Anmeldungsdatum: 12. August 2005
Beiträge: 96
Wohnort: Leichlingen
|
wieder ein Release, dieses mal v0.8 ☺ Äußerlich sind es dieses mal keine großen Änderungen jedoch habe ich den Titel "hochintegriert" weiterverfolgt, sodass der Notifier nun auf die GNOME Soundeinstellungen zurückgreift. https://launchpad.net/gm-notify/0.x/0.8 Leider gibt es immer noch Probleme, wenn die schon gelesenen Mails nicht als "Read" markiert werden (wie das beim Pop3 Abruf nicht geschieht) - jedoch ist der Crash gefixt und man wird über neue Mails benachrichtigt (Die Anzeige im Indicator Applet stimmt dagegen in diesem Fall nicht). Um das zu fixen (genau wie den Fall, dass Mails die in Labels landen nicht beachtet werden) muss ich mir leider ein völlig neues API suchen, was aber noch vor der 1.0 kommt, wahrscheinlich sogar in der 0.9 ☺ - die wird aber bestimmt nicht vor dem nächsten Wochenende das Licht der Welt erblicken... Also stay tuned! Weiterhin viel Spaß damit!
|
firefreak
Anmeldungsdatum: 8. September 2006
Beiträge: 110
Wohnort: Spittal an der Drau
|
Servus! Freut mich dass das mit der GUI und den Sounds jetzt drinnen ist! Ich hätte da noch einen Vorschlag um "hochintegriert" weiterzuführen: Wäre gut wenn dein Programm die GNOME Proxy Einstellungen beachten würde. Das brauch ich zwar in den seltensten Fällen, kann mir aber vorstellen dass das für den Einen oder Anderen ganz nützlich ist. mfg, Firefreak
|
jan93
Anmeldungsdatum: 27. September 2007
Beiträge: Zähle...
Wohnort: /home/jan
|
Mir gefällt das Programm sehr gut und es funktioniert bei mir bisher auch einwandfrei. Das einzige, was mir noch fehlt, ist ein deb-Paket, mit dem sich das Programm einfach über die Paketverwaltung installieren lässt. Es wäre schön, wenn du eins erstellen könntest. Aber eine neue Version mit Bugfixes ist natürlich erst einmal wichtiger.
|
AMDUser
(Themenstarter)
Anmeldungsdatum: 12. August 2005
Beiträge: 96
Wohnort: Leichlingen
|
aah, gut dass du das erwähnst ☺ → Es gibt schon eins: https://launchpad.net/~t.vetterlein/+archive/ppa auch hier nochmal ein Danke an Tom Vetterlein für das Erstellen! @ firefreak:
Mmh, Proxy wäre vielleicht dann das "feature complete" zum 1.0. Zur Zeit arbeite ich noch an einem anderen Backend, damit auch Labels usw. unterstützt werden.
|
Lunar
Anmeldungsdatum: 17. März 2006
Beiträge: 5792
|
Ein paar Anmerkungen zum Quellcode: shell=True nur dann verwenden, wenn die Shell wirklich nötig ist. Das ist bei keinem der Aufruf in deinem Programm der Fall.
except: ohne konkreten Ausnahmetyp nur verwenden, wenn der Traceback gesichert oder die Ausnahme weitergereicht wird. In deinem Programm ist weder das eine noch das andere der Fall, Debugging wird dadurch unnötigerweise erschwert. Im Allgemeinen solltest du bei unerwarteten Ausnahmen lieber darauf bauen, dass sich die Laufzeitumgebung sauber beendet und nur die Ausnahmen abfangen, an deren sauberer Behandlung du interessiert bist.
Ein Prozessabbruch mittels sys.exit() in den Tiefen von Klassen erschwert das Nachvollziehen des Programmflusses. Wenn ein Programm nicht geordnet weiterarbeiten kann, solltest du eine Ausnahme auslösen, und erst auf der höchsten Ebene, also in der Hauptfunktion, abbrechen. Zum Parsen von XML gibt es mit ElementTree und lxml einfachere APIs als SAX. $XDG_DATA_DIRS muss nicht existieren.
os.path enthält diverse Funktionen zum Testen der Existenz bestimmter Verzeichnisse, dafür nutzt man nicht os.access() .
Ob eine Zeichenkette leer ist, prüft man nicht mit len() . Leere Zeichenketten sind im boolschen Kontext False , es reicht also: if user and passwd: . checkCreds.result ist kein sonderlich eleganter Weg, um Fehler oder Erfolg des Threads zu signalisieren. Wenn schon, dann solltest du wenigstens auch echte boolsche Werte nutzen, anstatt diese über Zahlen zu emulieren. Besser wären also die Werte None , True und False anstatt -1 , 1 und 0 .
In readthemefile() ist if len(line) == 0: continue völlig überflüssig. Die Rückgabewerte sind nicht immer sinnvoll. findsoundfile() sollte besser None zurückgeben, wenn keine Datei gefunden wurde.
Das ist mir beim Drüberschauen aufgefallen, dazu kommt noch der obligatorische Hinweis auf PEP8, deine Namensgebung und dein Codestil entsprechend nicht immer den Gepflogenheiten von Python-Programmen.
|
AMDUser
(Themenstarter)
Anmeldungsdatum: 12. August 2005
Beiträge: 96
Wohnort: Leichlingen
|
Hallo Lunar, vielen Dank für die Hinweise! Die werden auf jeden Fall in der nächsten Version Eingang finden... Es tut immer gut seinen Python-Stil zu verbessern ☺ Alex
|
FireFighter90
Anmeldungsdatum: 26. April 2007
Beiträge: Zähle...
Wohnort: Velden am Wörthersee
|
Hallo! Ich bin durch firefreak auf dein Programm aufmerksam geworden. Ich bin mittlerweile glücklicher Nutzer von Google Apps, also Gmail mit der eigenen Domain. Ich war positiv überrascht, dass ich mich auf Anhieb anmelden konnte und meine Mails abgerufen wurden. Jedoch gab es einen Kleinigkeit die ich ändern musste. Beim Klick auf die neue Mail wurde (verständlicherweise) die herkömmliche Gmail Seite (mail.google.com) aufgerufen. Als Google Apps Nutzer bringt mir das aber nicht viel und ich musste die URL in deinem Skript ändern. | def serverClick(self, server):
'''called when the server is clicked in the indicator-applet to open the gmail account'''
subprocess.Popen("xdg-open 'https://mail.google.com/a/MYDOMAIN.AT/mail/'", shell=True)
|
Lange Rede kurze Sinn, es wäre eine tolle Sache, wenn man mit deinem Konfigurationsprogamm auch seine Google Apps Domain einstellen könnte! Dazu müsste eigentlich nur der oben geänderte URL austauschbar sein und die eigene Domain in der GUI einzutragen. lg FF90
|
AMDUser
(Themenstarter)
Anmeldungsdatum: 12. August 2005
Beiträge: 96
Wohnort: Leichlingen
|
so, das wurde auch integriert ☺ Ich wünsche viel Spaß mit dem neuen Release 0.9 es gibt viele neue Features! Infos wie immer unter http://bleedingpaper.com ☺
|
FireFighter90
Anmeldungsdatum: 26. April 2007
Beiträge: 16
Wohnort: Velden am Wörthersee
|
ich wollte die neue 0.9 Version gleich ausprobieren. Ich musste aber leider feststellen, das ich mich nicht anmelden kann. Ich bekomme immer die Meldung "invalid credentials". Egal ob ich meinen Google Apps oder GMail Account verwende. Die Benutzerdaten stimmen aber ganz sicher. Im Terminal wird folgende Fehlermeldung ausgegeben: | [Failure instance: Traceback (failure with no frames):
<class 'twisted.mail.imap4.IMAP4Exception'>: Invalid credentials 10if5722311eyz.0
]
|
mich würde interessieren woran das liegt
FF90 EDIT: Das Problem hat sich erledigt. Das Porgramm wurde gefixt! danke
|
KingArtus
Anmeldungsdatum: 6. August 2007
Beiträge: 582
|
Also irgendwie geht das bei mir nicht... ne .Deb gibt es nicht bei 0.9 und bei 0.8 kann ich nichts kofigurieren
|