Add server label, IP identification, and wall-clock report scheduling
- Prepend server label + public IP to all Telegram messages (multi-server support) - Configurable server label via menu option 8 (defaults to hostname) - Wall-clock aligned report scheduling with configurable start hour - Start hour selection in both interval menu and setup wizard - Markdown-escape server label in both main and standalone scripts - Preserve start hour and server label on wizard cancel/failure paths
This commit is contained in:
110
conduit.sh
110
conduit.sh
@@ -681,7 +681,7 @@ save_settings_install() {
|
|||||||
mkdir -p "$INSTALL_DIR"
|
mkdir -p "$INSTALL_DIR"
|
||||||
# Preserve existing Telegram settings on reinstall
|
# Preserve existing Telegram settings on reinstall
|
||||||
local _tg_token="" _tg_chat="" _tg_interval="6" _tg_enabled="false"
|
local _tg_token="" _tg_chat="" _tg_interval="6" _tg_enabled="false"
|
||||||
local _tg_alerts="true" _tg_daily="true" _tg_weekly="true"
|
local _tg_alerts="true" _tg_daily="true" _tg_weekly="true" _tg_label="" _tg_start_hour="0"
|
||||||
if [ -f "$INSTALL_DIR/settings.conf" ]; then
|
if [ -f "$INSTALL_DIR/settings.conf" ]; then
|
||||||
source "$INSTALL_DIR/settings.conf" 2>/dev/null
|
source "$INSTALL_DIR/settings.conf" 2>/dev/null
|
||||||
_tg_token="${TELEGRAM_BOT_TOKEN:-}"
|
_tg_token="${TELEGRAM_BOT_TOKEN:-}"
|
||||||
@@ -691,6 +691,8 @@ save_settings_install() {
|
|||||||
_tg_alerts="${TELEGRAM_ALERTS_ENABLED:-true}"
|
_tg_alerts="${TELEGRAM_ALERTS_ENABLED:-true}"
|
||||||
_tg_daily="${TELEGRAM_DAILY_SUMMARY:-true}"
|
_tg_daily="${TELEGRAM_DAILY_SUMMARY:-true}"
|
||||||
_tg_weekly="${TELEGRAM_WEEKLY_SUMMARY:-true}"
|
_tg_weekly="${TELEGRAM_WEEKLY_SUMMARY:-true}"
|
||||||
|
_tg_label="${TELEGRAM_SERVER_LABEL:-}"
|
||||||
|
_tg_start_hour="${TELEGRAM_START_HOUR:-0}"
|
||||||
fi
|
fi
|
||||||
cat > "$INSTALL_DIR/settings.conf" << EOF
|
cat > "$INSTALL_DIR/settings.conf" << EOF
|
||||||
MAX_CLIENTS=$MAX_CLIENTS
|
MAX_CLIENTS=$MAX_CLIENTS
|
||||||
@@ -708,6 +710,8 @@ TELEGRAM_ENABLED=$_tg_enabled
|
|||||||
TELEGRAM_ALERTS_ENABLED=$_tg_alerts
|
TELEGRAM_ALERTS_ENABLED=$_tg_alerts
|
||||||
TELEGRAM_DAILY_SUMMARY=$_tg_daily
|
TELEGRAM_DAILY_SUMMARY=$_tg_daily
|
||||||
TELEGRAM_WEEKLY_SUMMARY=$_tg_weekly
|
TELEGRAM_WEEKLY_SUMMARY=$_tg_weekly
|
||||||
|
TELEGRAM_SERVER_LABEL="$_tg_label"
|
||||||
|
TELEGRAM_START_HOUR=$_tg_start_hour
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
chmod 600 "$INSTALL_DIR/settings.conf" 2>/dev/null || true
|
chmod 600 "$INSTALL_DIR/settings.conf" 2>/dev/null || true
|
||||||
@@ -3531,6 +3535,8 @@ TELEGRAM_ENABLED=${TELEGRAM_ENABLED:-false}
|
|||||||
TELEGRAM_ALERTS_ENABLED=${TELEGRAM_ALERTS_ENABLED:-true}
|
TELEGRAM_ALERTS_ENABLED=${TELEGRAM_ALERTS_ENABLED:-true}
|
||||||
TELEGRAM_DAILY_SUMMARY=${TELEGRAM_DAILY_SUMMARY:-true}
|
TELEGRAM_DAILY_SUMMARY=${TELEGRAM_DAILY_SUMMARY:-true}
|
||||||
TELEGRAM_WEEKLY_SUMMARY=${TELEGRAM_WEEKLY_SUMMARY:-true}
|
TELEGRAM_WEEKLY_SUMMARY=${TELEGRAM_WEEKLY_SUMMARY:-true}
|
||||||
|
TELEGRAM_SERVER_LABEL="${TELEGRAM_SERVER_LABEL:-}"
|
||||||
|
TELEGRAM_START_HOUR=${TELEGRAM_START_HOUR:-0}
|
||||||
EOF
|
EOF
|
||||||
# Save per-container overrides
|
# Save per-container overrides
|
||||||
for i in $(seq 1 5); do
|
for i in $(seq 1 5); do
|
||||||
@@ -3558,6 +3564,15 @@ escape_telegram_markdown() {
|
|||||||
telegram_send_message() {
|
telegram_send_message() {
|
||||||
local message="$1"
|
local message="$1"
|
||||||
{ [ -z "$TELEGRAM_BOT_TOKEN" ] || [ -z "$TELEGRAM_CHAT_ID" ]; } && return 1
|
{ [ -z "$TELEGRAM_BOT_TOKEN" ] || [ -z "$TELEGRAM_CHAT_ID" ]; } && return 1
|
||||||
|
# Prepend server label + IP (escape for Markdown)
|
||||||
|
local label="${TELEGRAM_SERVER_LABEL:-$(hostname 2>/dev/null || echo 'unknown')}"
|
||||||
|
label=$(escape_telegram_markdown "$label")
|
||||||
|
local _ip=$(curl -s --max-time 3 https://api.ipify.org 2>/dev/null || echo "")
|
||||||
|
if [ -n "$_ip" ]; then
|
||||||
|
message="[${label} | ${_ip}] ${message}"
|
||||||
|
else
|
||||||
|
message="[${label}] ${message}"
|
||||||
|
fi
|
||||||
local response
|
local response
|
||||||
response=$(curl -s --max-time 10 --max-filesize 1048576 -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
|
response=$(curl -s --max-time 10 --max-filesize 1048576 -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
|
||||||
--data-urlencode "chat_id=$TELEGRAM_CHAT_ID" \
|
--data-urlencode "chat_id=$TELEGRAM_CHAT_ID" \
|
||||||
@@ -3770,8 +3785,21 @@ INSTALL_DIR="/opt/conduit"
|
|||||||
[ -z "$TELEGRAM_BOT_TOKEN" ] && exit 0
|
[ -z "$TELEGRAM_BOT_TOKEN" ] && exit 0
|
||||||
[ -z "$TELEGRAM_CHAT_ID" ] && exit 0
|
[ -z "$TELEGRAM_CHAT_ID" ] && exit 0
|
||||||
|
|
||||||
|
# Cache server IP once at startup
|
||||||
|
_server_ip=$(curl -s --max-time 5 https://api.ipify.org 2>/dev/null \
|
||||||
|
|| curl -s --max-time 5 https://ifconfig.me 2>/dev/null \
|
||||||
|
|| echo "")
|
||||||
|
|
||||||
telegram_send() {
|
telegram_send() {
|
||||||
local message="$1"
|
local message="$1"
|
||||||
|
# Prepend server label + IP (escape for Markdown)
|
||||||
|
local label="${TELEGRAM_SERVER_LABEL:-$(hostname 2>/dev/null || echo 'unknown')}"
|
||||||
|
label=$(escape_md "$label")
|
||||||
|
if [ -n "$_server_ip" ]; then
|
||||||
|
message="[${label} | ${_server_ip}] ${message}"
|
||||||
|
else
|
||||||
|
message="[${label}] ${message}"
|
||||||
|
fi
|
||||||
curl -s --max-time 10 --max-filesize 1048576 -X POST \
|
curl -s --max-time 10 --max-filesize 1048576 -X POST \
|
||||||
"https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
|
"https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
|
||||||
--data-urlencode "chat_id=$TELEGRAM_CHAT_ID" \
|
--data-urlencode "chat_id=$TELEGRAM_CHAT_ID" \
|
||||||
@@ -4228,7 +4256,6 @@ build_report() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# State variables
|
# State variables
|
||||||
elapsed=0
|
|
||||||
cpu_breach=0
|
cpu_breach=0
|
||||||
ram_breach=0
|
ram_breach=0
|
||||||
zero_peers_since=0
|
zero_peers_since=0
|
||||||
@@ -4247,10 +4274,11 @@ last_daily_ts=$(cat "$_ts_dir/.last_daily_ts" 2>/dev/null || echo 0)
|
|||||||
[ "$last_daily_ts" -eq "$last_daily_ts" ] 2>/dev/null || last_daily_ts=0
|
[ "$last_daily_ts" -eq "$last_daily_ts" ] 2>/dev/null || last_daily_ts=0
|
||||||
last_weekly_ts=$(cat "$_ts_dir/.last_weekly_ts" 2>/dev/null || echo 0)
|
last_weekly_ts=$(cat "$_ts_dir/.last_weekly_ts" 2>/dev/null || echo 0)
|
||||||
[ "$last_weekly_ts" -eq "$last_weekly_ts" ] 2>/dev/null || last_weekly_ts=0
|
[ "$last_weekly_ts" -eq "$last_weekly_ts" ] 2>/dev/null || last_weekly_ts=0
|
||||||
|
last_report_ts=$(cat "$_ts_dir/.last_report_ts" 2>/dev/null || echo 0)
|
||||||
|
[ "$last_report_ts" -eq "$last_report_ts" ] 2>/dev/null || last_report_ts=0
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
sleep 60
|
sleep 60
|
||||||
elapsed=$((elapsed + 60))
|
|
||||||
|
|
||||||
# Re-read settings
|
# Re-read settings
|
||||||
[ -f "$INSTALL_DIR/settings.conf" ] && source "$INSTALL_DIR/settings.conf"
|
[ -f "$INSTALL_DIR/settings.conf" ] && source "$INSTALL_DIR/settings.conf"
|
||||||
@@ -4259,9 +4287,6 @@ while true; do
|
|||||||
[ "$TELEGRAM_ENABLED" != "true" ] && exit 0
|
[ "$TELEGRAM_ENABLED" != "true" ] && exit 0
|
||||||
[ -z "$TELEGRAM_BOT_TOKEN" ] && exit 0
|
[ -z "$TELEGRAM_BOT_TOKEN" ] && exit 0
|
||||||
|
|
||||||
# Update interval
|
|
||||||
interval_secs=$(( ${TELEGRAM_INTERVAL:-6} * 3600 ))
|
|
||||||
|
|
||||||
# Core per-minute tasks
|
# Core per-minute tasks
|
||||||
process_commands
|
process_commands
|
||||||
track_uptime
|
track_uptime
|
||||||
@@ -4288,12 +4313,23 @@ while true; do
|
|||||||
echo "$now_ts" > "$_ts_dir/.last_weekly_ts"
|
echo "$now_ts" > "$_ts_dir/.last_weekly_ts"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Regular periodic report
|
# Regular periodic report (wall-clock aligned to start hour)
|
||||||
if [ "$elapsed" -ge "$interval_secs" ]; then
|
# Reports fire when current hour matches start_hour + N*interval
|
||||||
|
interval_hours=${TELEGRAM_INTERVAL:-6}
|
||||||
|
start_hour=${TELEGRAM_START_HOUR:-0}
|
||||||
|
interval_secs=$((interval_hours * 3600))
|
||||||
|
current_hour=$(date +%-H)
|
||||||
|
# Check if this hour is a scheduled slot: (current_hour - start_hour) mod interval == 0
|
||||||
|
hour_diff=$(( (current_hour - start_hour + 24) % 24 ))
|
||||||
|
if [ "$interval_hours" -gt 0 ] && [ $((hour_diff % interval_hours)) -eq 0 ] 2>/dev/null; then
|
||||||
|
# Only send once per slot (check if enough time passed since last report)
|
||||||
|
if [ $((now_ts - last_report_ts)) -ge $((interval_secs - 120)) ] 2>/dev/null; then
|
||||||
report=$(build_report)
|
report=$(build_report)
|
||||||
telegram_send "$report"
|
telegram_send "$report"
|
||||||
record_snapshot
|
record_snapshot
|
||||||
elapsed=0
|
last_report_ts=$now_ts
|
||||||
|
echo "$now_ts" > "$_ts_dir/.last_report_ts"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
TGEOF
|
TGEOF
|
||||||
@@ -4538,7 +4574,8 @@ show_telegram_menu() {
|
|||||||
echo -e "${CYAN} TELEGRAM NOTIFICATIONS${NC}"
|
echo -e "${CYAN} TELEGRAM NOTIFICATIONS${NC}"
|
||||||
echo -e "${CYAN}─────────────────────────────────────────────────────────────────${NC}"
|
echo -e "${CYAN}─────────────────────────────────────────────────────────────────${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
echo -e " Status: ${GREEN}✓ Enabled${NC} (every ${TELEGRAM_INTERVAL}h)"
|
local _sh="${TELEGRAM_START_HOUR:-0}"
|
||||||
|
echo -e " Status: ${GREEN}✓ Enabled${NC} (every ${TELEGRAM_INTERVAL}h starting at ${_sh}:00)"
|
||||||
echo ""
|
echo ""
|
||||||
local alerts_st="${GREEN}ON${NC}"
|
local alerts_st="${GREEN}ON${NC}"
|
||||||
[ "${TELEGRAM_ALERTS_ENABLED:-true}" != "true" ] && alerts_st="${RED}OFF${NC}"
|
[ "${TELEGRAM_ALERTS_ENABLED:-true}" != "true" ] && alerts_st="${RED}OFF${NC}"
|
||||||
@@ -4553,6 +4590,8 @@ show_telegram_menu() {
|
|||||||
echo -e " 5. 🚨 Alerts (CPU/RAM/down): ${alerts_st}"
|
echo -e " 5. 🚨 Alerts (CPU/RAM/down): ${alerts_st}"
|
||||||
echo -e " 6. 📋 Daily summary: ${daily_st}"
|
echo -e " 6. 📋 Daily summary: ${daily_st}"
|
||||||
echo -e " 7. 📊 Weekly summary: ${weekly_st}"
|
echo -e " 7. 📊 Weekly summary: ${weekly_st}"
|
||||||
|
local cur_label="${TELEGRAM_SERVER_LABEL:-$(hostname 2>/dev/null || echo 'unknown')}"
|
||||||
|
echo -e " 8. 🏷 Server label: ${CYAN}${cur_label}${NC}"
|
||||||
echo -e " 0. ← Back"
|
echo -e " 0. ← Back"
|
||||||
echo -e "${CYAN}─────────────────────────────────────────────────────────────────${NC}"
|
echo -e "${CYAN}─────────────────────────────────────────────────────────────────${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
@@ -4586,9 +4625,16 @@ show_telegram_menu() {
|
|||||||
5) TELEGRAM_INTERVAL=24 ;;
|
5) TELEGRAM_INTERVAL=24 ;;
|
||||||
*) echo -e " ${RED}Invalid choice${NC}"; read -n 1 -s -r -p " Press any key..." < /dev/tty || true; continue ;;
|
*) echo -e " ${RED}Invalid choice${NC}"; read -n 1 -s -r -p " Press any key..." < /dev/tty || true; continue ;;
|
||||||
esac
|
esac
|
||||||
|
echo ""
|
||||||
|
echo -e " What hour should reports start? (0-23, e.g. 8 = 8:00 AM)"
|
||||||
|
echo -e " Reports will repeat every ${TELEGRAM_INTERVAL}h from this hour."
|
||||||
|
read -p " Start hour [0-23] (default ${TELEGRAM_START_HOUR:-0}): " shchoice < /dev/tty || true
|
||||||
|
if [ -n "$shchoice" ] && [ "$shchoice" -ge 0 ] 2>/dev/null && [ "$shchoice" -le 23 ] 2>/dev/null; then
|
||||||
|
TELEGRAM_START_HOUR=$shchoice
|
||||||
|
fi
|
||||||
save_settings
|
save_settings
|
||||||
telegram_start_notify
|
telegram_start_notify
|
||||||
echo -e " ${GREEN}✓ Interval set to every ${TELEGRAM_INTERVAL} hours${NC}"
|
echo -e " ${GREEN}✓ Reports every ${TELEGRAM_INTERVAL}h starting at ${TELEGRAM_START_HOUR:-0}:00${NC}"
|
||||||
read -n 1 -s -r -p " Press any key..." < /dev/tty || true
|
read -n 1 -s -r -p " Press any key..." < /dev/tty || true
|
||||||
;;
|
;;
|
||||||
3)
|
3)
|
||||||
@@ -4637,6 +4683,21 @@ show_telegram_menu() {
|
|||||||
telegram_start_notify
|
telegram_start_notify
|
||||||
read -n 1 -s -r -p " Press any key..." < /dev/tty || true
|
read -n 1 -s -r -p " Press any key..." < /dev/tty || true
|
||||||
;;
|
;;
|
||||||
|
8)
|
||||||
|
echo ""
|
||||||
|
local cur_label="${TELEGRAM_SERVER_LABEL:-$(hostname 2>/dev/null || echo 'unknown')}"
|
||||||
|
echo -e " Current label: ${CYAN}${cur_label}${NC}"
|
||||||
|
echo -e " This label appears in all Telegram messages to identify the server."
|
||||||
|
echo -e " Leave blank to use hostname ($(hostname 2>/dev/null || echo 'unknown'))"
|
||||||
|
echo ""
|
||||||
|
read -p " New label: " new_label < /dev/tty || true
|
||||||
|
TELEGRAM_SERVER_LABEL="${new_label}"
|
||||||
|
save_settings
|
||||||
|
telegram_start_notify
|
||||||
|
local display_label="${TELEGRAM_SERVER_LABEL:-$(hostname 2>/dev/null || echo 'unknown')}"
|
||||||
|
echo -e " ${GREEN}✓ Server label set to: ${display_label}${NC}"
|
||||||
|
read -n 1 -s -r -p " Press any key..." < /dev/tty || true
|
||||||
|
;;
|
||||||
0) return ;;
|
0) return ;;
|
||||||
esac
|
esac
|
||||||
elif [ -n "$TELEGRAM_BOT_TOKEN" ] && [ -n "$TELEGRAM_CHAT_ID" ]; then
|
elif [ -n "$TELEGRAM_BOT_TOKEN" ] && [ -n "$TELEGRAM_CHAT_ID" ]; then
|
||||||
@@ -4680,7 +4741,9 @@ telegram_setup_wizard() {
|
|||||||
local _saved_chatid="$TELEGRAM_CHAT_ID"
|
local _saved_chatid="$TELEGRAM_CHAT_ID"
|
||||||
local _saved_interval="$TELEGRAM_INTERVAL"
|
local _saved_interval="$TELEGRAM_INTERVAL"
|
||||||
local _saved_enabled="$TELEGRAM_ENABLED"
|
local _saved_enabled="$TELEGRAM_ENABLED"
|
||||||
trap 'TELEGRAM_BOT_TOKEN="$_saved_token"; TELEGRAM_CHAT_ID="$_saved_chatid"; TELEGRAM_INTERVAL="$_saved_interval"; TELEGRAM_ENABLED="$_saved_enabled"; trap - SIGINT; echo; return' SIGINT
|
local _saved_starthour="$TELEGRAM_START_HOUR"
|
||||||
|
local _saved_label="$TELEGRAM_SERVER_LABEL"
|
||||||
|
trap 'TELEGRAM_BOT_TOKEN="$_saved_token"; TELEGRAM_CHAT_ID="$_saved_chatid"; TELEGRAM_INTERVAL="$_saved_interval"; TELEGRAM_ENABLED="$_saved_enabled"; TELEGRAM_START_HOUR="$_saved_starthour"; TELEGRAM_SERVER_LABEL="$_saved_label"; trap - SIGINT; echo; return' SIGINT
|
||||||
clear
|
clear
|
||||||
echo -e "${CYAN}══════════════════════════════════════════════════════════════════${NC}"
|
echo -e "${CYAN}══════════════════════════════════════════════════════════════════${NC}"
|
||||||
echo -e " ${BOLD}TELEGRAM NOTIFICATIONS SETUP${NC}"
|
echo -e " ${BOLD}TELEGRAM NOTIFICATIONS SETUP${NC}"
|
||||||
@@ -4717,7 +4780,7 @@ telegram_setup_wizard() {
|
|||||||
# Validate token format
|
# Validate token format
|
||||||
if ! echo "$TELEGRAM_BOT_TOKEN" | grep -qE '^[0-9]+:[A-Za-z0-9_-]+$'; then
|
if ! echo "$TELEGRAM_BOT_TOKEN" | grep -qE '^[0-9]+:[A-Za-z0-9_-]+$'; then
|
||||||
echo -e " ${RED}Invalid token format. Should be like: 123456789:ABCdefGHI...${NC}"
|
echo -e " ${RED}Invalid token format. Should be like: 123456789:ABCdefGHI...${NC}"
|
||||||
TELEGRAM_BOT_TOKEN="$_saved_token"; TELEGRAM_CHAT_ID="$_saved_chatid"; TELEGRAM_INTERVAL="$_saved_interval"; TELEGRAM_ENABLED="$_saved_enabled"
|
TELEGRAM_BOT_TOKEN="$_saved_token"; TELEGRAM_CHAT_ID="$_saved_chatid"; TELEGRAM_INTERVAL="$_saved_interval"; TELEGRAM_ENABLED="$_saved_enabled"; TELEGRAM_START_HOUR="$_saved_starthour"; TELEGRAM_SERVER_LABEL="$_saved_label"
|
||||||
read -n 1 -s -r -p " Press any key..." < /dev/tty || true
|
read -n 1 -s -r -p " Press any key..." < /dev/tty || true
|
||||||
trap - SIGINT; return
|
trap - SIGINT; return
|
||||||
fi
|
fi
|
||||||
@@ -4729,7 +4792,7 @@ telegram_setup_wizard() {
|
|||||||
echo -e " 2. Send it the message: ${YELLOW}/start${NC}"
|
echo -e " 2. Send it the message: ${YELLOW}/start${NC}"
|
||||||
echo -e " 3. Press Enter here when done..."
|
echo -e " 3. Press Enter here when done..."
|
||||||
echo ""
|
echo ""
|
||||||
read -p " Press Enter after sending /start to your bot... " < /dev/tty || { trap - SIGINT; TELEGRAM_BOT_TOKEN="$_saved_token"; TELEGRAM_CHAT_ID="$_saved_chatid"; TELEGRAM_INTERVAL="$_saved_interval"; TELEGRAM_ENABLED="$_saved_enabled"; return; }
|
read -p " Press Enter after sending /start to your bot... " < /dev/tty || { trap - SIGINT; TELEGRAM_BOT_TOKEN="$_saved_token"; TELEGRAM_CHAT_ID="$_saved_chatid"; TELEGRAM_INTERVAL="$_saved_interval"; TELEGRAM_ENABLED="$_saved_enabled"; TELEGRAM_START_HOUR="$_saved_starthour"; TELEGRAM_SERVER_LABEL="$_saved_label"; return; }
|
||||||
|
|
||||||
echo -ne " Detecting chat ID... "
|
echo -ne " Detecting chat ID... "
|
||||||
local attempts=0
|
local attempts=0
|
||||||
@@ -4745,7 +4808,7 @@ telegram_setup_wizard() {
|
|||||||
if [ -z "$TELEGRAM_CHAT_ID" ]; then
|
if [ -z "$TELEGRAM_CHAT_ID" ]; then
|
||||||
echo -e "${RED}✗ Could not detect chat ID${NC}"
|
echo -e "${RED}✗ Could not detect chat ID${NC}"
|
||||||
echo -e " Make sure you sent /start to the bot and try again."
|
echo -e " Make sure you sent /start to the bot and try again."
|
||||||
TELEGRAM_BOT_TOKEN="$_saved_token"; TELEGRAM_CHAT_ID="$_saved_chatid"; TELEGRAM_INTERVAL="$_saved_interval"; TELEGRAM_ENABLED="$_saved_enabled"
|
TELEGRAM_BOT_TOKEN="$_saved_token"; TELEGRAM_CHAT_ID="$_saved_chatid"; TELEGRAM_INTERVAL="$_saved_interval"; TELEGRAM_ENABLED="$_saved_enabled"; TELEGRAM_START_HOUR="$_saved_starthour"; TELEGRAM_SERVER_LABEL="$_saved_label"
|
||||||
read -n 1 -s -r -p " Press any key..." < /dev/tty || true
|
read -n 1 -s -r -p " Press any key..." < /dev/tty || true
|
||||||
trap - SIGINT; return
|
trap - SIGINT; return
|
||||||
fi
|
fi
|
||||||
@@ -4769,13 +4832,26 @@ telegram_setup_wizard() {
|
|||||||
*) TELEGRAM_INTERVAL=6 ;;
|
*) TELEGRAM_INTERVAL=6 ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e " ${BOLD}Step 4: Start Hour${NC}"
|
||||||
|
echo -e " ${CYAN}─────────────────────────────${NC}"
|
||||||
|
echo -e " What hour should reports start? (0-23, e.g. 8 = 8:00 AM)"
|
||||||
|
echo -e " Reports will repeat every ${TELEGRAM_INTERVAL}h from this hour."
|
||||||
|
echo ""
|
||||||
|
read -p " Start hour [0-23] (default 0): " shchoice < /dev/tty || true
|
||||||
|
if [ -n "$shchoice" ] && [ "$shchoice" -ge 0 ] 2>/dev/null && [ "$shchoice" -le 23 ] 2>/dev/null; then
|
||||||
|
TELEGRAM_START_HOUR=$shchoice
|
||||||
|
else
|
||||||
|
TELEGRAM_START_HOUR=0
|
||||||
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo -ne " Sending test message... "
|
echo -ne " Sending test message... "
|
||||||
if telegram_test_message; then
|
if telegram_test_message; then
|
||||||
echo -e "${GREEN}✓ Success!${NC}"
|
echo -e "${GREEN}✓ Success!${NC}"
|
||||||
else
|
else
|
||||||
echo -e "${RED}✗ Failed to send. Check your token.${NC}"
|
echo -e "${RED}✗ Failed to send. Check your token.${NC}"
|
||||||
TELEGRAM_BOT_TOKEN="$_saved_token"; TELEGRAM_CHAT_ID="$_saved_chatid"; TELEGRAM_INTERVAL="$_saved_interval"; TELEGRAM_ENABLED="$_saved_enabled"
|
TELEGRAM_BOT_TOKEN="$_saved_token"; TELEGRAM_CHAT_ID="$_saved_chatid"; TELEGRAM_INTERVAL="$_saved_interval"; TELEGRAM_ENABLED="$_saved_enabled"; TELEGRAM_START_HOUR="$_saved_starthour"; TELEGRAM_SERVER_LABEL="$_saved_label"
|
||||||
read -n 1 -s -r -p " Press any key..." < /dev/tty || true
|
read -n 1 -s -r -p " Press any key..." < /dev/tty || true
|
||||||
trap - SIGINT; return
|
trap - SIGINT; return
|
||||||
fi
|
fi
|
||||||
@@ -4787,7 +4863,7 @@ telegram_setup_wizard() {
|
|||||||
trap - SIGINT
|
trap - SIGINT
|
||||||
echo ""
|
echo ""
|
||||||
echo -e " ${GREEN}${BOLD}✓ Telegram notifications enabled!${NC}"
|
echo -e " ${GREEN}${BOLD}✓ Telegram notifications enabled!${NC}"
|
||||||
echo -e " You'll receive reports every ${TELEGRAM_INTERVAL} hours."
|
echo -e " You'll receive reports every ${TELEGRAM_INTERVAL}h starting at ${TELEGRAM_START_HOUR}:00."
|
||||||
echo ""
|
echo ""
|
||||||
read -n 1 -s -r -p " Press any key to return..." < /dev/tty || true
|
read -n 1 -s -r -p " Press any key to return..." < /dev/tty || true
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user