| import json, os |
| from flask import Flask, render_template |
|
|
| app = Flask(__name__, template_folder="templates", static_folder="static") |
|
|
|
|
| def load_insights(): |
| with open("final_trend_insights.json", "r", encoding="utf-8") as f: |
| return json.load(f) |
|
|
| @app.route("/") |
| def dashboard(): |
| data = load_insights() |
| clusters = data.get("section_1_Cluster_Summary", []) |
|
|
| desired_order = [ |
| "Explosive Viral Hit", |
| "Momentum Builder", |
| "Consistent Performer", |
| "Gradual Climber", |
| "Organic Riser", |
| ] |
| order_index = {name: i for i, name in enumerate(desired_order)} |
| clusters.sort(key=lambda c: order_index.get(c.get("trend_archetype", ""), 999)) |
|
|
| topics = data.get("section_2_Viral_Topics", []) |
| nascent = data.get("section_3_Nascent_Trends", {}) or {} |
|
|
| nt_summary = nascent.get("Nascent_Topics_summary", {}) or {} |
| nv_summary = nascent.get("Nascent_Videos_summary", {}) or {} |
|
|
| nt_list = nt_summary.get("Nascent_Topics", []) or [] |
| nv_list = nv_summary.get("Nascent_Videos", []) or [] |
| return render_template("dashboard.html", data=data,clusters=clusters, viral_topics=topics,nascent=nascent, |
| nt_summary=nt_summary, |
| nv_summary=nv_summary, |
| nt_list=nt_list, |
| nv_list=nv_list ) |
|
|
|
|
| if __name__ == "__main__": |
| app.run(debug=True) |
|
|