Ошибка TypeError (Python, pyTelegrammBotAPI)
Пишу Telegramm бота на python. Использую 3 модуля. pyTelegrammBotAPI, wikipedia и pyshorteners. Все делают ботов с помощью функций, я же решил попробовать классом. Я раньше писал такого же бота на функциях. Он работает, всё ок. Но вот мой второй бот (про него вопрос) при запуске выдает ошибку "TypeError".
Ошибка: TypeError: recieve_text() missing 1 required positional argument: 'message'
Я как бы понимаю что он говорит о отсутствии аргумента "self", но он передан.
Я проверял синтаксис при помощи "PyLint", исправил все критические ошибки.
Код:
# Import "wikipedia" for make requests to Wikipedia and get Wikipedia's pages
# Import "pyshorteners" for creating short links on Wikipedia's pages
import wikipedia, pyshorteners
# Set wikipedia language "ru"
wikipedia.set_lang("ru")
class my_bot():
import telebot # Import "telebot" for connecting to telegramm API and programming bot
bot = telebot.TeleBot("[Тут я указал API токен]") # API token
def __init__(self):
pass
@bot.message_handler(commands=['start']) # If receive command "start":
def command_start(self, message):
self.bot.send_message(message.chat.id, "Приветствую, я Wiki bot!")
self.bot.send_message(message.chat.id, "--")
self.bot.send_message(message.chat.id, "Пришлите мне любое предложение или слово и я найду информацию про него.")
self.bot.send_message(message.chat.id, "Источник всей информации — Wikipedia")
@bot.message_handler(content_types=['text']) # If receive message with text:
def recieve_text(self, message):
try: # I use "try", because if some error happened, bot will not stop working. And he send a message to user
self.some_error = False
try: # I use "try", because i don't know is that page exist on Wikipedia
self.wiki_page = wikipedia.page(str(message.text))
except:
self.bot.send_message(message.chat.id, 'Извините. По вашему запросу ничего не найдено.')
self.some_error = True # I use "self.some_error" for indicating about error
if self.some_error == False: # Сhecks for errors
self.short_link = pyshorteners.Shortener()
self.link = 'Полностью: ' + str(self.short_link.tinyurl.short(self.wiki_page.url))
self.bot.send_message(message.chat.id, self.wiki_page.title)
self.bot.send_message(message.chat.id, wikipedia.summary(str(message.text)))
self.bot.send_message(message.chat.id, self.link)
self.wiki_page = ''
self.link = ''
self.short_link = ''
else: # If "self.some_error" is "True", it does not execute past code, but returns "self.some_error" value "False"
self.some_error = False
except: # If an error occurred in the bot:
self.bot.send_message(message.chat.id, 'Извините. Произошла ошибка.')
def bot_polling(self):
self.bot.polling(none_stop=True)
telegramm_bot = my_bot()
telegramm_bot.bot_polling()