fix: Update index.html and app.js to support 7 separate quota bars
Build and Push Docker Image / build-and-push (push) Canceled after 0s
Build and Push Docker Image / build-and-push (push) Canceled after 0s
This commit is contained in:
1 parent
5d93d9f798
commit
8c8a5eaa9e
3 files changed
+140
-29
No files matched your search
+2
-1
@@ -36,7 +36,8 @@ async function fetchQuotas() {
|
||||
];
|
||||
|
||||
activeQuotas.forEach(quota => {
|
||||
updateRow(quota.provider.toLowerCase(), quota);
|
||||
const providerId = quota.provider.toLowerCase().replace(/[^a-z0-9]/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');
|
||||
updateRow(providerId, quota);
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Error fetching quotas:', error);
|
||||
|
||||
+102
-28
@@ -35,27 +35,7 @@
|
||||
</header>
|
||||
|
||||
<section class="dashboard-list">
|
||||
<!-- Antigravity Row -->
|
||||
<div class="provider-row" id="row-antigravity">
|
||||
<div class="provider-main">
|
||||
<div class="provider-info">
|
||||
<span class="provider-icon">🤖</span>
|
||||
<span class="provider-name">Antigravity (Gemini)</span>
|
||||
</div>
|
||||
<div class="progress-container">
|
||||
<div class="progress-bar">
|
||||
<div class="progress-fill" id="fill-antigravity"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="provider-stats">
|
||||
<span class="percentage" id="percentage-antigravity">0%</span>
|
||||
<span class="raw-value" id="status-antigravity">Loading...</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="provider-details" id="details-antigravity"></div>
|
||||
</div>
|
||||
|
||||
<!-- POE Row -->
|
||||
<div class="provider-row" id="row-poe">
|
||||
<div class="provider-main">
|
||||
<div class="provider-info">
|
||||
@@ -75,24 +55,118 @@
|
||||
<div class="provider-details" id="details-poe"></div>
|
||||
</div>
|
||||
|
||||
<!-- MiniMax Row -->
|
||||
<div class="provider-row" id="row-minimax">
|
||||
<div class="provider-row" id="row-ag-gemini-5h">
|
||||
<div class="provider-main">
|
||||
<div class="provider-info">
|
||||
<span class="provider-icon">⚡</span>
|
||||
<span class="provider-name">MiniMax (M3)</span>
|
||||
<span class="provider-icon">🤖</span>
|
||||
<span class="provider-name">AG Gemini (5h)</span>
|
||||
</div>
|
||||
<div class="progress-container">
|
||||
<div class="progress-bar">
|
||||
<div class="progress-fill" id="fill-minimax"></div>
|
||||
<div class="progress-fill" id="fill-ag-gemini-5h"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="provider-stats">
|
||||
<span class="percentage" id="percentage-minimax">0%</span>
|
||||
<span class="raw-value" id="status-minimax">Loading...</span>
|
||||
<span class="percentage" id="percentage-ag-gemini-5h">0%</span>
|
||||
<span class="raw-value" id="status-ag-gemini-5h">Loading...</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="provider-details" id="details-minimax"></div>
|
||||
<div class="provider-details" id="details-ag-gemini-5h"></div>
|
||||
</div>
|
||||
|
||||
<div class="provider-row" id="row-ag-gemini-weekly">
|
||||
<div class="provider-main">
|
||||
<div class="provider-info">
|
||||
<span class="provider-icon">🤖</span>
|
||||
<span class="provider-name">AG Gemini (Weekly)</span>
|
||||
</div>
|
||||
<div class="progress-container">
|
||||
<div class="progress-bar">
|
||||
<div class="progress-fill" id="fill-ag-gemini-weekly"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="provider-stats">
|
||||
<span class="percentage" id="percentage-ag-gemini-weekly">0%</span>
|
||||
<span class="raw-value" id="status-ag-gemini-weekly">Loading...</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="provider-details" id="details-ag-gemini-weekly"></div>
|
||||
</div>
|
||||
|
||||
<div class="provider-row" id="row-ag-claude-5h">
|
||||
<div class="provider-main">
|
||||
<div class="provider-info">
|
||||
<span class="provider-icon">⚡</span>
|
||||
<span class="provider-name">AG Claude (5h)</span>
|
||||
</div>
|
||||
<div class="progress-container">
|
||||
<div class="progress-bar">
|
||||
<div class="progress-fill" id="fill-ag-claude-5h"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="provider-stats">
|
||||
<span class="percentage" id="percentage-ag-claude-5h">0%</span>
|
||||
<span class="raw-value" id="status-ag-claude-5h">Loading...</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="provider-details" id="details-ag-claude-5h"></div>
|
||||
</div>
|
||||
|
||||
<div class="provider-row" id="row-ag-claude-weekly">
|
||||
<div class="provider-main">
|
||||
<div class="provider-info">
|
||||
<span class="provider-icon">⚡</span>
|
||||
<span class="provider-name">AG Claude (Weekly)</span>
|
||||
</div>
|
||||
<div class="progress-container">
|
||||
<div class="progress-bar">
|
||||
<div class="progress-fill" id="fill-ag-claude-weekly"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="provider-stats">
|
||||
<span class="percentage" id="percentage-ag-claude-weekly">0%</span>
|
||||
<span class="raw-value" id="status-ag-claude-weekly">Loading...</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="provider-details" id="details-ag-claude-weekly"></div>
|
||||
</div>
|
||||
|
||||
<div class="provider-row" id="row-minimax-5h">
|
||||
<div class="provider-main">
|
||||
<div class="provider-info">
|
||||
<span class="provider-icon">🔥</span>
|
||||
<span class="provider-name">MiniMax (5h)</span>
|
||||
</div>
|
||||
<div class="progress-container">
|
||||
<div class="progress-bar">
|
||||
<div class="progress-fill" id="fill-minimax-5h"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="provider-stats">
|
||||
<span class="percentage" id="percentage-minimax-5h">0%</span>
|
||||
<span class="raw-value" id="status-minimax-5h">Loading...</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="provider-details" id="details-minimax-5h"></div>
|
||||
</div>
|
||||
|
||||
<div class="provider-row" id="row-minimax-weekly">
|
||||
<div class="provider-main">
|
||||
<div class="provider-info">
|
||||
<span class="provider-icon">🔥</span>
|
||||
<span class="provider-name">MiniMax (Weekly)</span>
|
||||
</div>
|
||||
<div class="progress-container">
|
||||
<div class="progress-bar">
|
||||
<div class="progress-fill" id="fill-minimax-weekly"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="provider-stats">
|
||||
<span class="percentage" id="percentage-minimax-weekly">0%</span>
|
||||
<span class="raw-value" id="status-minimax-weekly">Loading...</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="provider-details" id="details-minimax-weekly"></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
const fs = require('fs');
|
||||
let html = fs.readFileSync('public/index.html', 'utf8');
|
||||
|
||||
const generateRow = (id, icon, name) => `
|
||||
<div class="provider-row" id="row-${id}">
|
||||
<div class="provider-main">
|
||||
<div class="provider-info">
|
||||
<span class="provider-icon">${icon}</span>
|
||||
<span class="provider-name">${name}</span>
|
||||
</div>
|
||||
<div class="progress-container">
|
||||
<div class="progress-bar">
|
||||
<div class="progress-fill" id="fill-${id}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="provider-stats">
|
||||
<span class="percentage" id="percentage-${id}">0%</span>
|
||||
<span class="raw-value" id="status-${id}">Loading...</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="provider-details" id="details-${id}"></div>
|
||||
</div>`;
|
||||
|
||||
const newSection = `<section class="dashboard-list">
|
||||
${generateRow('poe', '🧠', 'POE')}
|
||||
${generateRow('ag-gemini-5h', '🤖', 'AG Gemini (5h)')}
|
||||
${generateRow('ag-gemini-weekly', '🤖', 'AG Gemini (Weekly)')}
|
||||
${generateRow('ag-claude-5h', '⚡', 'AG Claude (5h)')}
|
||||
${generateRow('ag-claude-weekly', '⚡', 'AG Claude (Weekly)')}
|
||||
${generateRow('minimax-5h', '🔥', 'MiniMax (5h)')}
|
||||
${generateRow('minimax-weekly', '🔥', 'MiniMax (Weekly)')}
|
||||
</section>`;
|
||||
|
||||
html = html.replace(/<section class="dashboard-list">[\s\S]*?<\/section>/, newSection);
|
||||
fs.writeFileSync('public/index.html', html);
|
||||
console.log('updated index.html');
|
||||
Reference in new issue
Block a user