M'avertir lorsqu'une reponse est postee

test 2

test 3

apparement ca fonctionne usinagaz j’aimerais bien voir ton script :smiley:

Sinon pour des petits problemes d’ecritures sur un fichier déjà editer je ne sais plus bien mais je me souviens que l’on pouvait “locker” le fichier de maniere a ce qu’il ne soit editer que par un process.

ben non, ça fonctionne pas trop …
test 4 … :smiley:

[quote=“fran.b”]Tu fais bêtement
$ script.sh > /dev/null 2> /dev/null &

Allez bonne nuit :slightly_smiling:[/quote]$ script.sh 2>&1 > /dev/null &
(stderr redirigé sur stdout, lui même redirigé vers /dev/null)
Mais on parle de quoi, là ?

[quote=“Ashgenesis”]apparement ca fonctionne usinagaz j’aimerais bien voir ton script :smiley:
Sinon pour des petits problemes d’ecritures sur un fichier déjà editer je ne sais plus bien mais je me souviens que l’on pouvait “locker” le fichier de maniere a ce qu’il ne soit editer que par un process.[/quote]
ah ok … bon voici le script, qui à l’air de fonctionner, mais ça demande quelques manips, ya pas de magie … :unamused:

[code]# ---------------------------------------------------------------------- - -

on démarre ce script en tâche de fond, avec start & - -

on le stoppe avec stop - -

prévu pour fonctionner sur forum.debian-fr.org - -

on quitte si ! start | ! stop - -

à faire: - -

Créer dans le repertoire /tmp/forumtopics le fichier topics - -

Pour surveiller un post, il faut sur une même ligne écrire : - -

[numéro de post] [start] - -

exemple : 5856 23 - -

Pour connaitre $start, regarder la valeur dans l’url du post ou - -

la chercher, http://forum.debian-fr.org/viewtopic.php?t=5856&start= - -

$start étant normalement le dernier post de la dernière page, ici 23.- -

---------------------------------------------------------------------- - -

[ -z $1 ] && exit
case “$1” in
start | stop) ;;
*) exit 1
esac

REP=/tmp/forumtopics # le repertoire -
post="" # une référence de post -
declare -i start # on déclare un entier -
ERR=“pas de messages pour ce sujet” # et un message d’erreur -
declare -i pause=300 # le delai de pause -

---------------------------------------------------------------------- - -

Vérifie que le repertoire existe, ainsi que le fichier de références de -

topics, et qu’il contient des données. -

---------------------------------------------------------------------- - -

check_config() {

on vérifie qu’on est bien placé dans le repetoire

[ “$(pwd)” != “$REP” ] && cd $REP

on teste la présence du fichier et du répertoire

if [ ! -d $REP ]; then
mkdir $REP # créé si nécessaire -
echo “Vous devez spécifier les références des posts
Usage: une référence par ligne, [numéro topic] [numéro de post]
Séparés par un espace dans le fichier $REP/topics.” >&2
return 1
elif [ “$(cat $REP/topics | wc -l)” == ‘0’ ]; then
echo “Vous devez spécifier les références des posts
Usage: une référence par ligne, [numéro topic] [numéro de post]
Séparés par un espace dans le fichier $REP/topics.” >&2
return 1
fi

return 0
}

---------------------------------------------------------------------- - -

fonction qui recueille les références du topic tel que spécifiées. -

---------------------------------------------------------------------- - -

getTopic() {

topic="“
for post in $(cat $REP/topics); do # on boucle sur les lignes -
if [ “$topic” == “” ]; then # premier champ d’une ligne -
topic=”$post"
else
start=$post+1 # start est le deuxième champs + 1 -
str_topic=“viewtopic.php?t=$topic&start=$start"
wget -q http://forum.debian-fr.org/$str_topic
wait # on attend je crois -
if [ -f $REP/$str_topic ]; then # il faut que le fichier existe -
if [ “$(cat $REP/$str_topic |grep -o “$ERR”)” == “” ]; then
# si le message d’erreur n’est pas trouvé, il y a une réponse -
DISPLAY=:0.0 xmessage -center “Réponse au post $str_topic” &
# alors on enregistre les nouvelles références dans le fichier -
echo “$topic $start” >> $REP/topics.bak
else # ou bien on recopie les vieilles -
echo “$topic $post” >> $REP/topics.bak
fi
else # là il y a une erreur dans l’url -
echo “le post recherché est introuvable” >&2
fi
topic=”" # on vide topic -
fi
rm -rf $REP/viewtopic.* # on supprime les fichiers -
done

maintenant on remplace le fichier des références par le nouveau -

[ -f $REP/topics.bak ] && mv $REP/topics.bak $REP/topics

}

---------------------------------------------------------------------- - -

le script, sommairement sans trop de test, notamment la validité des ré- -

-férences données dans le fichier topics … -

---------------------------------------------------------------------- - -

while true; do
check_config # vérifie que tout est ok -
getTopic # appelle une boucle sur topics -
sleep $pause # on se repose -
done [/code]

un bon mongueur te ferait ça en une ligne perl -e :laughing:
petite remarque, si 10 personnes postent simultanément, tu va faire 10 xmessage ? c’est pas optimal.

n’empêche que si au lieu d’afficher un xmessage, ça enquillait le post dans un canal rss…

sinon kel est le pb ?

mais ya pas de problème Matt, vous nous le faites, vous le partager, comme ça tout le monde il est content :smiley: :smiley:
Moi je travaille sur Bash bon, alors je le fais en bash … pas en perl, ni en autre chose, maintenant, ya des tas de solutions, si on a un serveur:
on “enregistre sous” la page du post dans son DocumentRoot, on rajoute une balise méta avec un “refresh” à “10” secondes mettons, et une ligne de php pour si on a pas l’oeil sur la page …, le xmessage, c’est bien parce que ça vient en avant plan, quand t’es sur un autre bureau, ou si tu as trois milles fenêtres d’ouvertes, voilà c’est tout …
mais fais, fais des scripts, et partage les, :smiley:

En plus, ce script ne marchera plus tant qu’on est pas passé à la troisième page, vu que dans les il y a la phrase $ERR qui va être trouvée par le grep.
Moi je fais ça pour apprendre en m’amusant un peu , j’utilise pas les bonnes commandes bash sans doute, mais je débute … c’est toujours fastidieux au début … même aprés des fois … :wink:

quote="usinagaz"
mais fais, fais des scripts, et partage les, :smiley:[/quote]Trop flemmard: c’est un métier que je sais faire, mais plus à une vitesse suffisante pour être utile (à part pour du sprint: des petits scripts courts). Je n’ai jamais été un grand développeur, je ne suis pas assez perfectionniste et obsessionnel.
Mais merci de ton boulot.
Tu sais, tu ne devrais pas te polariser sur le bash. Perl amplifie les reflexes qu’on a avec awk, sed, etc. Avec python (que je connais moins parcequ’il concerne la partie interface), tous ces composants vont ensembles dans l’ecriture de scripts linux, et même si on a des préfèrences pour l’un ou pour l’autre, la boite à outils devrait être apréhendée comme un tout (enfin AMA).

Oui c’est juste, il ne faut pas bloquer sur Bash, c’est trés util, il y en a partout sous linux, mais c’est bien pour des scripts courts, pas pour ce que j’essaie de faire, je vais quand même encore un peu le continuer, mais perl j’y songe aussi, même si ma priorité c’est java, php, sql maintenant … merci.

bash est très bien y compris pour des scripts longs. Perl avec quelqu’un qui ne connait pas Perl est nul, Brainfuck avec quelqu’un qui maitrise Brainfuck est très bien. Apprend à maitriser un langage de script quel qu’il soit et ce sera très bien pour ce que tu veux faire. Perl a effectivement plein d’avantages et bash en a plein d’autres à commencer par exister avec 500K. Ne pas céder à la pression de Matt si tu n’as pas envie de faire du Perl. On aurait pu aussi parler de python mais python a un défaut majeur: python2.1 est incompatible avec python2.3 lui même incompatible avec 2.4!

PS: Ton script est propre

Matt: chiche que tu le fais en une ligne en Perl!

RePS: Je refuse de le faire en brainfuck :slightly_smiling:

quote="fran.b"Matt: chiche que tu le fais en une ligne en Perl!(…)[/quote]Bah non. Depuis mon impossibilité à résoudre ton pb de cryptage, j’évite de me fournir des preuves de ma sénilité précoce. Donc, j’ai autrechose à faire, j’ai du boulot. :cry:

Tu veux la solution ou une indication?
PS: Pas confondre sélinité et moins d’envie

[quote=“fran.b”]Tu veux la solution ou une indication?
PS: Pas confondre sélinité et moins d’envie[/quote]L’indication, ça serait pas que la perturbation a son rôle à jouer ?
C’est vrai que caler quelques periodes de 3-4h pour triturer au calme le problême et relire des choses pour me replonger dans l’ambiance, je ne sais pas si je suis encore en mesure de le faire. C’est la partie psychologique de cette impossibilité que j’appelle de la sénilité. Je peux encore le faire pour comprendre le fonctionnement de protocoles abscons, mais refaire fonctionner des mécanismes de résolution “mathématiques pures”, je m’aperçois que j’y arrive de moins en moins. J’étais pourtant abonné aux 17-19 sur tous les domaines discrets (topologie, algèbre et autres galloiseries, logique, calculabilité), mais bon, la crypto, j’ai jamais vraiment accroché.
Fin bon.

[quote=“fran.b”]Apprend à maitriser un langage de script quel qu’il soit et ce sera très bien pour ce que tu veux faire.[/quote]Merci encore pour tes encouragements, c’est vrai que Matt pour lui soutirer une once d’encouragement, c’est la croix et la banière ( en dépit du fait qu’il est “toujours [voui ça dépend des vacances]” le premier à porter assistance, et qu’il a un peu tempéré sa moquerie à l’égard de mon scirpt); d’ailleurs ça me fait dire que Matt a quand même un ego assez démesuré … ce qui ne me dérange nullement. Vaut toujours mieux ça que pas d’ego ni d’esprit critique.
ps: Matt, ne le prend pas pour une agression, de grâce …
et je regrette le silence de la personne qui a lancé ce post, d’ailleurs.

[quote=“mattotop”][quote=“fran.b”]Tu veux la solution ou une indication?
PS: Pas confondre sélinité et moins d’envie[/quote]L’indication, ça serait pas que la perturbation a son rôle à jouer ?[/quote]

Pour calculer y=f(x) modulo PQ, on calcule a=f(x) modulo P, b=f(y) modulo Q et on renvoit y= buP + avQ où uP+vQ=1 est l’égalité de Bezout. u,v,P et Q sont fixes, y est le résultat renvoyé. L’erreur se fait sur a ou sur b. Avec ça tu dois pouvoir t’en sortir.

Sinon, je crois vraiment que c’est plus un question d’envie que de capacité même psychologique: l’effort gratuit est moins amusant parce qu’on a d’autres choses à faire. Qu’il y ait un stimulant à coté et tu verras…