P
P
putilich22022-03-21 15:31:05
Python
putilich2, 2022-03-21 15:31:05

How to write the message of the user tg bot into a variable and pass it to the parser (the variable is an abbreviation of cryptocurrency),?

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)

Answer the question

In order to leave comments, you need to log in

1 answer(s)
S
shurshur, 2022-03-22
@shurshur

Use the register_next_step_handler example .

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question