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()