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