Haskiii232,
import telebot
import json
import logging
API_TOKEN = 'YOUR_API_TOKEN'
ADMIN_ID = 'YOUR_ADMIN_ID' # ID администратора
bot = telebot.TeleBot(API_TOKEN)
# Настройка логирования
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# Загружаем список пользователей из файла users.json
with open('users.json', 'r') as f:
users = json.load(f)
@bot.message_handler(commands=['start', 'help'])
def send_welcome(message):
bot.reply_to(message, "Welcome to the bot!")
@bot.message_handler(commands=['broadcast'])
def ask_broadcast_message(message):
if str(message.chat.id) == ADMIN_ID:
msg = bot.reply_to(message, "Введите сообщение для рассылки или отправьте изображение:")
bot.register_next_step_handler(msg, process_broadcast)
else:
bot.reply_to(message, "У вас нет прав для использования этой команды.")
def process_broadcast(message):
if message.content_type == 'text':
broadcast_text = message.text
for user_id in users:
try:
bot.send_message(user_id, broadcast_text)
logger.info(f"Отправлено сообщение пользователю {user_id}")
except Exception as e:
logger.error(f"Не удалось отправить сообщение пользователю {user_id}: {e}")
elif message.content_type == 'photo':
photo = message.photo[-1].file_id # Берем фото в наилучшем качестве
caption = message.caption if message.caption else ""
for user_id in users:
try:
bot.send_photo(user_id, photo, caption=caption)
logger.info(f"Отправлено фото пользователю {user_id}")
except Exception as e:
logger.error(f"Не удалось отправить фото пользователю {user_id}: {e}")
else:
bot.reply_to(message, "Неподдерживаемый тип сообщения. Попробуйте снова.")
msg = bot.reply_to(message, "Введите сообщение для рассылки или отправьте изображение:")
bot.register_next_step_handler(msg, process_broadcast)
bot.infinity_polling()