Хочу сделать небольшого бота с оповещениями. Состоит он из двух частей, первая которая смотрит цену и исправно водит ее в консоль, вторая часть отвечает за телегу и цикл сообщений, она тоже работает исправно. Но в ходе финального симбиоза никаких надписей, кроме цены в консоли, в телеге ничего не выходит, ошибок или надписи "None" в телеге тоже нету.
Данная функция у меня является ключиком для включения первой части
def cur():
currency = Currency()
currency.check_currency()
Эта функция должна была быть неким замочком и все в тории должно было бы работать, но именно при связи с функцией выше возникают проблемы и в телеге ничего не выходит
def f1():
var = cur()
return var
now = str(f1())
Если же заменить "var = cur()" на обычное уравнение, то в телеге исправно приходит значение "4"
def f1():
var = (2+2)
return var
now = str(f1())
Может это быть связано самой восприятием телегой или же необходимостью это каким-либо способом конвертировать в текст . Очень был бы рад помощи.
Исходный код:
import requests
from bs4 import BeautifulSoup
import telebot
import time
from multiprocessing import *
import schedule
class Currency:
BTCUSDT = 'https://ru.investing.com/crypto/bitcoin/btc-usd?cid=1035793'
headers = {"Юзер агент"}
current_converted_price = 0
def __init__(self):
self.current_converted_price = float(self.get_currency_price().replace(".", "").replace(",", "."))
def get_currency_price(self):
full_page = requests.get(self.BTCUSDT, headers=self.headers)
soup = BeautifulSoup(full_page.content, 'html.parser')
convert = soup.findAll("span", {"id": "last_last"})
return convert[0].text
def check_currency(self):
currency = float(self.get_currency_price().replace(".", "").replace(",", "."))
print("BTCUSDT=" + str(currency))
self.check_currency()
def cur():
currency = Currency()
currency.check_currency()
def f1():
var = cur()
return var
now = str(f1())
API_TOKEN = 'API'
bot = telebot.TeleBot(API_TOKEN)
def start_process(): p1 = Process(target=P_schedule.start_schedule, args=()).start()
class P_schedule():
def start_schedule():
schedule.every().day.at("03:00").do(P_schedule.send_message1)
schedule.every(3).seconds.do(P_schedule.send_message2)
while True:
schedule.run_pending()
time.sleep(1)
def send_message1():
bot.send_message(Chat_ID, f'{now}')
def send_message2():
bot.send_message(Chat_ID, f'{now}')
@bot.message_handler(commands=['start'])
def start(message):
bot.send_message(message.chat.id, 'Нажали start')
if __name__ == '__main__':
start_process()
try:
bot.polling(none_stop=True)
except:
pass