Бот на Python
бот задуман так, чтоб отправлял комментарий под новым постом, но также, чтоб модерировал чат, делал капчу новым пользователям, запрещенные слова удалял и т.д.
в общем, бот комментирует пост, но сообщения пользователей игнорирует, в консоли выдает ошибку, якобы сообщение не от канала, после чего не выполняет функции для пользователей. Отдельно всё это дело работает. Тобишь, если разделить эти 2 момента, то в разных ботах обе будут правильно работать, но вместе они не хотят работать. Что только не перепробовал
код комментирования поста (не весь)
async def handle_channel_post(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
try:
# Проверяем, что сообщение переслано и содержит информацию о чате
if update.message and update.message.forward_from_chat:
forwarded_chat = update.message.forward_from_chat
# Проверяем, что сообщение переслано от канала
if forwarded_chat.type == "channel" and forwarded_chat.username:
# Проверяем, что канал не в белом списке
if forwarded_chat.username not in WHITELISTED_CHANNELS and str(forwarded_chat.id) not in WHITELISTED_CHANNELS:
post_text = update.message.text or ""
await context.bot.send_message(
chat_id=update.message.chat_id,
text=f"📝 Комментарий бота: Новый пост из канала @{forwarded_chat.username}: {post_text[:100]}...",
reply_to_message_id=update.message.message_id
)
logger.info(f"Комментарий отправлен под постом из канала @{forwarded_chat.username}.")
else:
logger.info(f"Сообщение из канала @{forwarded_chat.username} проигнорировано (белый список).")
else:
logger.warning("Сообщение не переслано от имени канала или отсутствует имя канала.")
else:
logger.warning("Сообщение не переслано или не содержит информации о чате.")
except Exception as e:
logger.error(f"Ошибка при обработке поста из канала: {e}")
Для чего нам часть кода, которая работает верно? И где текст ошибки из консоли?
Код 4000-5000 символов, могу скинуть, но только частями. Консолько не помощник, он выдает: logger.warning("Сообщение не переслано от имени канала или отсутствует имя канала.") который я скинул в дополнении основного вопроса. Тобишь, другие коды отменяются и выдает "Сообщение не переслано от имени канала.". Пробовал 2 логики сделать, чтобы 2 разные функции никак не соприкасались, никак. Все изменения = "Сообщение не переслано от имени канала."
Ууу бот, ботяра, играть пусть научится нормально, анскилл, ботик
Что за бездарь мне в комментариях пишет?