genai-rss-space / app.py
8shanrahan's picture
Update app.py
adcb8d8 verified
import gradio as gr
from rss_reader import fetch_articles
from agent import analyze_article
from renderer import render_html
from logger import debug_log, log_exception
def process_rss(rss_input):
try:
debug_log("Function triggered")
rss_urls = [url.strip() for url in rss_input.strip().splitlines() if url.strip()]
debug_log("Parsed RSS URLs", rss_urls)
raw_articles = fetch_articles(rss_urls)
debug_log("Fetched articles count", len(raw_articles))
analyzed = []
for a in raw_articles:
debug_log("Analyzing article", a["title"])
analyzed.append(analyze_article(a["text"], a["title"], a["link"]))
html = render_html(analyzed)
debug_log("HTML rendered, length:", len(html))
return html
except Exception:
return log_exception("process_rss")
default_rss = """https://rss.nytimes.com/services/xml/rss/nyt/Technology.xml
https://feeds.arstechnica.com/arstechnica/technology-lab"""
iface = gr.Interface(
fn=process_rss,
inputs=gr.Textbox(label="Enter RSS URLs (one per line)", value=default_rss, lines=4),
outputs=gr.HTML(label="📊 GenAI RSS Digest"),
title="GenAI RSS Summarizer",
description="Summarizes articles and detects what’s useful to analytics teams"
)
if __name__ == "__main__":
iface.launch()