Spaces:
Sleeping
Sleeping
# Use a pipeline as a high-level helper | |
from transformers import pipeline | |
import json | |
import requests | |
import datetime | |
import sqlite3 | |
with open('secrets.json') as f: | |
content = json.load(f) | |
# API DOC: https://finnhub.io/docs/api/introduction | |
def get_finnhub_data(example: str) -> json: | |
""" | |
Pass in the "example" string from the API documentation. It changes for every endpoint. | |
:param1 example: '/company-news?symbol=AAPL&from=2023-08-15&to=2023-08-20' | |
""" | |
base_url = 'https://finnhub.io/api/v1//' | |
token = f"&token={content['finhubapi_key']}" | |
request = requests.get(f"{base_url}{example}{token}") | |
return request.json() | |
def sentiment_analysis(headline:str) -> str: | |
""" | |
Pass in a headline and get back a sentiment analysis of the text. | |
This only works for one headline at a time; Should be expanded to work for a list of headlines. | |
:param1 headline: Text string: 'Apple is the best company in the world' | |
""" | |
nlp = pipeline("sentiment-analysis") | |
return nlp(headline) | |
## get news articles for a company | |
#res_news = get_finnhub_data('/company-news?symbol=AAPL&from=2023-08-15&to=2023-08-20') | |
#print(res_news[0].keys()) | |
#for item in res_news: | |
#dt_object = datetime.datetime.fromtimestamp(item['datetime']).strftime("%Y-%m-%d") | |
#print(item['headline'], item['source'], dt_object) | |
## get basic financials | |
#res_basic_fins = get_finnhub_data('/stock/metric?symbol=AAPL&metric=all') | |
#print(res_basic_fins['metric'].keys()) | |
#print(res_basic_fins['series']['annual'].keys()) | |
#print(res_basic_fins['series']['quarterly'].keys()) | |
## get insider sentiment | |
#res_sentiment = get_finnhub_data('/stock/insider-sentiment?symbol=AAPL') | |
#print(res_sentiment['data'][0].keys()) | |
# put data in database after figuring out what data we want to store | |
conn = sqlite3.connect('fin_data.db') | |
c = conn.cursor() | |
c.execute(""" | |
select * from test | |
""") | |
print(c.fetchall()) | |
conn.commit() | |
conn.close() |