|
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) |
|
|