Spaces:
Sleeping
Sleeping
File size: 3,565 Bytes
53ecad3 88e7920 b541ca3 2758e54 5e6573f bddf821 03c2b26 5e174be 03c2b26 2562201 1638edc 3afe2e2 03c2b26 a43d82f 688c6c4 03c2b26 53ecad3 9a4c200 4239df3 03c2b26 06b26a3 8c89dbf 53ecad3 a9d8f21 53ecad3 a9d8f21 53ecad3 a9d8f21 f8cec2c bda1e4a 53ecad3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
import requests
import feedparser
import gradio as gr
# Define the RSS feed URLs
news_sources = {
"SM+": "https://fetchrss.com/rss/67bca52dda01b8237d0cd46367bca4e995760c5c55080de2.rss",
"Ad Visit •Assetmart• on Telegram": "http://bit.ly/4hTmAG",
"ABP News": "https://www.abplive.com/home/feed",
" Bitcoin Strategic Reserve News": "https://cdn.mysitemapgenerator.com/shareapi/rss/2502907090",
"BRICS Currency News": "http://fetchrss.com/rss/67bca52dda01b8237d0cd46367bcea7171f66470280b2d72.xml",
"Business Line": "https://www.thehindubusinessline.com/feeder/default.rss",
"iHeadline Influencers 🤓": "http://fetchrss.com/rss/67bca52dda01b8237d0cd46367bcec0588b818a01e0d9ce2.xml",
"Deccan Chronicle": "https://www.deccanchronicle.com/google_feeds.xml",
"Ad ebay 🛍️ Shop deals SS/25": "http://fetchrss.com/rss/67bca52dda01b8237d0cd46367bce3f0b8382c6fdd0fc575.xml",
"Surfing 🌊 Google News": "http://fetchrss.com/rss/67bca52dda01b8237d0cd46367bce863c789cad48e0a7922.xml",
"Gujarati- Gujarat Samachar": "https://www.gujaratsamachar.com/rss/top-stories",
"Hindustan Times": "https://www.hindustantimes.com/feeds/rss/latest/rssfeed.xml",
"India Today": "https://www.indiatoday.in/rss/home",
"Indian Express": "https://indianexpress.com/section/india/feed",
"Live Mint": "https://www.livemint.com/rss/news",
"Money Control": "https://www.moneycontrol.com/rss/latestnews.xml",
"Manorama - English": "https://www.onmanorama.com/kerala.feeds.onmrss.xml",
"NDTV": "https://feeds.feedburner.com/NDTV-LatestNews",
"News 18": "https://www.news18.com/commonfeeds/v1/eng/rss/india.xml",
"Telangana Today": "https://telanganatoday.com/feed",
"The Federal": "https://thefederal.com/feeds.xml",
"The Federal Andhra": "https://andhrapradesh.thefederal.com/feeds.xml",
"The Federal Desh": "https://desh.thefederal.com/feeds.xml",
"The Federal Karnataka": "https://karnataka.thefederal.com/feeds.xml",
"The Federal Telangana": "https://telangana.thefederal.com/feeds.xml",
"The Hindu": "https://www.thehindu.com/feeder/default.rss",
"Tik Tok News Feed by sponsored by SM+": "https://feedfry.com/rss/11eff2ff9439b661aee1d6bffcf7993f",
"#UN #Housing #Celebrity #News #Futures #Spring #2025": "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"<a href='{entry.link}' target='_blank'>{entry.title}</a>"
for entry in feed.entries[:10] # Fetch top 10 headlines
]
return "<br><br>".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"
)
return interface
# Deploy Gradio app
if __name__ == "__main__":
app = create_interface()
app.launch()
|