Rename rate cards: alive/min, crawl/min, check/min

Shorter, cleaner labels for the dashboard rate cards.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
primal
2026-02-01 17:26:18 -05:00
parent be595cb403
commit dd17889695
+72 -33
View File
@@ -445,70 +445,109 @@ const dashboardHTML = `<!DOCTYPE html>
<title>1440.news Feed Crawler</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/static/dashboard.css">
<script src="/static/dashboard.js?v=99"></script>
<link rel="stylesheet" href="/static/dashboard.css?v=116">
<script src="/static/dashboard.js?v=120"></script>
</head>
<body>
<h1>1440.news Feed Crawler</h1>
<h2>Domain Status</h2>
<div class="grid">
<div class="card">
<div id="topSection">
<h2>Domains</h2>
<div class="grid grid-narrow">
<div class="card clickable" data-filter="domain" data-status="all">
<div class="stat-value" id="totalDomains">{{comma .TotalDomains}}</div>
<div class="stat-label">Total</div>
<div class="stat-label">All</div>
</div>
<div class="card">
<div class="stat-value" id="holdDomains" style="color: #f90;">{{comma .HoldDomains}}</div>
<div class="stat-label">Hold</div>
</div>
<div class="card">
<div class="card clickable" data-filter="domain" data-status="pass">
<div class="stat-value" id="passDomains" style="color: #0f0;">{{comma .PassDomains}}</div>
<div class="stat-label">Pass</div>
</div>
<div class="card">
<div class="card clickable" data-filter="domain" data-status="skip">
<div class="stat-value" id="skipDomains" style="color: #f66;">{{comma .SkipDomains}}</div>
<div class="stat-label">Skip</div>
</div>
<div class="card">
<div class="stat-value" id="crawlRate">{{comma .CrawlRate}}</div>
<div class="stat-label">crawls/min</div>
<div class="card clickable" data-filter="domain" data-status="hold">
<div class="stat-value" id="holdDomains" style="color: #f90;">{{comma .HoldDomains}}</div>
<div class="stat-label">Hold</div>
</div>
<div class="card clickable" data-filter="domain" data-status="dead">
<div class="stat-value" id="deadDomains" style="color: #888;">{{comma .DeadDomains}}</div>
<div class="stat-label">Dead</div>
</div>
<div class="card">
<div class="stat-value" id="checkRate">{{comma .CheckRate}}</div>
<div class="stat-label">checks/min</div>
<div class="stat-value" id="domainCheckRate">{{comma .DomainCheckRate}}</div>
<div class="stat-label">alive/min</div>
</div>
<div class="card">
<div class="stat-value" id="feedCrawlRate">{{comma .FeedCrawlRate}}</div>
<div class="stat-label">crawl/min</div>
</div>
<div class="card">
<div class="stat-value" id="feedCheckRate">{{comma .FeedCheckRate}}</div>
<div class="stat-label">check/min</div>
</div>
</div>
<h2>Feeds Discovered</h2>
<div class="grid">
<div class="card">
<h2>Feeds</h2>
<div class="grid grid-narrow">
<div class="card clickable" data-filter="feed" data-status="all">
<div class="stat-value" id="totalFeeds">{{comma .TotalFeeds}}</div>
<div class="stat-label">Total Feeds</div>
<div class="stat-label">All</div>
</div>
<div class="card">
<div class="card clickable" data-filter="feed" data-status="alive">
<div class="stat-value" id="aliveFeeds" style="color: #0f0;">{{comma .AliveFeeds}}</div>
<div class="stat-label">Alive</div>
</div>
<div class="card clickable" data-filter="feed" data-status="publish">
<div class="stat-value" id="publishFeeds" style="color: #0ff;">{{comma .PublishFeeds}}</div>
<div class="stat-label">Pass</div>
</div>
<div class="card clickable" data-filter="feed" data-status="skip">
<div class="stat-value" id="skipFeeds" style="color: #f66;">{{comma .SkipFeeds}}</div>
<div class="stat-label">Skip</div>
</div>
<div class="card clickable" data-filter="feed" data-status="hold">
<div class="stat-value" id="holdFeeds" style="color: #f90;">{{comma .HoldFeeds}}</div>
<div class="stat-label">Hold</div>
</div>
<div class="card clickable" data-filter="feed" data-status="dead">
<div class="stat-value" id="deadFeeds" style="color: #888;">{{comma .DeadFeeds}}</div>
<div class="stat-label">Dead</div>
</div>
<div class="card clickable" data-filter="feed" data-type="empty">
<div class="stat-value" id="emptyFeeds" style="color: #555;">{{comma .EmptyFeeds}}</div>
<div class="stat-label">Empty</div>
</div>
<div class="card clickable" data-filter="feed" data-type="rss">
<div class="stat-value" style="color: #f90" id="rssFeeds">{{comma .RSSFeeds}}</div>
<div class="stat-label">RSS Feeds</div>
<div class="stat-label">RSS</div>
</div>
<div class="card">
<div class="card clickable" data-filter="feed" data-type="atom">
<div class="stat-value" style="color: #09f" id="atomFeeds">{{comma .AtomFeeds}}</div>
<div class="stat-label">Atom Feeds</div>
<div class="stat-label">Atom</div>
</div>
<div class="card">
<div class="card clickable" data-filter="feed" data-type="json">
<div class="stat-value" style="color: #0a0" id="jsonFeeds">{{comma .JSONFeeds}}</div>
<div class="stat-label">JSON</div>
</div>
<div class="card clickable" data-filter="feed" data-type="unknown">
<div class="stat-value" style="color: #666" id="unknownFeeds">{{comma .UnknownFeeds}}</div>
<div class="stat-label">Unknown Type</div>
<div class="stat-label">Unknown</div>
</div>
</div>
<div class="card" id="inputCard" style="position: sticky; top: 0; z-index: 100; background: #111;">
<input type="text" id="searchInput" placeholder="Search feeds..."
style="width: 100%; padding: 12px; background: #0a0a0a; border: 1px solid #333; border-radius: 4px; color: #fff;">
<div class="card" id="inputCard" style="background: #0a0a0a; display: flex; gap: 10px;">
<button id="clearBtn" class="cmd-btn" style="padding: 12px 16px; margin: 0; background: #1a1a1a;" title="Clear search">✕</button>
<input type="text" id="searchInput" placeholder="Search domains and feeds..."
style="flex: 1; padding: 12px; background: #0a0a0a; border: 1px solid #333; border-radius: 4px; color: #fff;">
<button id="searchBtn" class="cmd-btn" style="padding: 12px 16px; margin: 0; font-size: 18px;" title="Search">↵</button>
</div>
</div>
<div id="topSectionSpacer"></div>
<div class="card" id="outputCard">
<div id="output"></div>
</div>
<div style="color: #333; font-size: 11px; margin-top: 10px;">v100</div>
<div style="color: #333; font-size: 11px; margin-top: 10px;">v213</div>
<div class="updated" id="updatedAt">Last updated: {{.UpdatedAt.Format "2006-01-02 15:04:05"}}</div>
</body>