#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Скрипт для отправки массовой рассылки
"""

import asyncio
import json
import os
import sys
from telegram import Bot
from telegram.error import TelegramError

# Токен бота
BOT_TOKEN = "8445335004:AAGTfKA3eWSU9Cy-EAv5LVA0JIieBu-6iTA"

async def send_broadcast_message():
    """Отправка массовой рассылки"""
    
    # Сообщение для рассылки
    message_text = """🎉УРА!
🎨Генерируй и редактируй фотографии снова.
😊Доступ снова открыт!"""
    
    try:
        # Создаем бота
        bot = Bot(token=BOT_TOKEN)
        
        # Получаем список пользователей
        users_file = "/var/www/u0236315/data/www/consultsolution.ru/users.json"
        users = []
        
        if os.path.exists(users_file):
            with open(users_file, 'r', encoding='utf-8') as f:
                users_data = json.load(f)
                users = users_data.get('users', [])
        
        if not users:
            print("❌ Список пользователей пуст")
            return
        
        print(f"📢 Начинаем рассылку {len(users)} пользователям...")
        
        successful_sends = 0
        failed_sends = 0
        
        for user_id in users:
            try:
                await bot.send_message(
                    chat_id=user_id,
                    text=message_text,
                    parse_mode='HTML'
                )
                successful_sends += 1
                print(f"✅ Сообщение отправлено пользователю {user_id}")
                
                # Небольшая задержка между отправками
                await asyncio.sleep(0.1)
                
            except TelegramError as e:
                failed_sends += 1
                print(f"❌ Ошибка отправки пользователю {user_id}: {e}")
                continue
            except Exception as e:
                failed_sends += 1
                print(f"❌ Неожиданная ошибка для пользователя {user_id}: {e}")
                continue
        
        # Отчет
        print(f"\n📊 Отчет о рассылке:")
        print(f"👥 Всего пользователей: {len(users)}")
        print(f"✅ Успешно отправлено: {successful_sends}")
        print(f"❌ Ошибок: {failed_sends}")
        print(f"📈 Процент успеха: {(successful_sends/len(users)*100):.1f}%")
        
    except Exception as e:
        print(f"❌ Критическая ошибка при рассылке: {e}")

if __name__ == "__main__":
    asyncio.run(send_broadcast_message())
