DEV Community

Tom Moulard
Tom Moulard

Posted on • Originally published at blog.moulard.org on

Corona et CLI

Comment utiliser des outils “modernes” pour avoir des informations utiles sur l’état actuel des choses

On a des sites qui offrent les données liées au virus accessible grâce à cURL:

Récupérer les informations

$ curl https://corona-stats.online/fr
╔══════╤═════════════╤══════════════╤═════════════╤══════════════╤══════════════╤═══════════╤═════════╤══════════╤════════════════╗
║ Rank │ Country │ Total Cases │ New Cases ▲ │ Total Deaths │ New Deaths ▲ │ Recovered │ Active │ Critical │ Cases / 1M pop ║
╟──────┼─────────────┼──────────────┼─────────────┼──────────────┼──────────────┼───────────┼─────────┼──────────┼────────────────╢
║ 1 │ France (FR) │ 29,155 │ │ 1,696 │ │ 4,948 │ 22,511 │ 3,375 │ 447 ║
╟──────┼─────────────┼──────────────┼─────────────┼──────────────┼──────────────┼───────────┼─────────┼──────────┼────────────────╢
║ │ World │ 548,806 │ 16,996 ▲ │ 24,862 │ 794 ▲ │ 128,599 │ 395,345 │ 20,968 │ 70.41 ║
╚══════╧═════════════╧══════════════╧═════════════╧══════════════╧══════════════╧═══════════╧═════════╧══════════╧════════════════╝

Stay safe. Stay inside.
Code: https://github.com/sagarkarira/coronavirus-tracker-cli
Twitter: https://twitter.com/ekrysis

Last Updated on: 27-Mar-2020 11:03 UTC

UPDATE: Source 2 is now default source
JHU Source 1 table: https://corona-stats.online?source=1
HELP: https://corona-stats.online/help

Enter fullscreen mode Exit fullscreen mode

Extraire les informations

Extraire des données de ce curl est donc faisable:

$ curl https://corona-stats.online/fr | grep an
║ Rank │ Country │ Total Cases │ New Cases ▲ │ Total Deaths │ New Deaths ▲ │ Recovered │ Active │ Critical │ Cases / 1M pop ║
║ 1 │ France (FR) │ 29,155 │ │ 1,696 │ │ 4,948 │ 22,511 │ 3,375 │ 447 ║

Enter fullscreen mode Exit fullscreen mode

Nettoyer les informations

Il suffit ensuite de nettoyer avec un coup de sed

$ curl https://corona-stats.online/fr |\
    grep an |\
    sed "s/\s*//g ; s/║//g ; s/│/;/g"
Rank;Country;TotalCases;NewCases▲;TotalDeaths;NewDeaths▲;Recovered;Active;Critical;Cases/1Mpop
1;France(FR);29,155;;1,696;;4,948;22,511;3,375;447

Enter fullscreen mode Exit fullscreen mode

Les trois arguments de sed permettent: - s/\s*//g: supprimer les espaces superflu - s/║//g: enlever le caractère de fin - s/│/;/g": Remplacer les séparateurs par quelque chose d’utilisable

Formater les informations

On peux mieux voir les informations grâce à AWK:

$ curl https://corona-stats.online/fr |\
    grep France |\
    sed "s/\s*//g ; s/║//g ; s/│/;/g" |\
    awk -F';' '{print $2":"$3"("$7","$8")"}'
Country:TotalCases(Recovered,Active)
France(FR):29,155(4,948,22,511)

Enter fullscreen mode Exit fullscreen mode

Attention: ne pas oublier d’enlever la ligne avec les informations de champ avec une utilisation un peut plus poussée.

Conclusion

Il ne nous reste plus qu’à utiliser ces informations, dans une barre d’état par exemple.

Pour aller plus loin, on pourrais ne pas utiliser cURL à chaque appel, mais utiliser un cache car les informations ne sont pas mises a jours toutes les heures:

curl https://corona-stats.online/fr > $HOME/.cache/corona_data
grep France $HOME/.cache/corona_data |\
    sed "s/\s*//g ; s/║//g ; s/│/;/g" |\
    awk -F';' '{print $2":"$3"("$7","$8")"}'

Enter fullscreen mode Exit fullscreen mode

Top comments (0)