Мне нужно чтобы бот пересылал сообщения из source_group в target_group, надо сделать чтобы он их пересылал моментально, но у меня он даже не читает сообщения в группе источник вот код:
import telebot
from telebot import types
TOKEN = ''
bot = telebot.TeleBot(TOKEN)
target_groups = set()
source_groups = set()
@bot.message_handler(commands=['start'])
def welcome(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item1 = types.KeyboardButton("Добавить источник группу ")
item2 = types.KeyboardButton("Добавить целевую группу")
item3 = types.KeyboardButton("Помощь")
item4 = types.KeyboardButton("Список групп")
item5 = types.KeyboardButton("Удалить группу")
markup.add(item1, item2, item3, item4, item5)
bot.send_message(message.chat.id, 'Привет, я бот для публикации постов в группах по указаному времени', reply_markup=markup)
@bot.message_handler(content_types=['text'])
def add_group(message):
if message.text == 'Добавить источник группу':
bot.send_message(message.chat.id, 'Введите название через @ , которую нужно добавить в источник:')
bot.register_next_step_handler(message, process_group_link_step)
elif message.text == 'Добавить целевую группу':
bot.send_message(message.chat.id, 'Введите название через @, которую нужно добавить в целевые:')
bot.register_next_step_handler(message, process_target_group_link_step)
elif message.text == 'Список групп':
bot.send_message(message.chat.id, f"Источники новостей:\n{source_groups}\n\nЦелевые группы:\n{target_groups}")
elif message.text == 'Удалить группу':
bot.send_message(message.chat.id, 'Введите ID группы, которую нужно удалить:')
bot.register_next_step_handler(message, process_remove_group_step)
def process_group_link_step(message):
try:
source_group_link = message.text.strip()
source_group = bot.get_chat(source_group_link)
source_group_id = source_group.id
bot_member = bot.get_chat_member(source_group_id, bot.get_me().id)
if bot_member.status in ['administrator', 'creator']:
source_groups.add(source_group_id)
bot.reply_to(message,
f'Группа {source_group.title} ({source_group.id}) добавлена в список источников новостей')
else:
bot.reply_to(message, 'Бот не является администратором группы')
except Exception as e:
bot.reply_to(message, 'Произошла ошибка при добавлении группы, попробуйте еще раз')
print(e)
def process_target_group_link_step(message):
try:
target_group_link = message.text.strip()
target_group = bot.get_chat(target_group_link)
target_group_id = target_group.id
bot_member = bot.get_chat_member(target_group_id, bot.get_me().id)
if bot_member.status in ['administrator', 'creator']:
target_groups.add(target_group_id)
bot.reply_to(message, f'Группа {target_group.title} ({target_group.id}) добавлена в список целевых групп')
else:
bot.reply_to(message, 'Бот не является администратором группы')
except Exception as e:
bot.reply_to(message, 'Произошла ошибка при добавлении группы, попробуйте еще раз')
print(e)
def process_remove_group_step(message):
try:
group_id = int(message.text.strip())
if group_id in source_groups:
source_groups.remove(group_id)
bot.reply_to(message, f'Группа с ID {group_id} удалена из списка источников новостей')
elif group_id in target_groups:
target_groups.remove(group_id)
bot.reply_to(message, f'Группа с ID {group_id} удалена из списка целевых групп')
else:
bot.reply_to(message, f'Группа с ID {group_id} не найдена в списках')
except ValueError:
bot.reply_to(message, 'Неверный формат ID группы')
except Exception as e:
bot.reply_to(message, 'Произошла ошибка при удалении группы, попробуйте еще раз')
print(e)
@bot.message_handler(content_types=['text', 'photo', 'video'])
def forward_message_to_target_group(message):
chat_id = message.chat.id
if chat_id in source_groups:
for target_group_id in target_groups:
if message.content_type == 'text':
send_text_message(target_group_id, message)
elif message.content_type == 'photo':
send_photo_message(target_group_id, message)
elif message.content_type == 'video':
send_video_message(target_group_id, message)
def send_text_message(chat_id, message):
caption_entities = message.parse_entities(types.MessageEntity)
bot.send_message(chat_id, text=message.text, entities=caption_entities)
def send_photo_message(chat_id, message):
caption_entities = message.parse_entities(types.MessageEntity)
bot.send_photo(chat_id, photo=message.photo[-1].file_id, caption=message.caption, caption_entities=caption_entities)
def send_video_message(chat_id, message):
caption_entities = message.parse_entities(types.MessageEntity)
bot.send_video(chat_id, video=message.video.file_id, caption=message.caption, caption_entities=caption_entities)