news_api / app.py
ayinggg's picture
Update app.py
6d61c2c verified
import gradio as gr
import feedparser
def get_news(tickers):
ticker_list = [t.strip().upper() for t in tickers.split(",")]
market_url = "https://finance.yahoo.com/rss/topstories"
market_feed = feedparser.parse(market_url)
result = "## General Market News\n"
if market_feed.entries:
for entry in market_feed.entries[:5]:
result += f"**{entry.title}**\n{entry.link}\n{entry.published}\n\n"
else:
result += "_No general market news found_\n\n"
for ticker in ticker_list:
rss_url = f"https://feeds.finance.yahoo.com/rss/2.0/headline?s={ticker}&region=US&lang=en-US"
feed = feedparser.parse(rss_url)
result += f"## News for {ticker}\n"
if feed.entries:
for entry in feed.entries[:5]:
result += f"**{entry.title}**\n{entry.link}\n{entry.published}\n\n"
else:
result += "_No news found_\n\n"
#news_items = []
'''
for entry in feed.entries[:5]:
news_items.append(f"{entry.title}\n{entry.link}\n{entry.published}\n")
#print(f"Title: {entry.title}")
#print(f"Link: {entry.link}")
#print(f"Published: {entry.published}\n")
'''
return result
iface = gr.Interface(
fn=get_news,
inputs=gr.Textbox(label="Enter stock tickers (comma-separated, e.g., AAPL, TSLA, MSFT)"),
outputs=gr.Markdown(),
title="Stock and Market News",
description="Get the latest Yahoo Finance news for the general market and specific stocks."
)
iface.launch()