Create config.json
Browse files- config.json +51 -0
config.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!doctype html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="utf-8">
|
| 5 |
+
<title>Operator Warlock Numerology</title>
|
| 6 |
+
<style>
|
| 7 |
+
body { background: #111; color: #eee; font-family: sans-serif; padding: 2rem; }
|
| 8 |
+
h1 { font-size: 2rem; margin-bottom: 1rem; }
|
| 9 |
+
.grade { padding: 1rem; margin-bottom: 1rem; background: #222; border-radius: 6px; }
|
| 10 |
+
.grade h2 { margin: 0 0 .5rem 0; }
|
| 11 |
+
.grade p { margin: .2rem 0; }
|
| 12 |
+
.stars, .money { font-size: 1.2rem; }
|
| 13 |
+
</style>
|
| 14 |
+
</head>
|
| 15 |
+
<body>
|
| 16 |
+
<h1>π© Hail, Seeker of the Arcane Digits.</h1>
|
| 17 |
+
<div id="grades"></div>
|
| 18 |
+
|
| 19 |
+
<script>
|
| 20 |
+
// βββ All-in-One Config & Renderer βββ
|
| 21 |
+
const config = {
|
| 22 |
+
avatar: {
|
| 23 |
+
greeting: "π© Hail, Seeker of the Arcane Digits. Welcome to the Luminous Nexus of Numeros."
|
| 24 |
+
},
|
| 25 |
+
revenueGrades: [
|
| 26 |
+
{"grade":"A","label":"Wild Warlock","DAU":150000,"conversionRate":0.15,"subscribers":22500,"ARPU_monthly":10,"annualRevenue":28800000,"stars":5,"moneyStacks":5},
|
| 27 |
+
{"grade":"B","label":"Operator Prime","DAU":75000,"conversionRate":0.10,"subscribers":7500,"ARPU_monthly":7,"annualRevenue":7200000,"stars":4,"moneyStacks":4},
|
| 28 |
+
{"grade":"C","label":"Sigil Starter","DAU":25000,"conversionRate":0.05,"subscribers":1250,"ARPU_monthly":5,"annualRevenue":900000,"stars":3,"moneyStacks":3},
|
| 29 |
+
{"grade":"D","label":"Rookie Rune","DAU":10000,"conversionRate":0.03,"subscribers":300,"ARPU_monthly":3,"annualRevenue":108000,"stars":1,"moneyStacks":1}
|
| 30 |
+
]
|
| 31 |
+
};
|
| 32 |
+
|
| 33 |
+
const container = document.getElementById('grades');
|
| 34 |
+
config.revenueGrades.forEach(g => {
|
| 35 |
+
const div = document.createElement('div');
|
| 36 |
+
div.className = 'grade';
|
| 37 |
+
div.innerHTML = \`
|
| 38 |
+
<h2>\${g.grade} β \${g.label}</h2>
|
| 39 |
+
<p>π DAU: \${g.DAU.toLocaleString()}</p>
|
| 40 |
+
<p>π Conversion: \${(g.conversionRate * 100).toFixed(1)}%</p>
|
| 41 |
+
<p>π₯ Subs: \${g.subscribers.toLocaleString()}</p>
|
| 42 |
+
<p>π΅ ARPU: $\${g.ARPU_monthly}/mo</p>
|
| 43 |
+
<p>π° Annual: $\${g.annualRevenue.toLocaleString()}</p>
|
| 44 |
+
<p class="stars">\${'β'.repeat(g.stars)}</p>
|
| 45 |
+
<p class="money">\${'π°'.repeat(g.moneyStacks)}</p>
|
| 46 |
+
\`;
|
| 47 |
+
container.appendChild(div);
|
| 48 |
+
});
|
| 49 |
+
</script>
|
| 50 |
+
</body>
|
| 51 |
+
</html>
|