Bonjour tout le monde !

Je bataille avec mon clavier MX5000 de chez logitech pour utiliser ses fonctionnalités "avancées", à savoir le petit écran LCD qui se trouve en haut (image). J'ai trouvé un logiciel sympa (mxtools) pour le contrôler. C'est un peu l'équivalent de gammu pour utiliser son téléphone portable : tout en ligne de commandes.

Ce que j'aimerais faire c'est un petit logiciel qui puisse par exemple réagir avec Amarok pour afficher le nom de la chanson qui est en train d'être lue. J'aimerais aussi qu'il puisse "regarder" si j'ai reçu un email et qu'il l'affiche en conséquence. L'utilisation de mxtools ne pose aucun problème, je sais quelles commandes taper dans un terminal pour faire ce que je veux. Ce que je cherche (enfin, je suppose que c'est ça 🙂), c'est un language de programmation adapté à ma situation, pas trop compliqué à utiliser (avec de la "bonne" documentation disponible sur le web), et avec lequel on peut réaliser des interfaces graphiques.

J'en appelle donc à vos bons conseils 🙂.


<edit modo> langage au lieu de language...anglissisme.
Pour amarok, use dcop.
J'ai pas un nux sous la main mais un pauvre appel dcop te donnera ton graal.
Pour les mails, je crois que perl et python peuvent te torcher ça en quelques lignes (mattre les sources de quelques plugins mail superkaramba en perl ou python, ça se fait très bien).

PS : http://amarok.kde.org/wiki/DCOP_Functions
dcop amarok player track
(mais matte si y a des bindings python ou perl pour dcop plutot)
Ok merci pour ces informations 🙂. Je vais voir tout ça... J'ai déjà remarqué qu'il y a des packages pour perl et pour python pour accéder aux "fonctionnalités pop". Pour ce qui est de dcop je vais regarder ça...
Bonjour,

Perl possède en plus un module pour créer des interfaces graphiques assez simplement. Cherche du côté du module Tk.

Bon courage
Merci Fox Delta mais "trop tard" je me suis mis au python 🙂... Et j'ai cru comprendre qu'il y avait wxPython entre autres pour l'interface graphique. Ceci dit j'en suis pas encore là, mais alors pas du tout... J'apprends les bases, je me rends compte qu'en effet comme le disait Temet ça peut être fait en quelques lignes de code. Après quand j'aurai réussi à faire marcher ça sur mon ordi j'essaierai de faire un programme adaptable pour tout le monde puis l'aboutissement final sera (un jour peut-être...) un rpm. Mais vu que j'ai jamais rien fait de tel, ça risque de prendre du temps surtout que je profite de mes grandes vacances ^^. Enfin, heureusement que la doc est très bien faite ici.

D'ailleurs au passage si j'ai des questions sur python (et j'en ai) je peux les poster ici ? Y'a du monde qui s'y connaît un peu ? Je voudrais pas polluer non plus...
J'y connais rien du tout en Python, mais je salue ton courage!
C'est bien de se lancer. Et même si ton code est pas top au début et que tu vas trouver des vilains pas beaux pour te reprocher ton code, bah faut persévérer.
Pour le rpm, tu verras que c'est pas si compliqué si ton programme est interprété, faudra juste lui dire de copier le script dans un répertoire style /usr/bin.
[mylife]Perso en ce moment, je me dis que je bidouillerais bien un peu. J'ai quelques bases mais rien de poussé. j'ai ressorti un vieux programme C/OpenGL que j'avais fait un week end pour un projet il y a... ... 5 ans o_O'.
J'ai été surpris de me rappeler du premier coup comment le compiler (gcc -lGL -lglut -o truc truc.c) ... et ai eu la mauvaise surprise de voir que GLUT avait un poil changé. Mais bon, l'erreur disait qu'il manquant un glutInit, je l'ai rajouté et ça tourne nickel 😉[/mylife]
Si je tombe sur un des tes postes concernant python, je me ferais un plaisir de te filer un coup de pince... dans les limites de mes compétences bien sûr.

Un petit conseil, si tu veux faire quelques chose avec un module quelconque, essaye de trouver sur ta machine du code qui fait plus ou moins la même chose et adapte le à ta sauce. p.ex pour écrire livna-config-display, je me suis très largement basé sur system-config-display, j'ai trouvé dans ce code casi tout ce dont j'avais besoin. Makefile .spec (RPM), comment utilisé l'API xf86config et plein d'autre truc bien sympa. Tout ça pour te dire que si j'avais codé avec des oeillères (sans regarder comment font les autres) ça m'aurais pris 4 X plus de temps.

Bonne chance et bonne amusement avec Python!
Ok ok je prends note de tous ces conseils 🙂. Pour l'instant j'ai lu presque en entier un cours sur python et j'ai intégré la syntaxe. Pour ce qui est du code en lui-même j'ai déjà commencé à repiquer des bouts de code par-ci par-là c'est sûr que c'est beaucoup plus facile comme ça !!!

En tous cas merci pour vos encouragements ^^

Edit : j'ai trouvé comment utiliser dcop avec python je suis heureux :-p... et j'ai même un début de programme pour accéder à un compte pop3 !!
Edit : bon finalement pour ce qui est d'Amarok il apparaît plus simple et plus portable de faire directement un script (en python pourquoi pas) et pour l'histoire des mails je verrai plus tard 🙂

Encore merci !
Pour info j'ai une source C ou C++ que j'ai faite pour accéder à un compte en pop ou imap (en décembre ou janvier dernier).
Elle m'avait servi de test pour voir comment ça marche.
Ensuite elle a complètement été modifiée pour utiliser Qt et les QSocket.
Par contre, pour faire ce qui se fait 5 lignes de perl, c'est assez babare avec C (les sockets c'est pas sympa quand t'y as jamais touché).


EDIT : du C.
J'avais aussi trouvé un PDF qui expliquait le fonctionnement du POP (et introduisait l'IMAP), c'était court et bien fait.
Tu m'interresses là 🙂...

Pour l'instant je me suis balladé de longues heures sur google sans trouver de réponse à une petite question : comment repérer les messages non lu sur un compte pop ? Apparement j'ai cru comprendre que le protocole en question ne permettait pas d'avoir de telles informations. Seulement, desfois, les serveurs mails ajoutent une balise du style 'X-status : Read' pour repérer les messages lus/non lus. Moi je suis chez yahoo et j'ai eu beau décortiquer mes messages je n'ai pas trouvé de telle balise. Alors si tu as un moyen simple de savoir si un message a été lu ou non, ça m'interresse !!! Parceque sans ça je peux pas faire grand chose 🙂. Enfin, en attendant je pauffine mon script pour Amarok.

En attendant c'est vrai que mis à part ce problème, le module "poplib" pour python permet en effet d'accéder très facilement à un compte pop et ça c'est super ! Pareil pour le module "pydcop" et amarok, quelques petites lignes de programme et le tour est joué !
Alors non, en effet à ma connaissance le protocol POP ne permet pas de savoir le nombre de mails non lus.
Perso, quand je lance mon programme au démarrage de la session, il affiche le nombre de mails sur mon compte et il le scanne toutes les x minutes. Au scan suivant, si un nouveau mail arrive j'ai une fenêtre passive qui apparait quelques secondes en bas à droite pour me prévenir.
Voilà 😉
Et comme je voulais que mon programme soit compatible avec un compte POP standard, j'en suis resté là.
Dans l'idéal, je voulais aussi le faire via SSL mais euh ... c'est super mal documenté ce truc :/
Y a QSSLSocket mais dispo seulement dans la version payante de Qt3, ou dans Qt4... hors comme c'est une appli KDE, elle dépend de Qt3.
Bonne chance 😃
Sur certains serveurs Pop3, il y a un flag X-seen, sinon poplib ne le permet pas directement mais imaplib oui, donc si t'as un accès Imap.
Sinon, D-Bus a bien été intégré dans KDE 3.5.x ? Parce que dcop est déprécié, autant commencer à faire mumuse avec D-Bus.
Je pense que DBUS ne sera pas implémenté dans Amarok avant KDE 4.
A vérifier 😉

PS : ouais mais par IMAP, mon compte Free aurait soit disant 85 mails non lus... alors qu'il y en a 0.
Vu la fiabilité... j'ai laissé tomber 😉
Ah ouais 85 faux positifs quand même. :-?
Pour ce qui est de imap je crois malheureusement que yahoo ne le supporte pas... Et j'ai tenté un petit "dbus amarok" sous google mais rien de concluant je crois qu'il faudra attendre KDE 4 pour une version d'Amarok qui marche avec dbus, en attendant je m'amuse avec dcop... Toutes façons il n'y aura sans doute pas grand chose à changer 🙂.
Mais il doit y avoir une solution parceque j'ai déjà eu des widgets qui me donnaient le nombre de mails non lus sans avoir à utiliser ton astuce Temet. Et puis si on supprime un message sur le serveur et que dans la foulée on en reçoit un autre il se passe rien ! Enfin, je finirai bien par trouver l'astuce qui fera tout marcher 🙂.
Bah à ce moment là, tu me tiendras au courant 😉
Pas de problème !

Après ça peut prendre un certain temps...
snouffy wrote:Mais il doit y avoir une solution parceque j'ai déjà eu des widgets qui me donnaient le nombre de mails non lus sans avoir à utiliser ton astuce Temet. Et puis si on supprime un message sur le serveur et que dans la foulée on en reçoit un autre il se passe rien ! Enfin, je finirai bien par trouver l'astuce qui fera tout marcher 🙂.
Regarde dans les "applet" superkaramba, il y en à un tas écrit en python et je serais pas étonné qu'il y en ai un pour vérifier la présence de mails non lus.

L'astuce de Temet devrait le faire aussi, j'avais utilisé le même workaround avec l'api javamail pour vérifier la présence de mails non lus sur un serveur pop (l'avantage c'est que le code fonctionnera avec pop et imap).