import requests import feedparser import gradio as gr # Define the RSS feed URLs news_sources = { "ABP News": "https://www.abplive.com/home/feed", "BBC India": "https://feeds.bbci.co.uk/news/world/asia/india/rss.xml", "Business Line": "https://www.thehindubusinessline.com/feeder/default.rss", "Deccan Chronicle": "https://www.deccanchronicle.com/google_feeds.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"{entry.title}" for entry in feed.entries[:10] # Fetch top 10 headlines ] return "

".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="Latest LIVE News from Peer Sites", 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()