diff --git a/warp.sh b/warp.sh
index 2c384f1..8f6c181 100644
--- a/warp.sh
+++ b/warp.sh
@@ -1618,52 +1618,41 @@ bot_daemon() {
if has_awg_mode && [ -n "$CONTAINER" ]; then awg_load_container_data 2>/dev/null; fi
local offset=0
while true; do
- bot_poll_cycle
- done
-}
-
-bot_poll_cycle() {
- source "$WARP_CONF" 2>/dev/null
- local response
- response=$(curl -s --max-time 35 \
- "https://api.telegram.org/bot${BOT_TOKEN}/getUpdates?offset=${offset}&timeout=30" 2>/dev/null)
- [ -z "$response" ] && sleep 2 && return
-
- local header
- header=$(echo "$response" | jq -r '[.ok // "false", (.result | length)] | @tsv' 2>/dev/null) || true
- local ok cnt
- IFS=$'\t' read -r ok cnt <<< "$header"
- [ "$ok" != "true" ] && sleep 5 && return
- [ "$cnt" -eq 0 ] 2>/dev/null && return
-
- local updates_tsv
- updates_tsv=$(echo "$response" | jq -r '
- .result[] | [
- .update_id,
- (.callback_query.data // ""),
- (.callback_query.id // ""),
- (.callback_query.message.chat.id // ""),
- (.callback_query.message.message_id // ""),
- (.message.chat.id // ""),
- (.message.text // "")
- ] | @tsv
- ' 2>/dev/null) || true
-
- while IFS=$'\t' read -r uid cbd cbi cci cmi mci mtx; do
- [ -z "$uid" ] && continue
- offset=$((uid + 1))
- if [ -n "$cbd" ]; then
- if ! is_bot_admin "$cci"; then tg_answer_cb "$cbi" "Нет доступа" > /dev/null; continue; fi
- bot_handle_callback "$cci" "$cmi" "$cbi" "$cbd"
- elif [ -n "$mci" ] && [ -n "$mtx" ]; then
- if ! is_bot_admin "$mci"; then tg_send "$mci" "⛔ Нет доступа.\nChat ID: $mci" "" > /dev/null; continue; fi
- if [[ "$mtx" == "/start" || "$mtx" == "/menu" ]]; then
- bot_main_menu "$mci"
+ source "$WARP_CONF" 2>/dev/null
+ local response
+ response=$(curl -s --max-time 35 \
+ "https://api.telegram.org/bot${BOT_TOKEN}/getUpdates?offset=${offset}&timeout=30" 2>/dev/null)
+ [ -z "$response" ] && sleep 2 && continue
+ local ok; ok=$(echo "$response" | jq -r '.ok // "false"')
+ [ "$ok" != "true" ] && sleep 5 && continue
+ local cnt; cnt=$(echo "$response" | jq '.result | length')
+ for (( i=0; i /dev/null; continue; fi
+ bot_handle_callback "$cci" "$cmi" "$cbi" "$cbd"
else
- tg_send "$mci" "Используйте /start или /menu" "" > /dev/null
+ local mci mtx
+ mci=$(echo "$upd" | jq -r '.message.chat.id // empty')
+ mtx=$(echo "$upd" | jq -r '.message.text // empty')
+ if [ -n "$mci" ] && [ -n "$mtx" ]; then
+ if ! is_bot_admin "$mci"; then tg_send "$mci" "⛔ Нет доступа.\nChat ID: $mci" "" > /dev/null; continue; fi
+ if [[ "$mtx" == "/start" || "$mtx" == "/menu" ]]; then
+ bot_main_menu "$mci"
+ else
+ tg_send "$mci" "Используйте /start или /menu" "" > /dev/null
+ fi
+ fi
fi
- fi
- done <<< "$updates_tsv"
+ done
+ done
}
# ─── Bot menu (SSH) ──────────────────────────────────────────