@Outcast_88

Экстренное завершение работы чат бота Telegram. Как решить проблему?

import webbrowser
import telebot
from telebot import types

bot = telebot.TeleBot('6081188721:AAGEmi6QWYJJ1mQhgj-eAMCG8Dnid3flCQw')


# Keyboard for the main menu
main_menu_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn_dakota = types.KeyboardButton("Dakota Warriors")
btn_history = types.KeyboardButton("История создания")
btn_feedback = types.KeyboardButton("Обратная связь с клубом")
btn_website = types.KeyboardButton("Клубный сайт")
main_menu_keyboard.add(btn_dakota, btn_history, btn_feedback, btn_website)

# Keyboard for returning to the main menu
back_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn_back = types.KeyboardButton("Вернуться в главное меню")
back_keyboard.add(btn_back)


# Handler for the /start command
@bot.message_handler(commands=['start'])
def start(message):
    bot.send_message(message.chat.id, text="Привет, {0.first_name}! Я чат-бот ЛФК Dakota Warriors! "
                                           "Воспользуйся главным меню".format(message.from_user),
                     reply_markup=main_menu_keyboard)


# Handler for the main menu buttons
@bot.message_handler(func=lambda message: message.text in ["Dakota Warriors", "История создания",
                                                           "Обратная связь с клубом", "Клубный сайт"])
def handle_main_menu(message,):
    if message.text == "Dakota Warriors":
        dakota_menu_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
        btn_team = types.KeyboardButton("Состав команды")
        btn_matches = types.KeyboardButton("Ближайшие игры")
        btn_tickets = types.KeyboardButton("Покупка билетов")
        dakota_menu_keyboard.add(btn_team, btn_matches, btn_tickets, btn_back)
        bot.send_message(message.chat.id, text="Выбери то, что тебя интересует", reply_markup=dakota_menu_keyboard)
    elif message.text == "История создания":
        bot.send_photo(message.chat.id, photo=open(r"C:\Users\roma-\Desktop\dakota.jpg", 'rb'),
                       caption="ИСТОРИЯ: Любительский футбольный клуб Dakota Warriors был создан 12 ноября 2022 года, "
                               "за несколько месяцев до начала великого шествия наших гладиаторов на территории "
                               "футбольного поля. Родоначальниками клуба являются: Ахвердян Гурген (капитан и президент) Название и эмблема клуба были выбраны "
                               "под стиль и характер игры команды.")
    elif message.text == "Обратная связь с клубом":
        bot.send_message(message.chat.id, text="Для обратной связи с клубом мы можете: "
                                               "\nНаписать на почту клуба - warriorsdakotakk@gmail.com"
                                               "\nНаписать в личные сообщения группы Вконтакте - vk.com/dakota_warriors")
    elif message.text == "Клубный сайт":
        webbrowser.open("http://lfkdakotawarriors.tilda.ws")

    # Обработчик кнопок меню команды Dakota Warriors
    @bot.message_handler(func=lambda message: message.text in ["Состав команды", "Ближайшие игры",
                                                               "Покупка билетов", "Вернуться в главное меню"])
    def handle_dakota_menu(message):
        if message.text == "Состав команды":
            players_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
            btn_goalkeepers = types.KeyboardButton("Вратари")
            btn_defenders = types.KeyboardButton("Защитники")
            btn_midfielders = types.KeyboardButton("Полузащитники")
            btn_forwards = types.KeyboardButton("Нападающие")
            players_keyboard.add(btn_goalkeepers, btn_midfielders, btn_defenders, btn_forwards, btn_back)
            bot.send_message(message.chat.id, text="Выбери интересующую позицию", reply_markup=players_keyboard)
        elif message.text == "Ближайшие игры":
            # Обработка ближайших игр
            pass
        elif message.text == "Покупка билетов":
            # Обработка покупки билетов
            pass
        elif message.text == "Вернуться в главное меню":
            bot.send_message(message.chat.id, text="Вы вернулись в главное меню", reply_markup=main_menu_keyboard)

    # Обработчик кнопок позиций в команде
    @bot.message_handler(func=lambda message: message.text in ["Вратари", "Защитники", "Полузащитники", "Нападающие"])
    def handle_positions(message, players_keyboard):
        players = {
            "Вратари": ["Крикунов Никита", "Ярцев Владислав", ],
            "Защитники": ["Юшков Владислав", "Задорожный Ярослав", "Жуков Никита", "Ефентьев Богдан"],
            "Полузащитники": ["Ахвердян Гурген", "Шевцов Александр", "Чудаков Виталий", "Евтушенко Артем"],
            "Нападающие": ["Хуршудян Ерванд", "Миронов Денис", ]
        }
        if message.text in players:
            position_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
            position_keyboard.add(*players[message.text], btn_back)
            bot.send_message(message.chat.id, text="Выберите игрока", reply_markup=position_keyboard)
        elif message.text == "Назад":
            bot.send_message(message.chat.id, text="Выберите интересующую позицию", reply_markup=players_keyboard)
    # Обработчик кнопок игроков
    @bot.message_handler(func=lambda message: message.text in ["Крикунов Никита", "Ярцев Владислав",
                                                               "Ахвердян Гурген", "Шевцов Александр", "Чудаков Виталий",
                                                               "Евтушенко Артем", "Юшков Владислав",
                                                               "Задорожный Ярослав",
                                                               "Жуков Никита", "Хуршудян Ерванд", "Миронов Денис",
                                                               "Ефентьев Богдан"])
    @bot.message_handler(func=lambda message: True)
    def handle_message(message):
        player_data = {
            "Крикунов Никита": {
                "caption": "Крикунов Никита Федорович",
                "details": "Дата рождения: 10 марта 2006 года\nИгровой номер: 99\nВедущая нога: Правая\nРост: 174 см\nВес: 63 кг",
                "stats_link": "https://afl.ru/players/krikunov-nikita-637762",
                "photo_path": r"C:\Users\roma-\Desktop\637762.jpg"
            },
            "Ярцев Владислав": {
                "caption": "Ярцев Владислав Юрьевич",
                "details": "Дата рождения: 10 июня 2006 г.\nИгровой номер № 16\nВедущая нога: Правая\nРост: 198 см\nВес: 88 кг",
                "stats_link": "https://afl.ru/players/yartsev-vladislav-645634",
                "photo_path": r"C:\Users\roma-\Desktop\645634.jpg"
            },
            # Add other player data entries here
        }

        @bot.message_handler(func=lambda message: True)
        def handle_message(message):
            player_name = message.text
            if player_name in player_data:
                player = player_data[player_name]
                caption = player['caption']
                details = player['details']
                stats_link = player['stats_link']
                photo_path = player['photo_path']
                photo = open(photo_path, 'rb')
                bot.send_photo(message.chat.id, photo, caption=caption)
                bot.send_message(message.chat.id, details)
                bot.send_message(message.chat.id, stats_link)

        bot.polling(none_stop=True)


Пишу чат-бота и не могу понять почему не может запуститься бот. Экстренное завершение без ошибки. Какая может быть причина? (не судите строго код, т.к программирую всего 2 дня)
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ответы на вопрос 1
nki
@nki
bezkart.ru готовая система лояльности
т.к программирую всего 2 дня

Тогда вам не с бота надо начинать, а уверенно знать язык и его основные конструкции. Успеете еще ботов написать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы