Portail de l'AF

Nouvelles

Raid de printemps : Yafu et Einstein@home

Faites un don

Shoutbox

modesti:
2025-03-20, 22:55:26
Allez, les copains, on pousse encore un peu sur Einstein, SVP ! En unissant nos forces, la troisième place au FB est à notre portée d'ici à la fin du mois !  :bipbip:
Maeda:
2025-03-07, 21:53:11
C'parti !
[AF>Libristes] alain65:
2025-02-26, 02:26:05
Merci  :jap:
modesti:
2025-02-24, 11:27:41
Tout vient à point à qui sait attendre :siflotte:
ousermaatre:
2025-02-24, 10:47:28
patience  :D  Ca vient
[AF>Libristes] alain65:
2025-02-24, 08:43:55
l'annonce officielle, c'est pas la veille j'espère  :cpopossib:
Maeda:
2025-02-22, 09:58:51
On attend l'annonce officielle détaillée :D
[AF>Libristes] alain65:
2025-02-22, 08:25:50
Et c'est sur quoi ce raid ?
modesti:
2025-02-20, 23:06:46
A 18h28 par notre pharaon préféré, ici-même :D
[AF] Kalianthys:
2025-02-20, 20:50:52
Le raid a été annoncé ?
ousermaatre:
2025-02-20, 18:28:57
15 jours avant le Raid....  :D
modesti:
2025-02-01, 11:10:25
Bonne chasse aux nombres premiers !
modesti:
2025-01-31, 21:24:33
Spafo :D
Maeda:
2025-01-31, 20:11:40
Plutôt H-4h :)
modesti:
2025-01-31, 19:54:14
J-1  :banana:
[AF] Kalianthys:
2025-01-30, 18:53:31
modesti:
2025-01-30, 11:55:53
J-2 :gniak: :ange:
fzs600:
2025-01-02, 11:18:45
Bonne année a tous et bon crunch.
zelandonii:
2025-01-02, 11:08:45
Bonne année à tous et que vous soyez heureux.
Ironman:
2025-01-01, 15:55:54
Bonne année et bonne santé pour vous et vos proches !  :smak:
modesti:
2025-01-01, 07:53:37
Bonne et heureuse année à toutes et tous !
ousermaatre:
2024-12-25, 21:04:16
 :perenoel:
modesti:
2024-12-25, 10:03:06
Noyeux Joël !  :D
fzs600:
2024-12-02, 12:28:17
Tout pareil bon Raid a tous.
modesti:
2024-12-02, 11:29:50
Un peu à la bourre, mais quand même de tout cœur : bon raid à tous ! :hyperbon:
Sébastien:
2024-11-19, 21:42:51
 @Bertrand Fr, je n'ai pas beaucoup d'expérience sur mac, mais je n'ai pas de problème avec BOINC 8.0.4 sur un mac M1.
JeromeC:
2024-11-19, 15:53:46
Moi dès que j'ai su qu'Apple passait à ses propres CPU je me suis précipité pour prendre le dernier iMac Intel du marché (fin 2020) pour remplacer le précédent (après 10 ans de loyaux services) et j'en suis fort aise :)
ousermaatre:
2024-11-19, 15:39:53
 :hello: Bertrand, alors les amis, pas de réponse pour un p'tit nouveau?

Recent

[Linux] Script pour obtenir ses crédits et son classement dans l'AF

Démarré par erdnaxeli, 29 Juillet 2011 à 14:00

« précédent - suivant »

0 Membres et 1 Invité sur ce sujet

erdnaxeli

Bonjour,

Voici un petit script qui permet à partir du site de Seb d'obtenir ses crédits et son classement dans l'AF. Ça écrit le tout dans un fichier. On peut s'en servir pour l'afficher dans conky, dans une barre dzen, en signature de ses mails, etc.

#!/bin/bash
# -*- coding: UTF8 -*-

file=`mktemp`
cpid=votre cpid

wget https://statseb.boinc-af.org/xml/membre.py?cpid=$cpid -O $file || exit

credits=`grep total $file | line | sed 's/<total>\(.*\)<\/total>/\1/' | sed 's/\(.*\)\(...\)\(...\)/\1.\2.\3/'`
rang=`grep rang $file | line | sed 's/<rang>\(.*\)<\/rang>/\1/'`
echo "$credits ($rang)" > là/où/vous/voulez

rm $file


Avec une petite ligne à ajouter dans le crontab pour exécuter le script toute les heures :

*/30    *   *   *   *   sh adresse/du/script.sh

Attention : si votre crédit fait 6 chiffres ou mois, remplacez sed 's/\(.*\)\(...\)\(...\)/\1.\2.\3/'` par sed 's/\(.*\)\(...\)/\1.\2/' (et si votre crédit fait moins de 4 chiffres, crunchez !).

Le résultat est comme ceci :
Citation2.499.819 (539)

[AF>Libristes>Jip]Augure

>>

kasur


et 194 SETI@home classic workunits (4 764 hours) :p

[AF>Libristes] Dudumomo

C'est sympa !  :jap: :jap:
Va falloir que tu fasses un article sur le portail de la MT toi !!!!

jip

Citation de: erdnaxeli le 29 Juillet 2011 à 14:00
Bonjour,

Voici un petit script qui permet à partir du site de Seb d'obtenir ses crédits et son classement dans l'AF. Ça écrit le tout dans un fichier. On peut s'en servir pour l'afficher dans conky, dans une barre dzen, en signature de ses mails, etc.

#!/bin/bash
# -*- coding: UTF8 -*-

file=`mktemp`
cpid=votre cpid

wget https://statseb.boinc-af.org/xml/membre.py?cpid=$cpid -O $file || exit

credits=`grep total $file | line | sed 's/<total>\(.*\)<\/total>/\1/' | sed 's/\(.*\)\(...\)\(...\)/\1.\2.\3/'`
rang=`grep rang $file | line | sed 's/<rang>\(.*\)<\/rang>/\1/'`
echo "$credits ($rang)" > là/où/vous/voulez

rm $file


Avec une petite ligne à ajouter dans le crontab pour exécuter le script toute les heures :

*/30    *   *   *   *   sh adresse/du/script.sh

Attention : si votre crédit fait 6 chiffres ou mois, remplacez sed 's/\(.*\)\(...\)\(...\)/\1.\2.\3/'` par sed 's/\(.*\)\(...\)/\1.\2/' (et si votre crédit fait moins de 4 chiffres, crunchez !).

Le résultat est comme ceci :

bien vu. :jap:

on peut aussi jouer avec les substitutions de variable tout en évitant de charger le fichier xml en le stockant, et avec le printf (ou un fprintf si on veut le résultat dans un fichier) pour éviter le pb des cas de longueur. ;)

un truc dans ce genre par exemple :


#!/bin/bash

timeout=5
cpid="votre_cpid"

xmldatas=`wget --timeout=${timeout} -q -O - "https://statseb.boinc-af.org/xml/membre.py?cpid=${cpid}"`

total=${xmldatas#*<total>}
total=${total%%</total>*}

rang=${xmldatas#*<rang>}
rang=${rang%%</rang>*}

rac=${xmldatas#*<rac>}
rac=${rac%%</rac>*}

echo `printf "Rang AF : %d , Total des projets : %'d , RAC : %'d" ${rang} ${total} ${rac}`

erdnaxeli

C'est carrément mieux. Faut vraiment que j'apprenne à me servir de tous cet machins (substitutions de variables là ...).

Nico8313


jip

Plus complet, une variantes avec des boucles pour les autres infos :


#!/bin/bash

timeout=5
cpid="votre_cpid"

xmldatas=`wget --timeout=${timeout} -q -O - "https://statseb.boinc-af.org/xml/membre.py?cpid=${cpid}"`

total=${xmldatas#*<total>}
total=${total%%</total>*}

rang=${xmldatas#*<rang>}
rang=${rang%%</rang>*}

rac=${xmldatas#*<rac>}
rac=${rac%%</rac>*}

echo ""
echo ""
echo "==================================================================="
echo "  Général AF"
echo "-------------------------------------------------------------------"
echo `printf "Rang AF : %d , Total des projets : %'d , RAC : %'d" ${rang} ${total} ${rac}`
echo "==================================================================="

projectdatas="${xmldatas}"


projectdatas="${projectdatas#*<badges>}"
projectdatas="${projectdatas%%</badges>*}"

projectdatas="${projectdatas%</badge>*}</badge>"

echo ""
echo "-------------------------------------------------------------------"
echo "  Badges"
echo "-------------------------------------------------------------------"


while [ -n "${projectdatas}" ]
do

    projectdatas="${projectdatas#*<badge>}"

    projectname="${projectdatas#*<projet>}"
    projectname="${projectname%%</projet>*}"

    subproject="${projectdatas#*<sous-projet>}"
    subproject="${subproject%%</sous-projet>*}"

    color="${projectdatas#*<couleur>}"
    color="${color%%</couleur>*}"

    echo `printf "Nom : %s, Sous-projet : %s , Couleur : %s" "${projectname}" "${subproject}" "${color}"`

    projectdatas="${projectdatas#*</badge>}"

done

projectdatas="${xmldatas}"

projectdatas="${projectdatas#*</badges>}"


projectdatas="${projectdatas%</projet>*}</projet>"

echo ""
echo "-------------------------------------------------------------------"
echo "  Projets"
echo "-------------------------------------------------------------------"

while [ -n "${projectdatas}" ]
do

    projectdatas="${projectdatas#*<projet>}"

    projectname="${projectdatas#*<nom>}"
    projectname="${projectname%%</nom>*}"

    total="${projectdatas#*<total>}"
    total="${total%%</total>*}"

    rang="${projectdatas#*<rang>}"
    rang="${rang%%</rang>*}"

    rac="${projectdatas#*<rac>}"
    rac="${rac%%</rac>*}"

    echo `printf "Nom : %s, Rang : %d , Total des projets : %'d , RAC : %'d" "${projectname}" "${rang}" "${total}" "${rac}"`

    projectdatas="${projectdatas#*</projet>}"

done

echo "==================================================================="
echo ""
echo ""



une fois ces données extraites dans le script, vous pouvez faire un peu ce que voulez en remplaçant les "echo" et "printf" par autre chose ...

jip

Ah aussi en installant un processeur xsl (par exemple mon préféré : xsltproc, dispo sous GNU/Linux et Windows) ou avec un navigateur (FF, IE, Chrome) qui le supporte on peut faire des petites choses pas mal pour ceux que ça intéresse.

J'avais publié un petit exercice de "style" xsl, y'a un certain temps, là : http://libristes.boinc-af.net/telechargements/file/14-xsl-exemple-de-fusion-de-statistiques-boinc.html

On pourrait faire ce qui est fait là en bash en assez simple via des feuilles xsl pour transformation en texte, html, sql, autre xml, etc ...

Un processeur xsl pour traiter du xml, c'est un peut fait pour ça d'ailleurs ...

jip

Tiens, vite fait avec une feuille xsl nommée "my_score_af.xsl", par exemple comme ça :


<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:output method="text" omit-xml-declaration="no" indent="yes" encoding="UTF-8" />


<xsl:template match="/">
========================================================
    Statistiques globales :

    Total AF : <xsl:value-of select="projets/total" /> , Rang AF : <xsl:value-of select="projets/rang" /> , RAC global : <xsl:value-of select="projets/rac" />



--------------------------------------------------------
    Badges :
--------------------------------------------------------
    <xsl:apply-templates select="projets/badges/badge" />



--------------------------------------------------------
    Projets :
--------------------------------------------------------
    <xsl:apply-templates select="projets/projet" />

========================================================
</xsl:template>



<xsl:template match="projets/badges/badge">

    Projet : <xsl:value-of select="projet" /> , Sous-projet : <xsl:value-of select="sous-projet" /> , Couleur : <xsl:value-of select="couleur" />

</xsl:template>



<xsl:template match="projets/projet">

    Projet : <xsl:value-of select="nom" /> , Total : <xsl:value-of select="total" /> , Rang AF : <xsl:value-of select="rang" /> , Rac : <xsl:value-of select="rac" />

</xsl:template>



</xsl:stylesheet>


et un appel en terminal comme ça (à condition d'avoir installé l'outil xsltproc) :
xsltproc my_score_af.xsl https://statseb.boinc-af.org/xml/membre.py?cpid=votre_cpid

on obtient un résultat affiché au format texte, présentant vos infos de stats af.

que l'on peut envoyer dans un fichier texte "mes_resultats.txt" avec cette commande :
xsltproc -o mes_resultats.txt my_score_af.xsl https://statseb.boinc-af.org/xml/membre.py?cpid=votre_cpid

par exemple.

si on ne souhaite que les infos globales, ça simplifie  la feuille xsl :

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" omit-xml-declaration="no" indent="yes" encoding="UTF-8" />

<xsl:template match="/">
========================================================
    Statistiques globales :

    Total AF : <xsl:value-of select="projets/total" /> , Rang AF : <xsl:value-of select="projets/rang" /> , RAC global : <xsl:value-of select="projets/rac" />

========================================================
</xsl:template>

</xsl:stylesheet>

[AF>Libristes] ℯ.clℯmℯnt

C'est fort tout ça, félicitation les gars (même si je ne suis pas trop fan de gadgets qui affichent pleins de trucs dans les barres, sur le bureau).

SMF spam blocked by CleanTalk