Почему при попытке запуска программы выскакивает ошибка?
При попытке запуске программы выскакивает данная ошибка:
Traceback (most recent call last):
File "c:\Bots_Telegram\Telegramm\BUDDY.py", line 141, in <module>
bot.polling(none_stop=True)
File "C:\Users\ryzhe\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\__init__.py", line 618, in polling
self.__threaded_polling(non_stop, interval, timeout, long_polling_timeout, allowed_updates)
File "C:\Users\ryzhe\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\__init__.py", line 680, in __threaded_polling
raise e
File "C:\Users\ryzhe\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\__init__.py", line 640, in __threaded_polling
self.worker_pool.raise_exceptions()
File "C:\Users\ryzhe\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\util.py", line 143, in raise_exceptions
raise self.exception_info
File "C:\Users\ryzhe\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\util.py", line 89, in run
task(*args, **kwargs)
TypeError: callback_inline() missing 1 required positional argument: 'call'
Код:
# coding: utf-8
import types
if __name__ == "__main__":
import telebot
import config
import tg_analytic
from telebot import types
bot = telebot.TeleBot(config.TOKEN)
count = 0
@bot.message_handler(commands=["start"])
def welcome(message):
username = message.from_user.first_name
tg_analytic.statistics(message.chat.id, message.text)
bot.send_message(
message.chat.id,
"Привет, "
+ str(username)
+ "! На связи IT Buddy бот МТС Банка. Очень рад с тобой познакомиться. (картинка Панда кодит) ? Сегодня проведу для тебя квиз по Java, frontend и UX дизайну. Выбери направление, набери 4 балла и получи приз. Поехали!",
)
markup = types.InlineKeyboardMarkup(row_width = 1)
item1 = types.InlineKeyboardButton("Java разработка", callback_data = "0")
item2 = types.InlineKeyboardButton("Frontend разработка", callback_data = "1")
item3 = types.InlineKeyboardButton("UX дизайн", callback_data = "2")
markup.add(item1, item2, item3)
bot.send_message(
message.chat.id,
"Текст: выбери направление",
reply_markup=markup,
)
@bot.message_handler(content_types=["text"])
def send_text(message):
tg_analytic.statistics(message.chat.id, message.text)
if message.text[:10] == "статистика" or message.text[:10] == "Статистика":
st = message.text.split(" ")
if "txt" in st or "тхт" in st:
tg_analytic.analysis(st, message.chat.id)
with open("%s.txt" % message.chat.id, "r", encoding="UTF-8") as file:
bot.send_document(message.chat.id, file)
tg_analytic.remove(message.chat.id)
else:
messages = tg_analytic.analysis(st, message.chat.id)
bot.send_message(message.chat.id, messages)
else:
tg_analytic.statistics(message.chat.id, message.text)
bot.send_message(message.chat.id, "Ой, ой... Я тебя не понял. ?")
bot.send_sticker(
message.chat.id,
"CAACAgIAAxkBAAIP4F92EYCC4n5T7uepsto0eIO_EAABqwACBAADll-TFeM60_pUapUTGwQ",
)
bot.send_message(
message.chat.id,
"Я обязательно ✍️ передам моим создателям твой запрос и смогу в будущем лучше тебя понимать. ?"
+ "\n"
+ "\n"
+ "Чтобы продолжить разговор, нажми на серые кнопки выше.",
)
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(count, call):
if call.message:
if call.data == "0":
tg_analytic.statistics(call.message.chat.id, call.message.text)
markup = types.InlineKeyboardMarkup(row_width = 2)
item1 = types.InlineKeyboardButton("Верно", callback_data = "3")
item2 = types.InlineKeyboardButton("Неверно", callback_data = "4")
markup.add(item1, item2)
bot.send_message(
call.message.chat.id,
"Отлично! Всего 10 вопросов, ответь верно на 4 из них и получи приз."
+ "\n"
+ "\n"
+ "Вопрос 1: При возникновении любого исключения JVM гарантированно сгенерирует стек-трейс."
+ "\n"
+ "\n"
+ "Для выбора варианта нажми на цифру. ?",
reply_markup=markup,
)
elif call.data == "4":
tg_analytic.statistics(call.message.chat.id, call.message.text)
count += 1
markup = types.InlineKeyboardMarkup(row_width = 1)
item1 = types.InlineKeyboardButton("Дальше?", callback_data = "5")
markup.add(item1)
bot.send_message(
call.message.chat.id,
"Верно! Твои очки: " + str(count),
reply_markup=markup,
)
elif call.data == "3":
tg_analytic.statistics(call.message.chat.id, call.message.text)
markup = types.InlineKeyboardMarkup(row_width = 1)
item1 = types.InlineKeyboardButton("Дальше?", callback_data = "5")
markup.add(item1)
bot.send_message(
call.message.chat.id,
"Неверно! Твои очки: " + str(count),
reply_markup=markup,
)
elif call.data == "5":
tg_analytic.statistics(call.message.chat.id, call.message.text)
markup = types.InlineKeyboardMarkup(row_width = 2)
item1 = types.InlineKeyboardButton("Верно", callback_data = "6")
item2 = types.InlineKeyboardButton("Неверно", callback_data = "7")
markup.add(item1, item2)
bot.send_message(
call.message.chat.id,
"Вопрос 2: Entity class не может быть абстрактным.",
reply_markup=markup,
)
elif call.data == "7":
tg_analytic.statistics(call.message.chat.id, call.message.text)
count += 1
markup = types.InlineKeyboardMarkup(row_width = 1)
item1 = types.InlineKeyboardButton("Дальше?", callback_data = "8")
markup.add(item1)
bot.send_message(
call.message.chat.id,
"Верно! Твои очки: " + str(count),
reply_markup=markup,
)
elif call.data == "6":
tg_analytic.statistics(call.message.chat.id, call.message.text)
markup = types.InlineKeyboardMarkup(row_width = 1)
item1 = types.InlineKeyboardButton("Дальше?", callback_data = "8")
markup.add(item1)
bot.send_message(
call.message.chat.id,
"Неверно! Твои очки: " + str(count),
reply_markup=markup,
)
bot.polling(none_stop=True)
Думаю, ошибка возникает из-за передачи переменной count в функцию def callback_inline(count, call):, вопрос: почему?