Salut,
J’ai écrit un petit programme en bash utilisant wot-wizard pour nous faire un petit bilan d’où en sont nos contacts au niveau adhésions et certifications.
#!/bin/bash
rm 30limitsMember 31limitsMissing 32limitsCerts
rm res silkajtxt silkajtxt2 silkajtxt3 res2
wget https://wot-wizard.duniter.org/30limitsMember
wget https://wot-wizard.duniter.org/31limitsMissing
wget https://wot-wizard.duniter.org/32limitsCerts
Xdialog --title "Votre clé publique" --backtitle "Pour pouvoir chercher les infos sur vos contacts" --stdout --inputbox "Clé publique Ğ1" 10 20 >res
silkaj -p g1.presles.fr wot $(cat res) > silkajtxt
sed '1,4d' silkajtxt | awk '{ gsub("+",""); split($4,var,"."); print var[1]; }' | sed '/|/d' | sed '/^$/d' |
sed -e :a -e '$d;N;2,3ba' -e 'P;D' > silkajtxt2
echo $(cat silkajtxt2) | tr ' ' '|' | sed 's/\([a-zA-Z]\);\([a-zA-Z]\)/\1 \2/g' > silkajtxt3
cat 30limitsMember | grep -E $(cat silkajtxt3) > res2 && echo "Dates limites des Adhésions" >> res2 && st -e less res2
cat 31limitsMissing | grep -E $(cat silkajtxt3) > res2 && echo "Dates limites des adhésions non-renouvelées" >> res2 && st -e less res2
cat 32limitsCerts | grep -E $(cat silkajtxt3) > res2 && echo "Dates limites des certifications" >> res2 && st -e less res2
Pour l’utiliser (seulement sous linux):
Vous copiez-collez le texte du programme plus haut dans un fichier texte, vous l’enregistrez sous le nom que vous voulez, prevention par exemple.
vous faites chmod +x /chemin/du/fichier/prevention
puis bash /chemin/du/fichier/prevention
pour l’exécuter.
Ce programme utilise Xdialog, silkaj, et st (simple terminal de suckless.org). Donc s’assurer qu’ils sont installés.
On peut remplacer Xdialog par zenity, whiptail ou d’autres, et st par xterm (personne n’est parfait ,o) ou d’autres.
wget est un peu lent à télécharger les documents sur wot-wizard, donc soyez patients ça fonctionne!
Voilà
Il serait super chouette de faire tourner ce script dans une machine en ligne, comme ça on peut tous consulter ces bilans en ligne.
J’ai écrit une version « cli » qui tourne entièrement dans un terminal, sans utiliser de programme tournant dans un serveur graphique (avec le programme cli whiptail). (J’ai laissé en commentaires les lignes pour la version graphique.)
#!/bin/bash
#Suppression des variables utilisées par le programme
rm 30limitsMember 31limitsMissing 32limitsCerts
rm RES silkajtxt silkajtxt2 silkajtxt3 res2
#whiptail est le programme pour les boîtes de dialogue
(whiptail --inputbox "Clé publique Ğ1" 8 78 3>&1 1>&2 2>&3) > RES
exitstatus=$?; if [ $exitstatus = 1 ]; then exit 1; fi
echo "(Exit status: $exitstatus)"
#Xdialog --title "Votre clé publique" --backtitle "Pour pouvoir chercher les infos sur vos contacts" --stdout --inputbox "Clé publique Ğ1" 10 20 >RES #la version graphique avec Xdialog
#téléchargement des données d'adhésion sur wot-wizard
wget https://wot-wizard.duniter.org/30limitsMember
wget https://wot-wizard.duniter.org/31limitsMissing
wget https://wot-wizard.duniter.org/32limitsCerts
#recherche des informations sur les contacts, avec silkaj
silkaj -p g1.presles.fr wot $(cat RES) > silkajtxt
#mise en forme, récupération du texte de 2 colonnes
sed '1,4d' silkajtxt | awk '{ gsub("+",""); split($4,var,"."); print var[1]; }' | sed '/|/d' | sed '/^$/d' |
sed -e :a -e '$d;N;2,3ba' -e 'P;D' > silkajtxt2
#mise en forme, remplacement des retours à la ligne par des "|"
echo $(cat silkajtxt2) | tr ' ' '|' | sed 's/\([a-zA-Z]\);\([a-zA-Z]\)/\1 \2/g' > silkajtxt3
#affichage graphique avec le terminal st de chez suckless.org
#cat 30limitsMember | grep -E $(cat silkajtxt3) > res2 && echo "Dates limites des Adhésions" >> res2 && st -e less res2
#cat 31limitsMissing | grep -E $(cat silkajtxt3) > res2 && echo "Dates limites des adhésions non-renouvelées" >> res2 && st -e less res2
#cat 32limitsCerts | grep -E $(cat silkajtxt3) > res2 && echo "Dates limites des certifications" >> res2 && st -e less res2
#affichage graphique dans le terminal (cli) avec whiptail
cat 30limitsMember | grep -E $(cat silkajtxt3) > res2
whiptail --scrolltext --msgbox --title "Dates limites des Adhésions" "$(cat res2)" 25 80
cat 31limitsMissing | grep -E $(cat silkajtxt3) > res2
whiptail --scrolltext --msgbox --title "Dates limites des adhésions non-renouvelées" "$(cat res2)" 25 80
cat 32limitsCerts | grep -E $(cat silkajtxt3) > res2
whiptail --scrolltext --msgbox --title "Dates limites des certifications" "$(cat res2)" 25 80