#!/bin/bash
# Запуск бота через SSH туннель на финский сервер

FINLAND_SERVER="62.60.252.121"
SSH_PORT="10809"
PIDFILE="/tmp/ssh_tunnel_${SSH_PORT}.pid"

cd /home/matrixhasyou/domovoy_bot

# Функция очистки
cleanup() {
    echo "🛑 Остановка SSH туннеля..."
    if [ -f "$PIDFILE" ]; then
        kill $(cat $PIDFILE) 2>/dev/null
        rm -f $PIDFILE
    fi
    exit 0
}

trap cleanup EXIT INT TERM

# Проверяем есть ли уже туннель
if [ -f "$PIDFILE" ] && kill -0 $(cat $PIDFILE) 2>/dev/null; then
    echo "✅ SSH туннель уже запущен (PID: $(cat $PIDFILE))"
else
    echo "🚀 Запуск SSH туннеля на ${FINLAND_SERVER}:${SSH_PORT}..."
    ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -o ServerAliveCountMax=3 \
        -N -D 127.0.0.1:${SSH_PORT} root@${FINLAND_SERVER} &
    echo $! > $PIDFILE
    echo "✅ SSH туннель запущен (PID: $!)"
    sleep 2
fi

# Проверяем что туннель работает
if ! nc -z 127.0.0.1 ${SSH_PORT} 2>/dev/null; then
    echo "❌ SSH туннель не работает!"
    exit 1
fi

# Обновляем .env для использования туннеля
cp .env .env.backup
sed -i "s/PROXY_PORT=.*/PROXY_PORT=${SSH_PORT}/" .env
sed -i "s/USE_PROXY=.*/USE_PROXY=true/" .env

echo "✅ Прокси настроен на 127.0.0.1:${SSH_PORT}"

# Останавливаем старого бота
pkill -f "python.*main.py" 2>/dev/null
sleep 2

# Запускаем бота
echo "🚀 Запуск бота..."
nohup venv/bin/python3 main.py > logs/bot_stdout.log 2>&1 &
BOT_PID=$!
echo "✅ Бот запущен (PID: $BOT_PID)"

# Ждём немного и проверяем
sleep 5
if ps -p $BOT_PID > /dev/null; then
    echo "✅ Бот работает!"
    tail -10 logs/bot.log | grep -E "✅|🚀|INFO"
else
    echo "❌ Бот упал! Проверяй логи:"
    tail -50 logs/bot.log
fi

echo ""
echo "💡 Для остановки: ./stop.sh"
echo "💡 Туннель закроется автоматически при выходе"
