Код:
import requests
from bs4 import BeautifulSoup
import time
from parse.dataPy import *
from settings.settings import *
import telebot
from telebot import *
my_bot = telebot.TeleBot(TOKEN)
def create_keyboard():
keyboard = telebot.types.ReplyKeyboardMarkup(True, True)
return keyboard
@my_bot.message_handler(commands = ['rate'])
def messages(message):
loop = True
my_bot.send_message(message.chat.id, 'Выберите, курс какой валюты вы хотите узнать', reply_markup = create_keyboard().row('Bitcoin', 'Ethereum', 'Tether', 'Cardano', 'Binance Coin', 'XRP', 'Dogecoin', 'USD Coin', 'Polkadot', 'Uniswap'))
if message.text.lower() == 'bitcoin':
second = my_bot.send_message(message.chat.id, 'Выберите, каждую какую секунду вы хотите видеть курс валюты?', reply_markup = create_keyboard().row('1', '2', '3', '5', '10'))
source = requests.get(url_bitcoin, headers = headers)
html = BeautifulSoup(source.text, 'lxml')
while loop:
time.sleep(int(second))
my_bot.send_message(message.chat.id, html.find('span', {'class': 'pid-1057391-last', 'id': 'last_last'}).get_text(), reply_markup = create_keyboard().row('stop'))
elif message.text.lower() == 'ethereum':
my_bot.send_message(message.chat.id, 'Выберите, каждую какую секунду вы хотите видеть курс валюты?', reply_markup = create_keyboard().row('1', '2', '3', '5', '10'))
source = requests.get(url_ethereum, headers = headers)
html = BeautifulSoup(source.text, 'lxml')
my_bot.send_message(message.chat.id, html.find('span', {'class': 'pid-1061443-last', 'id': 'last_last'}).get_text(), reply_markup = create_keyboard().row('stop'))
elif message.text.lower() == 'tether':
my_bot.send_message(message.chat.id, 'Выберите, каждую какую секунду вы хотите видеть курс валюты?', reply_markup = create_keyboard().row('1', '2', '3', '5', '10'))
source = requests.get(url_tether, headers = headers)
html = BeautifulSoup(source.text, 'lxml')
my_bot.send_message(message.chat.id, html.find('span', {'class': 'pid-1061453-last', 'id': 'last_last'}).get_text(), reply_markup = create_keyboard().row('stop'))
elif message.text.lower() == 'cardano':
my_bot.send_message(message.chat.id, 'Выберите, каждую какую секунду вы хотите видеть курс валюты?', reply_markup = create_keyboard().row('1', '2', '3', '5', '10'))
source = requests.get(url_cardano, headers = headers)
html = BeautifulSoup(source.text, 'lxml')
my_bot.send_message(message.chat.id, html.find('span', {'class': 'pid-1062537-last', 'id': 'last_last'}).get_text(), reply_markup = create_keyboard().row('stop'))
elif message.text.lower() == 'binance coin':
my_bot.send_message(message.chat.id, 'Выберите, каждую какую секунду вы хотите видеть курс валюты?', reply_markup = create_keyboard().row('1', '2', '3', '5', '10'))
source = requests.get(url_binance_coin, headers = headers)
html = BeautifulSoup(source.text, 'lxml')
my_bot.send_message(message.chat.id, html.find('span', {'class': 'pid-1061448-last', 'id': 'last_last'}).get_text(), reply_markup = create_keyboard().row('stop'))
elif message.text.lower() == 'xrp':
my_bot.send_message(message.chat.id, 'Выберите, каждую какую секунду вы хотите видеть курс валюты?', reply_markup = create_keyboard().row('1', '2', '3', '5', '10'))
source = requests.get(url_xrp, headers = headers)
html = BeautifulSoup(source.text, 'lxml')
my_bot.send_message(message.chat.id, html.find('span', {'class': 'pid-1057392-last', 'id': 'last_last'}).get_text(), reply_markup = create_keyboard().row('stop'))
elif message.text.lower() == 'dogecoin':
my_bot.send_message(message.chat.id, 'Выберите, каждую какую секунду вы хотите видеть курс валюты?', reply_markup = create_keyboard().row('1', '2', '3', '5', '10'))
source = requests.get(url_dogecoin, headers = headers)
html = BeautifulSoup(source.text, 'lxml')
my_bot.send_message(message.chat.id, html.find('span', {'class': 'pid-1061477-last', 'id': 'last_last'}).get_text(), reply_markup = create_keyboard().row('stop'))
elif message.text.lower() == 'usd Coin':
my_bot.send_message(message.chat.id, 'Выберите, каждую какую секунду вы хотите видеть курс валюты?', reply_markup = create_keyboard().row('1', '2', '3', '5', '10'))
source = requests.get(url_usd_coin, headers = headers)
html = BeautifulSoup(source.text, 'lxml')
my_bot.send_message(message.chat.id, html.find('span', {'class': 'pid-1114630-last', 'id': 'last_last'}).get_text(), reply_markup = create_keyboard().row('stop'))
elif message.text.lower() == 'polkadot':
my_bot.send_message(message.chat.id, 'Выберите, каждую какую секунду вы хотите видеть курс валюты?', reply_markup = create_keyboard().row('1', '2', '3', '5', '10'))
source = requests.get(url_polkadot, headers = headers)
html = BeautifulSoup(source.text, 'lxml')
my_bot.send_message(message.chat.id, html.find('span', {'class': 'pid-1165465-last', 'id': 'last_last'}).get_text(), reply_markup = create_keyboard().row('stop'))
elif message.text.lower() == 'uniswap':
my_bot.send_message(message.chat.id, 'Выберите, каждую какую секунду вы хотите видеть курс валюты?', reply_markup = create_keyboard().row('1', '2', '3', '5', '10'))
source = requests.get(url_uniswap, headers = headers)
html = BeautifulSoup(source.text, 'lxml')
my_bot.send_message(message.chat.id, html.find('span', {'class': 'pid-1167226-last', 'id': 'last_last'}).get_text(), reply_markup = create_keyboard().row('stop'))
my_bot.polling(none_stop = True, interval = 0)
Я пишу: /rate
Ответ: Выберите, курс какой валюты вы хотите узнать
Я пишу: Bitcoin
Ответа не следует, и ошибок в командной строке нет
Но если сделать с командой(@my_bot.message_handler(commands = ['rate'])), а с текстом(@my_bot.message_handler(content_types = ['text'])), то всё прекрасно работает
Подскажите, в чём ошибка, или я что-то не так делаю?