Spaces:
Sleeping
Sleeping
| import requests | |
| import feedparser | |
| import gradio as gr | |
| # Define the RSS feed URLs | |
| news_sources = { | |
| "Business Line": "https://www.thehindubusinessline.com/feeder/default.rss", | |
| "Deccan Chronicle": "https://www.deccanchronicle.com/google_feeds.xml", | |
| "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", | |
| "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="Lates News from Peer Sites Updated Real Time", | |
| description="Select a news source from the dropdown to view its latest headlines with clickable links." | |
| ) | |
| return interface | |
| # Deploy Gradio app | |
| if __name__ == "__main__": | |
| app = create_interface() | |
| app.launch() | |