43 lines
1.3 KiB
Bash
Executable File
43 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# get-telegram-chatid.sh — Récupère le chat_id Telegram et l'écrit dans MYSECRETS
|
|
# NE JAMAIS afficher la valeur dans le terminal — écriture directe dans MYSECRETS
|
|
#
|
|
# Prérequis : avoir envoyé /start au bot sur Telegram
|
|
|
|
set -euo pipefail
|
|
|
|
MYSECRETS="${BRAIN_ROOT:-$HOME/Dev/Docs}/MYSECRETS"
|
|
|
|
TOKEN=$(grep '^BRAIN_TELEGRAM_TOKEN=' "$MYSECRETS" | cut -d= -f2-)
|
|
|
|
if [[ -z "$TOKEN" ]]; then
|
|
echo "ERREUR : BRAIN_TELEGRAM_TOKEN vide dans MYSECRETS" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Récupérer le chat_id sans l'afficher
|
|
RESPONSE=$(curl -s "https://api.telegram.org/bot${TOKEN}/getUpdates")
|
|
CHAT_ID=$(echo "$RESPONSE" | python3 -c "
|
|
import sys, json
|
|
data = json.load(sys.stdin)
|
|
results = data.get('result', [])
|
|
if not results:
|
|
print('NONE')
|
|
else:
|
|
print(results[-1].get('message', {}).get('chat', {}).get('id', 'NONE'))
|
|
" 2>/dev/null)
|
|
|
|
if [[ "$CHAT_ID" == "NONE" || -z "$CHAT_ID" ]]; then
|
|
echo "Aucun message reçu. Envoie /start au bot sur Telegram puis relance ce script." >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Écrire dans MYSECRETS sans afficher la valeur
|
|
if grep -q '^BRAIN_TELEGRAM_CHAT_ID=' "$MYSECRETS"; then
|
|
sed -i "s/^BRAIN_TELEGRAM_CHAT_ID=.*/BRAIN_TELEGRAM_CHAT_ID=${CHAT_ID}/" "$MYSECRETS"
|
|
else
|
|
echo "BRAIN_TELEGRAM_CHAT_ID=${CHAT_ID}" >> "$MYSECRETS"
|
|
fi
|
|
|
|
echo "✅ BRAIN_TELEGRAM_CHAT_ID enregistré dans MYSECRETS — valeur non affichée"
|