import sys
import os
import asyncio

# Импортируем только учетные данные для подключения
from config.config import TC_SERVER, TC_LOGIN, TC_PASSWORD
from trueconf import Bot

async def send_proactive_message(target_user: str, message_text: str):
    # Создаем объект бота
    bot = Bot.from_credentials(
        server=TC_SERVER,
        username=TC_LOGIN,
        password=TC_PASSWORD,
        verify_ssl=False
    )

    # Запускаем фоновый цикл для поднятия WebSocket соединения
    bot_task = asyncio.create_task(bot.run())

    print("🔄 Подключение к серверу (ожидание 3 секунды)...")
    await asyncio.sleep(3) # Даем боту время поднять коннект

    try:
        print(f"✉️ Отправка сообщения пользователю {target_user}...")
        
        # Отправляем сообщение
        await bot.send_message(target_user, text=message_text, parse_mode="html")
        
        print("✅ Сообщение успешно отправлено!")
        
    except Exception as e:
        print(f"❌ Ошибка при отправке: {e}")
        
    finally:
        print("🛑 Завершение скрипта...")
        # Мгновенно убиваем процесс, чтобы не зависнуть на WebSockets
        os._exit(0)


if __name__ == "__main__":
    # Чтение аргументов из консоли
    if len(sys.argv) >= 3:
        user = sys.argv[1]
        text = " ".join(sys.argv[2:])
    else:
        # Для ручного теста (без аргументов)
        user = "ds.krivochenko@tcs.sibcem.ru" # Убедитесь, что чат с ботом уже инициирован!
        text = "🔔 <b>Уведомление:</b> Тестовое сообщение."

    try:
        asyncio.run(send_proactive_message(user, text))
    except KeyboardInterrupt:
        os._exit(0)