Ecouter fip dans un terminal - retour accueil
git clone git://bebou.netlib.re/fip
Log | Files | Refs | README |
commit 3f27915e8675803d85cb9d42fd584f0f28a3815e parent d2fafc6a632df781c34e2c3648bb5d01bf526b02 Auterice: arthur <arthur.pons@unistra.fr> Date: Thu, 23 Nov 2023 12:01:18 +0100 Ajout d'une barre de progression Diffstat:
M | fip | | | 27 | ++++++++++++++++++++++++++- |
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/fip b/fip @@ -19,6 +19,14 @@ else radio=$(echo "$1" | tr "[a-z]" "[A-Z]") fi +# La barre de progression +barlines="|\n$(yes - | head -n58)\n|" + +# Pour supprimer la ligne courante et remettre le curseur au début +eraseline(){ + echo -n "\033[2K\033[0G" +} + from_fip() { # On récupère les infos via l'api de radiofrance curl -Ls 'https://openapi.radiofrance.fr/v1/graphql' \ @@ -43,6 +51,7 @@ current_track() { jq -r ' ( .data.live.song | ([.track.mainArtists[], " - ", .track.title]|join("")), .end)' } + # Mise à jour des informations du morceau enjoy() { # local ne marche pas en shell POSIX !!! @@ -53,18 +62,34 @@ enjoy() { if [ "$title" = "null" -o "$end" -le $(date +"%s") ] then # Si oui on dort 4 secondes + echo "machin" sleep 4 else # On calcul la différence entre le moment où le morceau se termine et # maintenant pause=$(date +"$end - %s" | bc) + # On affiche les infos echo "$title" # On les ajoute dans le fichier de session echo "$title $(date)" >> ~/git/fip/session # on attend la fin du morceau - sleep $(( $pause + 1 )) 2>/dev/null + # sleep $(( $pause + 1 )) 2>/dev/null + + # Puisque la barre de progression fait 58 "-" de long + # on calcul combien de secondes doivent faire les 58 incréments + # de temps entre le début et la fin de la chanson + inc=$(echo "($end - $(date +%s))/58" | bc -l) + for i in $(seq 1 58);do + # Pour chacun de ces incrément on affiche la barre de progression et + # on attend le nombre de secondes + echo "$barlines" | sed -E "1,$i s/-/=/g" | tr -d '\n' + sleep $inc + # Puis on efface la barre pour affichier la nouvelle + eraseline + done + sleep 1 # Affichage de la couverture, supprimer si on s'en fiche # Ou si l'on veut économiser des ressources