Petit script en bash pour nous donner un bilan de l'adhésion de nos contacts

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à :slight_smile:

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
4 « J'aime »

Ça marcherait pas sous OSX, des fois ?
J’ai suivi un mooc Linux (ça fait un moment !) et par curiosité, j’ai vu que pas mal de choses fonctionnaient aussi dans le terminal de mon vieux OSX 10.9.5…
Dans ce cas, il me reste à me plonger dans les scripts !

Oh punaise ce serait bien!

J’ai regardé, et il se peut que ma deuxième version « cli », avec whiptail, fonctionne sous OSX!!
Telle quelle.

J’ai regardé pour des terminaux linux en ligne, j’ai pas trouvé grand-chose d’éthique.
Avec la version whiptail, il serait possible de faire marcher ce script en ligne.

Sur le téléphone avec termux ce serait bien aussi, mais j’ai pas réussi à faire marcher silkaj dans termux :confused:

Il y a ce programme ( GitHub - Eugeny/terminus: A terminal for a more modern age ) qui permet d’avoir un terminal linux sous windows, mac, etc. Mais je ne sais pas comment ça marche, si on peut dans le terminal installer des programmes, etc…

@Phil7 il faudrait déjà voir si tu peux installer silkaj sous macOS
pip install silkaj

1 « J'aime »

J’ai essayé, sans succès pour l’instant ! je ne suis pas un pro de la ligne de commande et n’ai pas trouvé de version installable de la manière classique…

Salut,

J’ai aussi eu des problèmes pour installer silkaj, sur le forum duniter ils m’avaient bien aidé.

Voici le lien:

J’aurais du mettre tout de suite ce lien, désolé. @Moul donne la réponse qui avait fait que ça fonctionne chez moi.

Ce sujet a été automatiquement fermé après 90 jours. Aucune réponse n’est permise dorénavant.