File size: 4,137 Bytes
53ecad3
 
 
 
 
 
88e7920
b541ca3
2758e54
03c2b26
aea0580
03c2b26
2562201
1638edc
3afe2e2
03c2b26
a43d82f
688c6c4
03c2b26
53ecad3
9a4c200
4239df3
 
03c2b26
 
 
 
 
 
 
9f122bf
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
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",
    "Business Line": "https://www.thehindubusinessline.com/feeder/default.rss",
    "Climate Change ✴️ Breaking News": "https://www.google.com/search?q=climate+change+news+worldwide&client=ms-android-verizon-us-rvc3&sca_esv=e28d900fdc0c3e2f&sxsrf=AHTn8zqjZTf3pF1dHJtmRPhA1sZDhtstvw%3A1740433635959&ei=4-i8Z_SgOoHQkPIPj6vtgAI&oq=Climate+Change+News&gs_lp=EhNtb2JpbGUtZ3dzLXdpei1zZXJwIhNDbGltYXRlIENoYW5nZSBOZXdzKgIIBDIQEAAYgAQYsQMYgwEYFBiHAjIFEAAYgAQyBRAAGIAEMgUQABiABDIFEAAYgAQyBRAAGIAEMgUQABiABDIFEAAYgARIi2BQ9gpY0zpwAXgCkAECmAGjAaABkRmqAQQwLjI1uAEByAEA-AEBmAIVoALfFKgCD8ICBBAAGEfCAgcQIxgnGOoCwgIEECMYJ8ICChAjGIAEGCcYigXCAg4QLhiABBixAxjRAxjHAcICDhAAGIAEGLEDGIMBGIoFwgIIEAAYgAQYsQPCAhEQLhiABBixAxjRAxiDARjHAcICCxAuGIAEGLEDGIMBwgIKEAAYgAQYQxiKBcICEBAuGIAEGNEDGEMYxwEYigXCAgUQLhiABMICDRAAGIAEGLEDGEMYigXCAgoQABiABBgUGIcCwgINEC4YgAQYsQMYQxiKBcICFhAuGIAEGLEDGNEDGEMYgwEYxwEYigXCAg4QLhiABBixAxiDARiKBcICEBAAGIAEGLEDGEMYyQMYigXCAgsQABiABBixAxiDAcICCBAuGIAEGLEDwgILEAAYgAQYkgMYigXCAg4QLhiABBixAxjHARivAcICExAuGIAEGLEDGBQYhwIYxwEYrwHCAggQABiABBjJA5gDEPEF13R2NyqW95iIBgGQBgiSBwQyLjE5oAep0wE&sclient=mobile-gws-wiz-serp",
    "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",
    "Times of India": "https://timesofindia.indiatimes.com/rssfeedmostrecent.cms"
}
# 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()