File size: 927 Bytes
2293f58
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# data/api_client.py
import yfinance as yf
from newsapi import NewsApiClient
from datetime import datetime, timedelta

class YahooFinanceClient:
    @staticmethod
    def download_data(ticker, start_str=None, end_str=None, period="6mo"):
        if period:
            return yf.download(ticker, period=period, progress=False)
        else:
            return yf.download(ticker, start=start_str, end=end_str, progress=False)

    @staticmethod
    def get_company_info(ticker):
        company = yf.Ticker(ticker)
        return company.info

class NewsAPIClient:
    def __init__(self, api_key):
        self.client = NewsApiClient(api_key=api_key)

    def get_news(self, shortName, days_back=15):
        from_date = (datetime.now() - timedelta(days=days_back)).strftime('%Y-%m-%d')
        return self.client.get_everything(q=shortName, from_param=from_date, language='en', sort_by='relevancy', page_size=20)['articles']