Spaces:
Sleeping
Sleeping
File size: 3,791 Bytes
53ecad3 dc0031b 2de8456 2758e54 a80818a 789f9ad bddf821 69bbdf1 03c2b26 128c4ff 342913d 99a4b92 2562201 3937db9 b06237e a43d82f 688c6c4 03c2b26 53ecad3 9a4c200 cb46088 4239df3 08eda3a 03c2b26 ad53462 7be1090 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 |
import requests
import feedparser
import gradio as gr
# Define the RSS feed URLs
news_sources = {
"SM+": "https://smplus.pages.dev",
"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://rss.app/feeds/WWmoL46gc5EjFEyu.xml",
"Bitcoin Strategic Reserve News": "https://cdn.mysitemapgenerator.com/shareapi/rss/2502907090",
"BRICS Currency News": "http://fetchrss.com/rss/67bca52dda01b8237d0cd46367bcea7171f66470280b2d72.xml",
"Ad Shopify ๐ Fash/ Wherehouseโข ๐": "https://rss.app/feeds/6VggZDhxI8rYAwB6.xml",
"Business Line": "https://www.thehindubusinessline.com/feeder/default.rss",
"iHeadline Influencers ๐ค": "https://cdn.mysitemapgenerator.com/shareapi/rss/0703926003",
"+ - Neutral ๐๐๏ธ Artical Sentiment Analysis sponsored in part by SM+": "https://rss.app/feeds/YOXkC0HOLQ9IFiUs.xml",
"Futures Crypto (Trading View) Sponsored in part by SM+ ๐ค": "https://politepol.com/fd/eg8zlQt2YgLU.xml",
"Ad ebay ๐๏ธ Shop deals SS/25": "http://fetchrss.com/rss/67bca52dda01b8237d0cd46367bce3f0b8382c6fdd0fc575.xml",
"K-Verse News ๐": "https://politepol.com/fd/H1MU8Bk3wbVU.xml",
"Surfing ๐ News": "http://fetchrss.com/rss/67bca52dda01b8237d0cd46367bce863c789cad48e0a7922.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",
"Music Investing ๐ ๐ถ ๐ต ๐ค Sponsored in part by DMIM, STRM & WVL on the Bitcoin Cash Blockchain": "https://rss.app/feeds/tMDd5ea5avBWLDG0.xml",
"NDTV": "https://feeds.feedburner.com/NDTV-LatestNews",
"News 18": "https://www.news18.com/commonfeeds/v1/eng/rss/india.xml",
"SM+ Curated Content, Movies and more ๐ ๐ค๐ฟ": "https://rss.app/feeds/diDfJzH6owTFfAcP.xml",
"The Federal": "https://thefederal.com/feeds.xml",
"The Hindu": "https://www.thehindu.com/feeder/default.rss",
"Tik Tok News ๐ค Feed sponsored by SM+": "https://feedfry.com/rss/11eff2ff9439b661aee1d6bffcf7993f",
"#UN #Housing #Celebrity #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"<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()
|