Телеграм бот сразу же останавливается при запуске

import telebot # сама библиотека telebot
import time # необходим для cрока /mute и автоматического размута после срока мута
bot = telebot.TeleBot('Token') # в TOKEN мы вводим непосредственно сам полученный токен.
stats = {}
@bot.message_handler(commands=['start'])
def start(message):
    bot.reply_to(message, "Привет! Я бот для управления чатом. Напиши /help, чтобы узнать, что я умею.")

    @bot.message_handler(commands=['help'])
    def help(message):
        bot.reply_to(message,
                     "/kick - кикнуть пользователя\n/mute - замутить пользователя на определенное время\n/unmute - размутить пользователя\n/stats - показать статистику чата\n/selfstat - показать свою статистику")

        @bot.message_handler(commands=['kick'])
        def kick_user(message):
            if message.reply_to_message:
                chat_id = message.chat.id
                user_id = message.reply_to_message.from_user.id
                user_status = bot.get_chat_member(chat_id, user_id).status
                if user_status == 'administrator' or user_status == 'creator':
                    bot.reply_to(message, "Невозможно кикнуть администратора.")
                else:
                    bot.kick_chat_member(chat_id, user_id)
                    bot.reply_to(message, f"Пользователь {message.reply_to_message.from_user.username} был кикнут.")
            else:
                bot.reply_to(message,
                             "Эта команда должна быть использована в ответ на сообщение пользователя, которого вы хотите кикнуть.")

                @bot.message_handler(commands=['mute'])
                def mute_user(message):
                    if message.reply_to_message:
                        chat_id = message.chat.id
                        user_id = message.reply_to_message.from_user.id
                        user_status = bot.get_chat_member(chat_id, user_id).status
                        if user_status == 'administrator' or user_status == 'creator':
                            bot.reply_to(message, "Невозможно замутить администратора.")
                        else:
                            duration = 60  # Значение по умолчанию - 1 минута
                            args = message.text.split()[1:]
                            if args:
                                try:
                                    duration = int(args[0])
                                except ValueError:
                                    bot.reply_to(message, "Неправильный формат времени.")
                                    return
                                if duration < 1:
                                    bot.reply_to(message, "Время должно быть положительным числом.")
                                    return
                                if duration > 1440:
                                    bot.reply_to(message, "Максимальное время - 1 день.")
                                    return
                            bot.restrict_chat_member(chat_id, user_id, until_date=time.time() + duration * 60)
                            bot.reply_to(message,
                                         f"Пользователь {message.reply_to_message.from_user.username} замучен на {duration} минут.")
                    else:
                        bot.reply_to(message,
                                     "Эта команда должна быть использована в ответ на сообщение пользователя, которого вы хотите замутить.")

                        @bot.message_handler(commands=['unmute'])
                        def unmute_user(message):
                            if message.reply_to_message:
                                chat_id = message.chat.id
                                user_id = message.reply_to_message.from_user.id
                                bot.restrict_chat_member(chat_id, user_id, can_send_messages=True,
                                                         can_send_media_messages=True, can_send_other_messages=True,
                                                         can_add_web_page_previews=True)
                                bot.reply_to(message,
                                             f"Пользователь {message.reply_to_message.from_user.username} размучен.")
                            else:
                                bot.reply_to(message,
                                             "Эта команда должна быть использована в ответ на сообщение пользователя, которого вы хотите размутить.")

                                @bot.message_handler(commands=['stats'])
                                def chat_stats(message):
                                    chat_id = message.chat.id
                                    if chat_id not in stats:
                                        bot.reply_to(message, "Статистика чата пуста.")
                                    else:
                                        total_messages = stats[chat_id]['total_messages']
                                        unique_users = len(stats[chat_id]['users'])
                                        bot.reply_to(message,
                                                     f"Статистика чата:\nВсего сообщений: {total_messages}\nУникальных пользователей: {unique_users}")

                                        @bot.message_handler(commands=['selfstat'])
                                        def user_stats(message):
                                            chat_id = message.chat.id
                                            user_id = message.from_user.id
                                            username = message.from_user.username
                                            if chat_id not in stats:
                                                bot.reply_to(message, "Статистика чата пуста.")
                                            else:
                                                if user_id not in stats[chat_id]['users']:
                                                    bot.reply_to(message, "Вы еще не отправляли сообщений в этом чате.")
                                                else:
                                                    user_messages = stats[chat_id]['users'][user_id]['messages']
                                                    total_messages = stats[chat_id]['total_messages']
                                                    percentage = round(user_messages / total_messages * 100, 2)
                                                    bot.reply_to(message,
                                                                 f"Статистика для пользователя @{username}:\nВсего сообщений: {user_messages}\nПроцент от общего количества сообщений: {percentage}%")
                                                    bad_words = ['анкета', 'ссылка', 'уникальное предложение']
                                                    def check_message(message):
                                                        for word in bad_words:
                                                            if word in message.text.lower():
                                                                return True
                                                        return False
                                                    @bot.message_handler(func=lambda message: True)
                                                    def handle_message(message):
                                                        # проверяем сообщение на наличие запрещенных слов
                                                        if check_message(message):
                                                            # если есть хотя бы одно запрещенное слово, кикаем пользователя
                                                            bot.kick_chat_member(message.chat.id, message.from_user.id)
                                                            bot.send_message(message.chat.id, f"Пользователь {message.from_user.username} был удален из чата за использование запрещенных слов")
                                                        else:
                                                            # если запрещенных слов нет, обрабатываем сообщение дальше
                                                            print(message.text)
                                                            bot.infinity_polling(none_stop=True)
                                                            

Ответы (1 шт):

Автор решения: mrBars1k

У Вас строка с запуском цикла бота bot.infinity_polling(none_stop=True) (последняя строка кода) находится в функции и под условием else.

Уберите все отступы и бот запустится.

→ Ссылка