UNPKG

@gabriel3615/ta_analysis

Version:

stock ta analysis

52 lines (44 loc) 1.45 kB
import { ChartImg, TimeFrameConfig } from '../types.js'; import axios from 'axios'; import { globalLogger } from '../util/logger.js'; import imageToBase64 from 'image-to-base64'; export async function fetchChartData( symbol: string, timeFrameConfigs: TimeFrameConfig[] ) { const apiKey = process.env.CHART_IMG_API_KEY; if (!apiKey) { throw new Error('No API key provided for ChartImg'); } const url = 'https://api.chart-img.com/v2/tradingview/advanced-chart/storage'; const chartData: ChartImg[] = []; for (const timeFrameConfig of timeFrameConfigs) { const data = { symbol, interval: timeFrameConfig.interval, studies: timeFrameConfig.studies, }; try { const response = await axios.post(url, data, { headers: { 'x-api-key': apiKey, 'content-type': 'application/json', }, responseType: 'json', // Optional, but good practice to specify expected response type }); const imageBase64 = await imageToBase64(response.data.url); chartData.push({ title: `${symbol}-${timeFrameConfig.interval}`, url: response.data.url, size: response.data.size, expireAt: response.data.expireAt, createdAt: response.data.createdAt, media_type: 'image/png', imageBase64, }); } catch (error) { globalLogger.error('Error fetching chart data:', error); } } return chartData; }