import requests import feedparser import gradio as gr # Define the RSS feed URLs news_sources = { "SM+": "https://gitlab.com/privatemedia/smrss/-/blob/master/smprsshypermedia.xml", "Ad β€’Assetmartβ€’ on Telegram": "http://bit.ly/4hTmAG", "ABP News": "https://www.abplive.com/home/feed", "Axiom Article πŸ†• Spin-Up a professional article. Sponsored in part by SM+": "https://t.me/SMPlusSevenCities_Bot/AxiomArticle", "Ad β€’Shopify πŸ‘œ Fash/ Wherehouseβ„’ πŸ†•": "https://fashwherehouse.myshopify.com", "Business Line": "https://www.thehindubusinessline.com/feeder/default.rss", "Fashionista πŸ‘— Elevate πŸ†• Your Wardrobe Today SS/25 #fab": "https://rn149855.myshopify.com", "Futures Crypto (Trading View) Sponsored in part by SM+ πŸ€‘": "https://politepol.com/fd/eg8zlQt2YgLU.xml", "Gaby Sprugs πŸ€– Nano πŸ†• πŸ€“": "https://gitlab.com/privatemedia/smrss/-/blob/master/smprss.xml?ref_type=heads", "+ - Neutral πŸ†•πŸ—žοΈ Artical Sentiment Analysis sponsored in part by SM+": "https://t.me/SMPlusSevenCities_Bot/plusminusorneutral", "Indian Express": "https://indianexpress.com/section/india/feed", "K-Verse News πŸ†•": "https://politepol.com/fd/H1MU8Bk3wbVU.xml", "Live Mint": "https://www.livemint.com/rss/news", "Money Control": "https://www.moneycontrol.com/rss/latestnews.xml", "NDTV": "https://feeds.feedburner.com/NDTV-LatestNews", "News 18": "https://www.news18.com/commonfeeds/v1/eng/rss/india.xml", "Shipping 🚒 Industry News SMPLUS20 πŸ†• Econ Indicators- California. Sponsored by SM Plus (SM+)": "https://feedfry.com/rss/11eff3c1ffb32b90aa788bf3027792d8", "Surfing 🌊": "https://cdn.mysitemapgenerator.com/shareapi/rss/2303959522", "SM+ Curated Content, Movies and more πŸ†• πŸ€“πŸΏ": "https://smplus.vhx.tv", "The Federal": "https://thefederal.com/feeds.xml", "Tik Tok News πŸ€“ Feed sponsored by SM+": "https://feedfry.com/rss/11eff2ff9439b661aee1d6bffcf7993f", "#UN #Housing #Celebrity #iheadline #News #CryptoNews #Futures #Spring #2025 #Entertainment #Streaming #GoldCard #Framework #gaming #Pokemon #Tariffs #EggPrices #SpringVibes": "https://feedfry.com/rss/11eff3059298fa75b1de4c8eb41bf065" } # Function to fetch and parse RSS feeds def fetch_news(source): try: feed = feedparser.parse(requests.get(source).content) news_items = [ f"{entry.title}" for entry in feed.entries[:10] # Fetch top 10 headlines ] return "

".join(news_items) if news_items else "No news available." except Exception as e: return f"Error fetching news: {str(e)}" # Gradio interface function def display_news(selected_source): source_url = news_sources[selected_source] headlines = fetch_news(source_url) return headlines # Create Gradio interface def create_interface(): interface = gr.Interface( fn=display_news, inputs=gr.Dropdown(choices=list(news_sources.keys()), label="Select News Source"), outputs=gr.HTML(label="Top Headlines"), title="LIVE News / feeds", description="Select a news source from the dropdown to view its latest headlines with clickable links. SM+ may receive earnings/commissions from affiliate links. iHeadline 1.030 {} Mod is a California Joint Venture Partnership between SM Plus Seven Cities & SM Plus (SM+). SM+ R&D Initiative, Sunsetting search for, AGI driven Intuitive Surfing (dev)" ) return interface # Deploy Gradio app if __name__ == "__main__": app = create_interface() app.launch()