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