Ecouter fip dans un terminal - retour accueil
git clone git://bebou.netlib.re/fip
Log | Files | Refs | README |
commit e50f99193cc4b41cb76de9288323ab2d958c9e94 parent 5075bdbb41dccee590ac4f4b36c414328c95064a Auterice: arthur <arthur.pons@unistra.fr> Date: Tue, 13 Sep 2022 08:59:42 +0200 Retrait de local pour être posix, correction d'un bug pour pouvoir écouter les stations thématiques Diffstat:
M | README | | | 1 | + |
M | fip | | | 40 | ++++++++++++++++++++++++---------------- |
2 files changed, 25 insertions(+), 16 deletions(-)
diff --git a/README b/README @@ -39,6 +39,7 @@ conviviales au sens Illichien je suis preneur. Contribution +Thomas Baguet Marc Chantreux Thomas Bernard Arthur Pons diff --git a/fip b/fip @@ -1,36 +1,44 @@ #!/bin/sh -if [ "$#" -eq 0 ];then +# Sans argument on écoute fip +if [ "$#" -eq 0 ]; then radio="fip" -elif [ "$1" = "list" ];then +# Avec list on liste les stations dispo +elif [ "$1" = "list" ]; then curl -s https://www.radiofrance.fr/api/v1.9/stations/fip/webradios | jq -r '.[].slug' exit 0 +# Sinon on écoute celle passée en argument else radio="$1" fi # On lance le stream de fip en qualité moyenne -mpv --volume=50 --really-quiet https://icecast.radiofrance.fr/$radio-midfi.mp3& +# Il faut retirer le "_" du nom de la station +mpv --volume=50 --really-quiet "https://icecast.radiofrance.fr/$(echo $radio | sed 's/_//')-midfi.mp3"& # On récupère les infos via l'api de radiofrance -from_fip() curl -s https://www.radiofrance.fr/api/v1.9/stations/fip/webradios/$radio +from_fip() { + curl -s "https://www.radiofrance.fr/api/v1.9/stations/fip/webradios/$radio" +} # On filtre pour récupérer les infos du morceau en 3 lignes : # le titre # l'url de la couverture # l'heure de fin du morceau -current_track() jq -r ' +current_track() { + jq -r ' ( .now | - ( [ .firstLine, " - ", .secondLine, " | ", .song.release.title]|join("") ) - , .cover.src), - .media.endTime + ( [ .firstLine, " - ", .secondLine, " | ", .song.release.title]|join("") ) + , .cover.src), + .media.endTime ' +} # Mise à jour des informations du morceau enjoy() { - local it pause - for it; do read $it; done - + # local ne marche pas en shell POSIX !!! + for it; do read -r "${it?}"; done + # On calcul le nombre de secondes avant que le morceau change en y ajoutant # quelques secondes le temps pour l'api de renvoyer à nouveau des # timestamps valides sinon on récupère des "undefined" et j'ai la flemme de @@ -40,16 +48,16 @@ enjoy() { # A modifier si ce n'est plus le cas pause=$(date +"$end %s- 12+ p" | dc) - echo $title - + echo "$title" + # Affiche de la couverture - curl -s $cover --output - | catimg -w 80 - + curl -s "$cover" --output - | catimg -w 80 - # on attend la fin du morceau - sleep $pause + sleep "$pause" } while :; do - from_fip | + from_fip | current_track | enjoy title cover end done