0

I wrote a bot to get photo charts in tradingview:

from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
import sellbot
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram import Bot, Dispatcher, executor, types
from datetime import datetime


bot = Bot(token='54443480yi5vzrjMRivQ')
storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage)


class Form(StatesGroup):
    req = State()


@dp.message_handler(commands=['get'])
async def get(message):
    await Form.req.set()
    await message.answer(f'\U0001F916 request format:\nrialto\nticker\ntimeframe (minutes)')


@dp.message_handler(state=Form.req)
async def process_name(message: types.Message, state: FSMContext):
    await state.finish()
    splitmsg = message.text.split('\n')
    rialto, symbol, timeframe = splitmsg
    ticker = f'{rialto}:{symbol}'
    url = sellbot.send_chart(ticker, timeframe) #the function
    await message.answer_photo(url)


executor.start_polling(dp) 

which calls another function to get the url, it takes about 12 seconds to get it, and the bot stops and does not respond to other users, how can this be fixed? here the func:

def screenshot(driver, ticker, timeframe):
    chart_url = config.urls["tvchart"] + ('?symbol=' + ticker) if ticker != 'NONE' else ''
    driver.get(chart_url)
    print('Sleep for 1 seconds - wait for chart to load')
    time.sleep(1)
    ActionChains(driver, duration=1).send_keys(timeframe).send_keys(Keys.ENTER).perform()
    ActionChains(driver).key_down(Keys.ALT).key_down('s').key_up(
        Keys.ALT).perform()
    time.sleep(2.5)
    clipboard = Tk().clipboard_get()
    print('got link')
    return clipboard

def send_chart(ticker, timeframe):
    start_time = datetime.now()
    driver = setup()
    driver.get("https://www.tradingview.com")
    driver.add_cookie('...')
    screenshot_preurl = screenshot(driver, ticker, timeframe)
    return screenshot_url

here are the functions i use

General Grievance
  • 4,555
  • 31
  • 31
  • 45
Artik gnom
  • 25
  • 1
  • 7

0 Answers0