Spaces:
Paused
Paused
UI: clean ranking and remove keys from public view
Browse files- internal/handler/index.html +41 -37
internal/handler/index.html
CHANGED
|
@@ -144,43 +144,44 @@ body{background:#0d0d0d;font-family:"Courier New",monospace;color:#c8a84b}
|
|
| 144 |
<span class="classified">★ CLASIFICADO ★</span> — ROW-PROXY v1.0 — CCCP AI GATEWAY — HOI4 NO STEP BACK — <span class="classified">★ CLASIFICADO ★</span>
|
| 145 |
</div>
|
| 146 |
<script>
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
|
| 158 |
-
|
| 159 |
-
|
|
|
|
|
|
|
| 160 |
}
|
|
|
|
|
|
|
| 161 |
</script>
|
| 162 |
<script>
|
| 163 |
-
function
|
| 164 |
-
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
grid.innerHTML =
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
if (freeEl) freeEl.textContent = (data.free_reqs || 0) + '/340';
|
| 179 |
-
})
|
| 180 |
-
.catch(function(){ });
|
| 181 |
}
|
| 182 |
-
|
| 183 |
-
|
| 184 |
</script>
|
| 185 |
<script>
|
| 186 |
async function updateStats() {
|
|
@@ -191,12 +192,15 @@ async function updateStats() {
|
|
| 191 |
keys.sort((a, b) => b.tokens - a.tokens);
|
| 192 |
const grid = document.querySelector(".commander-grid");
|
| 193 |
if (!grid) return;
|
| 194 |
-
grid.innerHTML = keys.slice(0,
|
| 195 |
-
return "<div class=
|
|
|
|
|
|
|
|
|
|
| 196 |
}).join("");
|
| 197 |
-
} catch(e) { console.error("Error
|
| 198 |
}
|
| 199 |
-
setInterval(updateStats,
|
| 200 |
updateStats();
|
| 201 |
</script></body>
|
| 202 |
</html>
|
|
|
|
| 144 |
<span class="classified">★ CLASIFICADO ★</span> — ROW-PROXY v1.0 — CCCP AI GATEWAY — HOI4 NO STEP BACK — <span class="classified">★ CLASIFICADO ★</span>
|
| 145 |
</div>
|
| 146 |
<script>
|
| 147 |
+
async function updateStats() {
|
| 148 |
+
try {
|
| 149 |
+
const r = await fetch("/stats");
|
| 150 |
+
const data = await r.json();
|
| 151 |
+
const keys = Object.values(data.keys || {});
|
| 152 |
+
keys.sort((a, b) => b.tokens - a.tokens);
|
| 153 |
+
const grid = document.querySelector(".commander-grid");
|
| 154 |
+
if (!grid) return;
|
| 155 |
+
grid.innerHTML = keys.slice(0, 5).map((u, i) => {
|
| 156 |
+
return "<div class='commander-card'>" +
|
| 157 |
+
"<div class='cmd-name'>" + u.name.toUpperCase() + " #" + (i+1) + "</div>" +
|
| 158 |
+
"<div class='cmd-trait'>REQS: " + u.requests + " // TOKENS: " + u.tokens + "</div>" +
|
| 159 |
+
"</div>";
|
| 160 |
+
}).join("");
|
| 161 |
+
} catch(e) { console.error("Error:", e); }
|
| 162 |
}
|
| 163 |
+
setInterval(updateStats, 10000);
|
| 164 |
+
updateStats();
|
| 165 |
</script>
|
| 166 |
<script>
|
| 167 |
+
async function updateStats() {
|
| 168 |
+
try {
|
| 169 |
+
const r = await fetch("/stats");
|
| 170 |
+
const data = await r.json();
|
| 171 |
+
const keys = Object.values(data.keys || {});
|
| 172 |
+
keys.sort((a, b) => b.tokens - a.tokens);
|
| 173 |
+
const grid = document.querySelector(".commander-grid");
|
| 174 |
+
if (!grid) return;
|
| 175 |
+
grid.innerHTML = keys.slice(0, 5).map((u, i) => {
|
| 176 |
+
return "<div class='commander-card'>" +
|
| 177 |
+
"<div class='cmd-name'>" + u.name.toUpperCase() + " #" + (i+1) + "</div>" +
|
| 178 |
+
"<div class='cmd-trait'>REQS: " + u.requests + " // TOKENS: " + u.tokens + "</div>" +
|
| 179 |
+
"</div>";
|
| 180 |
+
}).join("");
|
| 181 |
+
} catch(e) { console.error("Error:", e); }
|
|
|
|
|
|
|
|
|
|
| 182 |
}
|
| 183 |
+
setInterval(updateStats, 10000);
|
| 184 |
+
updateStats();
|
| 185 |
</script>
|
| 186 |
<script>
|
| 187 |
async function updateStats() {
|
|
|
|
| 192 |
keys.sort((a, b) => b.tokens - a.tokens);
|
| 193 |
const grid = document.querySelector(".commander-grid");
|
| 194 |
if (!grid) return;
|
| 195 |
+
grid.innerHTML = keys.slice(0, 5).map((u, i) => {
|
| 196 |
+
return "<div class='commander-card'>" +
|
| 197 |
+
"<div class='cmd-name'>" + u.name.toUpperCase() + " #" + (i+1) + "</div>" +
|
| 198 |
+
"<div class='cmd-trait'>REQS: " + u.requests + " // TOKENS: " + u.tokens + "</div>" +
|
| 199 |
+
"</div>";
|
| 200 |
}).join("");
|
| 201 |
+
} catch(e) { console.error("Error:", e); }
|
| 202 |
}
|
| 203 |
+
setInterval(updateStats, 10000);
|
| 204 |
updateStats();
|
| 205 |
</script></body>
|
| 206 |
</html>
|