59 lines
1.7 KiB
Bash
Executable File
59 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# brain-notify.sh — Canal Telegram du SUPERVISOR
|
|
# Usage: brain-notify.sh "MESSAGE" [urgent|update|info]
|
|
# urgent → 🔴 notification sonore — interruption humaine
|
|
# update → ✅ notification silencieuse — info non bloquante
|
|
# info → 💬 notification silencieuse — log passif
|
|
#
|
|
# Token lu depuis MYSECRETS — jamais hardcodé.
|
|
|
|
set -euo pipefail
|
|
|
|
MYSECRETS="${BRAIN_ROOT:-$HOME/Dev/Docs}/MYSECRETS"
|
|
|
|
if [[ ! -f "$MYSECRETS" ]]; then
|
|
echo "[brain-notify] ERREUR : MYSECRETS introuvable à $MYSECRETS" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Lire token + chat_id depuis MYSECRETS (source .env style)
|
|
TOKEN=$(grep '^BRAIN_TELEGRAM_TOKEN=' "$MYSECRETS" | cut -d= -f2-)
|
|
CHAT_ID=$(grep '^BRAIN_TELEGRAM_CHAT_ID=' "$MYSECRETS" | cut -d= -f2-)
|
|
|
|
if [[ -z "$TOKEN" || -z "$CHAT_ID" ]]; then
|
|
echo "[brain-notify] ERREUR : BRAIN_TELEGRAM_TOKEN ou BRAIN_TELEGRAM_CHAT_ID vide dans MYSECRETS" >&2
|
|
exit 1
|
|
fi
|
|
|
|
MESSAGE="${1:-}"
|
|
LEVEL="${2:-info}"
|
|
|
|
if [[ -z "$MESSAGE" ]]; then
|
|
echo "[brain-notify] ERREUR : message vide" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Préfixe selon le niveau
|
|
case "$LEVEL" in
|
|
urgent) PREFIX="🔴 *BRAIN ESCALADE*" ; SILENT=false ;;
|
|
update) PREFIX="✅ *BRAIN UPDATE*" ; SILENT=true ;;
|
|
info) PREFIX="💬 *BRAIN*" ; SILENT=true ;;
|
|
*) PREFIX="💬 *BRAIN*" ; SILENT=true ;;
|
|
esac
|
|
|
|
FULL_MESSAGE="${PREFIX}
|
|
${MESSAGE}
|
|
_$(date '+%Y-%m-%d %H:%M')_"
|
|
|
|
# Envoi Telegram
|
|
DISABLE_NOTIFICATION=$( [[ "$SILENT" == "true" ]] && echo "true" || echo "false" )
|
|
|
|
curl -s -X POST "https://api.telegram.org/bot${TOKEN}/sendMessage" \
|
|
-d chat_id="$CHAT_ID" \
|
|
-d text="$FULL_MESSAGE" \
|
|
-d parse_mode="Markdown" \
|
|
-d disable_notification="$DISABLE_NOTIFICATION" \
|
|
> /dev/null
|
|
|
|
echo "[brain-notify] [$LEVEL] envoyé"
|