import os from flask import Flask, render_template, request from rss_processor import fetch_rss_feeds, process_and_store_articles, vector_db app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def index(): articles = fetch_rss_feeds() process_and_store_articles(articles) stored_docs = vector_db.similarity_search("news", k=len(articles)) enriched_articles = [ { "title": doc.metadata["title"], "link": doc.metadata["link"], "summary": doc.page_content, "category": doc.metadata["category"], "sentiment": doc.metadata["sentiment"], "published": doc.metadata["published"], } for doc in stored_docs ] if request.method == 'POST': query = request.form.get('search') if query: results = vector_db.similarity_search(query, k=10) enriched_articles = [ { "title": doc.metadata["title"], "link": doc.metadata["link"], "summary": doc.page_content, "category": doc.metadata["category"], "sentiment": doc.metadata["sentiment"], "published": doc.metadata["published"], } for doc in results ] categorized_articles = {} for article in enriched_articles: cat = article["category"] if cat not in categorized_articles: categorized_articles[cat] = [] categorized_articles[cat].append(article) return render_template("index.html", categorized_articles=categorized_articles) if __name__ == "__main__": app.run(host="0.0.0.0", port=7860)