Spaces:
Sleeping
Sleeping
| 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}®ion=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() |