OVH Cloud OVH Cloud

Diverses questions sur gnus ...

8 réponses
Avatar
Insitu
Bonjour,
J'ai quelques questions concernant gnus :
- comment faire en sorte qu'il fonctionne "offline" ? D'après la
documentation, c'est automatique avec gnus-agent mais j'ai un
comportement gênant avec mes fils rss : lorsque je lance gnus et
qu'il ne parvient pas à se connecter aux fils, il s'arrête et je
n'accède plus au buffer *Groups*. J'aimerai pouvoir débrayer
l'accès au réseau, si possible pour une partie de mes groupes.
- comment mettre à jour automatiquement certains groupes en
interrogeant le serveur à intervalles réguliers (ie. récupérer mes
mails toutes les 10 minutes) ?

Peut-être ai-je mal cherché ...

insitu

8 réponses

Avatar
Sébastien Kirche
Le 22 March 2006 à 18:49, Insitu a dit :

Bonjour,



Hello.

J'ai quelques questions concernant gnus :
- comment faire en sorte qu'il fonctionne "offline" ? D'après la
documentation, c'est automatique avec gnus-agent mais j'ai un
comportement gênant avec mes fils rss : lorsque je lance gnus et
qu'il ne parvient pas à se connecter aux fils, il s'arrête et je
n'accède plus au buffer *Groups*. J'aimerai pouvoir débrayer
l'accès au réseau, si possible pour une partie de mes groupes.



J'allais répondre d'utiliser l'agent, mais j'ai cessé de l'utiliser
avant de m'abonner à des fils rss donc je ne sais pas comment il se
comporte dans ce cas.

- comment mettre à jour automatiquement certains groupes en
interrogeant le serveur à intervalles réguliers (ie. récupérer mes
mails toutes les 10 minutes) ?



Il faut invoquer le démon du Gnus :)

Exemple chez moi :

;; Invocation du Démon pour màj périodique des nouveaux messages
(require 'gnus-demon)
(setq gnus-demon-timestep 10)
(gnus-demon-add-handler 'gnus-group-get-new-news 30 30)
(gnus-demon-init)

J'ai un exemple plus élaboré mais récupéré du temps où je ne parlais pas
trop elisp et il ne fonctionne pas.

Hopant que ça helpe.
--
Sébastien Kirche
Avatar
Insitu
Sébastien Kirche writes:


J'allais répondre d'utiliser l'agent, mais j'ai cessé de l'utiliser
avant de m'abonner à des fils rss donc je ne sais pas comment il se
comporte dans ce cas.



Damned ! Je vais relire la doc mais c'est pas clair, l'auteur
sous-entend que dans les versions récentes de gnus, c'est automatique !!??


Hopant que ça helpe.



Merci beaucoup

insitu
Avatar
Insitu
Il semble bien que nnrss ignore la notion d'unplugged... :-(

insitu
Avatar
Ph. Idlavi
Le 22 mars 2006 à 19h20:33,
Sébastien Kirche écrivit :

[...]

- comment mettre à jour automatiquement certains groupes en
interrogeant le serveur à intervalles réguliers (ie. récupérer mes
mails toutes les 10 minutes) ?



Il faut invoquer le démon du Gnus :)

Exemple chez moi :

;; Invocation du Démon pour màj périodique des nouveaux messages
(require 'gnus-demon)
(setq gnus-demon-timestep 10)
(gnus-demon-add-handler 'gnus-group-get-new-news 30 30)
(gnus-demon-init)

J'ai un exemple plus élaboré mais récupéré du temps où je ne parlais pas
trop elisp et il ne fonctionne pas.




Idem pour moi...
Bon, j'ai pris le taureau par les cornes et ça donne un truc qui SEMBLE
fonctionner (les trois premières lignes sont à paramétrer):

8<------8<------8<------8<------8<------8<------8<------8<------8<------
(setq
gnus-play-sound-for-new-mail-p t ;;Mettre à nil pour ne pas avoir de message sonnore
gnus-sound-command-for-new-mail "/usr/bin/artsplay /home/pi/aa_documents/sons/nouveau_message.wav")

(require 'cl)

(defun drkm-gnus-grp:number-of-unread-mail (level)
"Returns the number of unread mails in groups of LEVEL and below."
(let ((total 0))
(dolist (rc (cdr gnus-newsrc-alist) total)
(when (<= (gnus-info-level rc) level)
(let ((unread (gnus-group-unread (gnus-info-group rc))))
(when (integerp unread)
(incf total unread)))))))

;;Mes mails sont mis au niveau 2 (recommandé) (raccourcis 'S-l prompt 2')
(require 'gnus-demon)
(setq level 2)

(defun my-notify-message ()
"Notification d'arrivée de mails"
(if (> number-of-unread last-time-number-of-unread)
(progn
;;Il y a de nouveaux messages
(if gnus-play-sound-for-new-mail-p
(shell-command gnus-sound-command-for-new-mail))
(message (let ((number-of-new (- number-of-unread last-time-number-of-unread))
(plus (if (> (- number-of-unread last-time-number-of-unread) 1) "s" "")))
(concat
"***** "
(int-to-string number-of-new)
" nouveau" (if (> number-of-new 1) "x" "")
" message" plus
" reçu" plus " *****"
(if (> number-of-unread last-time-number-of-unread)
(concat
" (+ "
(int-to-string last-time-number-of-unread)
" ancien"
(if (> last-time-number-of-unread 1) "s" "")
")"))))))
(if (= number-of-unread 0)
(message "-- Pas de nouveau message --")
(message
(let ((plus (if (> number-of-unread 1) "s" "")))
(concat "** "
(int-to-string number-of-unread)
" ancien" plus " message" plus " non-lu" plus " **"
))))))

(defun my-gnus-demon-handler ()
"Scan for new mail."
(interactive)
(message "Vérification des nouveaux messages ...")
(save-window-excursion
(save-excursion
(when (gnus-alive-p)
(set-buffer gnus-group-buffer)
(gnus-group-get-new-news level)
(setq last-time-number-of-unread number-of-unread)
(setq number-of-unread (drkm-gnus-grp:number-of-unread-mail level))
(my-notify-message)
))
)
)

(setq last-time-number-of-unread 0)
(setq number-of-unread 0)

(setq gnus-demon-timestep 60)
(gnus-demon-add-handler 'my-gnus-demon-handler 1 1)
(gnus-demon-add-handler 'gnus-group-get-new-news 15 10)
(gnus-demon-init)
8<------8<------8<------8<------8<------8<------8<------8<------8<------


--
Philippe I.
Avatar
Sébastien Kirche
Le 25 March 2006 à 01:41, Ph. Idlavi a dit :

> J'ai un exemple plus élaboré mais récupéré du temps où je ne parlais
> pas trop elisp et il ne fonctionne pas.
>

Idem pour moi... Bon, j'ai pris le taureau par les cornes et ça donne
un truc qui SEMBLE fonctionner (les trois premières lignes sont à
paramétrer):



C'est marrant, le (defun my-notify-message...) c'est exactement de ça
dont je parlais. Il est encore dans mon .gnus mais je n'ai jamais pris
le temps de le débugguer. On a dû partir de la même source...

Maintenant que j'en sais un peu plus en elisp, faudrait que je
dépatouille le truc.
--
Sébastien Kirche
Avatar
Insitu
Merci. Le démon fonctionne très bien !
Par contre, j'ai toujours deux problèmes que je n'arrive pas à résoudre :
- nnir : pas moyen de faire une recherche ! J'obtiens toujours un
message du genre

if: nnheader-parse-head returned nil for article 2092 in group nndoc+gnus-help:mail.other

Le numéro peut varier. Le plus drôle c'est que mail.other est un
groupe mail, pas nndoc ????
- agent : pas moyen de l'empêcher de télécharger les fils rss. J'ai
été dans le buffer server (^), ajouté les fils rss à l'agent mais
rien à faire.

voila, voila,
En tout cas encore merci pour l'aide reçu du groupe. En espérant
pouvoir contribuer un jour.

insitu
Avatar
Matthieu Moy
Sébastien Kirche writes:

C'est marrant, le (defun my-notify-message...) c'est exactement de ça
dont je parlais. Il est encore dans mon .gnus mais je n'ai jamais pris
le temps de le débugguer. On a dû partir de la même source...



C'est marrant parce que j'ai prèsque le même aussi dans mon .gnus.el,
sauf que moi, c'est moi qui l'ai écrit (oui, je crois bien que je suis
le responsable de tous les bugs de ce bout de code ;-).

Maintenant que j'en sais un peu plus en elisp, faudrait que je
dépatouille le truc.



Vu le merdier que c'est, t'auras peut-être plus vite fait de
réécrire ;-).

--
Matthieu
Avatar
Ph. Ivaldi
Le 25 mars 2006 à 18h45:53,
Matthieu Moy écrivit :

Sébastien Kirche writes:

C'est marrant, le (defun my-notify-message...) c'est exactement de ça
dont je parlais. Il est encore dans mon .gnus mais je n'ai jamais pris
le temps de le débugguer. On a dû partir de la même source...



C'est marrant parce que j'ai prèsque le même aussi dans mon .gnus.el,
sauf que moi, c'est moi qui l'ai écrit (oui, je crois bien que je suis
le responsable de tous les bugs de ce bout de code ;-).



Ce n'est pas beau de proposer du code aussi foireux à des
débutants :-) :-)
Je me souviens que des variables n'étaient même pas initialisées...
D'un autre coté ça permet de se faire la main sur un truc pas trop dur
(je suis persuadé qu'en fait c'était le but caché, un acte pédagogique
en quelque sorte ;-) ).


Maintenant que j'en sais un peu plus en elisp, faudrait que je
dépatouille le truc.



Vu le merdier que c'est, t'auras peut-être plus vite fait de
réécrire ;-).



Quoi?! Léty pas bien mon correctif? :-)

--
Philippe Ivaldi -+- de son vrai nom -+-.