Revanthraja's picture
Update api.py
fdb73f0 verified
from flask import Flask, request, jsonify
import utils
app = Flask(__name__)
@app.route('/analyze', methods=['POST'])
def analyze():
data = request.get_json()
company = data.get('company')
if not company:
return jsonify({"error": "No company provided"}), 400
# Extract news articles
articles = utils.get_news_articles(company)
# Process each article: add sentiment and topics
for article in articles:
content = article.get("Content", "")
article["Sentiment"] = utils.analyze_sentiment(content)
article["Topics"] = utils.extract_topics(content)
# Perform comparative analysis
comparative = utils.compare_sentiments(articles)
# Generate final summary and translate to Hindi for TTS
final_summary = f"{company} news coverage is mostly {comparative['final_sentiment']}."
hindi_summary = utils.translate_to_hindi(final_summary)
audio_data = utils.generate_tts(hindi_summary)
# Build the final JSON report matching your desired structure
report = {
"Company": company,
"Articles": articles,
"Comparative Sentiment Score": {
"Sentiment Distribution": comparative.get("Sentiment Distribution", {}),
"Coverage Differences": comparative.get("Coverage Differences", []),
"Topic Overlap": comparative.get("Topic Overlap", {})
},
"Final Sentiment Analysis": final_summary,
"Audio": audio_data # Data URI that the frontend will decode and play.
}
return jsonify(report)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True)