Задать вопрос
@putilich2

Как записать сообщение пользователя тг бота в переменную и передать ее в парсер(переменная это абривиатура криптовалюты),?

import telebot
from config import token
from telebot import types
import requests


# Создаем бота
bot = telebot.TeleBot(token)
# Команда start
@bot.message_handler(commands=["start"])
def start(m, res=False):
        # Добавляем две кнопки
        markup=types.ReplyKeyboardMarkup(resize_keyboard=True)
        item1=types.KeyboardButton("Добавить криптовалюту")
        item2=types.KeyboardButton("Посмотреть последние транзакции")
        markup.add(item1)
        markup.add(item2)
        bot.send_message(m.chat.id, 'Нажми: \n\nДобавить пару криптовалют для добовления пары криптовалют в список \n\nПосмотреть последние транзакции — Для того чтоб увидеть информацию о криптовалюте которую вы внеси в список',  reply_markup=markup)

# Получение сообщений от юзера
@bot.message_handler(content_types=["text"])
def handle_text(message):
    # Если юзер прислал 1, выдаем ему запрос
    if message.text.strip() == 'Добавить криптовалюту':
        bot.send_message(message.chat.id, 'Введите криптовалюту: ')
        text = message.text
        return text



    # Если юзер прислал 2, выдаем данные парсера
    elif message.text.strip() == 'Посмотреть последние транзакции':
        bot.send_message(message.chat.id, get_trades())


def get_trades(first_currency=handle_text, limit=150):
    response = requests.get(url=f"https://yobit.net/api/3/trades/{first_currency}_usdt?limit={limit}&ignore_invalid=1")

    with open("trades.text", "w") as file:
        file.write(response.text)

    sale = 0
    buy = 0

    for item in response.json()[f"{first_currency}_usdt"]:
        if item["type"] == "ask":
                sale = f"Цена продажи: {item['price']}\nКол-во проданных по прайсу монет: {item['amount']}"
    else:
        buy = f"Цена покупки: {item['price']}\nКол-во купленных по прайсу монет: {item['amount']}"


    return f"{sale}\n\n{buy}"

# Запускаем бота
bot.polling(none_stop=True, interval=0)
  • Вопрос задан
  • 401 просмотр
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Использовать register_next_step_handler пример.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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