Add METAR to annna. - annna - Annna the nice friendly bot.
(HTM) git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Tags
(DIR) README
---
(DIR) commit 58d3d554ce0e9955b0444a80ed162ecf5a6e2c4d
(DIR) parent a6b2003f535663399675790e9e4e233e77a31892
(HTM) Author: eidolon <?>
Date: Wed, 9 Oct 2024 11:08:49 -0400
Add METAR to annna.
Signed-off-by: Annna Robert-Houdin <annna@bitreich.org>
Diffstat:
M annna-message-common | 4 ++++
A metar | 17 +++++++++++++++++
2 files changed, 21 insertions(+), 0 deletions(-)
---
(DIR) diff --git a/annna-message-common b/annna-message-common
@@ -721,6 +721,10 @@ case "${text}" in
fi
} &
;;
+"${ircuser}, METAR for "*|"${ircuser}, metar for "*)
+ resp=$(metar "$(printf '%.4s\n' "${text##* }")")
+ annna-say -s "${server}" -c "${channel}" "${user}, ${resp}"
+ ;;
"${ircuser}, how discriminating is "*)
word="$(printf "%s\n" "${text}" | cut -c 30- | sed 's,\t, ,g')"
case "$word" in
(DIR) diff --git a/metar b/metar
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+if ! id=$(printf '%s\n' "$1" | grep '^[A-Za-z]\{4\}$'); then
+ printf '%s\n' "invalid ICAO 7910 airport code."
+ exit 1
+fi
+
+fmt=raw
+uri="https://aviationweather.gov/api/data/metar/"
+metar=$(curl -Ssfm 5 --data-urlencode format="$fmt" --data-urlencode ids="$id" "$uri")
+
+if [ -z "$metar" ]; then
+ printf '%s\n' "error retrieving METAR for $id."
+ exit 1
+fi
+
+printf '%s\n' "$metar"