Bricolages · Bus libre / informatique libre · Script bash pour voir l'expiration de statut de membre de ses contacts dans le réseau de la monnaie Ğ1

#!/bin/bash

rm 30limitsMember 31limitsMissing 32limitsCerts 21qualities
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

 

On enregistre le texte ci-dessus, par exemple  /home/user sous le nom prevention

Pour que ce programme ci-dessus fonctionne il faut installer silkaj:

pip install --user silkaj

Puis installer Xdialog, et st (de chez suckless.org). On peut aussi remplacer dans le code st par un autre terminal (ayant l'option -e), et Xdialog par Zenity, whiptail ou d'autres.

Puis on fait:

chmod +x /home/user/prevention

Pour rendre le fichier exécutable.

Puis:

bash /home/user/prevention

Pour l'exécuter.

 

Il prend pas mal de temps à télécharger les différents documents sur wot-wizard (wget est utilisé pour ça), donc ne pas paniquer si ça prend du temps.

 

 

 

Version entièrement en non-graphique, tournant entièrement dans un terminal et nécessitant le programme whiptail:

 

#!/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

#récupération, mise en forme et affichage de la reliance des contacts

wget https://wot-wizard.duniter.org/21qualities

cat 21qualities | sed '1,13d'| head -n -8 | sed '/<p>/,$ d' | grep -E $(cat silkajtxt3) > res3
whiptail --scrolltext --msgbox --title "Pourcentage de reliance des contacts" "$(cat res3)" 25 80