feat(curating-ui): add Scan Database button to unclassified users tab
- Adds "Scan Database" button that calls the scanpubkeys API - Shows results with total pubkeys, events, and skipped count - Automatically refreshes the unclassified users list after scan Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2
app/web/dist/bundle.css
vendored
2
app/web/dist/bundle.css
vendored
File diff suppressed because one or more lines are too long
30
app/web/dist/bundle.js
vendored
30
app/web/dist/bundle.js
vendored
File diff suppressed because one or more lines are too long
2
app/web/dist/bundle.js.map
vendored
2
app/web/dist/bundle.js.map
vendored
File diff suppressed because one or more lines are too long
@@ -186,6 +186,19 @@
|
||||
}
|
||||
}
|
||||
|
||||
// Scan database for all pubkeys
|
||||
async function scanDatabase() {
|
||||
try {
|
||||
const result = await callNIP86API("scanpubkeys");
|
||||
showMessage(`Database scanned: ${result.total_pubkeys} pubkeys, ${result.total_events} events (${result.skipped} skipped)`, "success");
|
||||
// Refresh the unclassified users list
|
||||
await loadUnclassifiedUsers();
|
||||
} catch (error) {
|
||||
console.error("Failed to scan database:", error);
|
||||
showMessage("Failed to scan database: " + error.message, "error");
|
||||
}
|
||||
}
|
||||
|
||||
// Load spam events
|
||||
async function loadSpamEvents() {
|
||||
try {
|
||||
@@ -650,9 +663,14 @@
|
||||
<h3>Unclassified Users</h3>
|
||||
<p class="help-text">Users who have posted events but haven't been classified. Sorted by event count.</p>
|
||||
|
||||
<button class="refresh-btn" on:click={loadUnclassifiedUsers} disabled={isLoading}>
|
||||
Refresh
|
||||
</button>
|
||||
<div class="button-row">
|
||||
<button class="refresh-btn" on:click={loadUnclassifiedUsers} disabled={isLoading}>
|
||||
Refresh
|
||||
</button>
|
||||
<button class="scan-btn" on:click={scanDatabase} disabled={isLoading}>
|
||||
Scan Database
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="list">
|
||||
{#if unclassifiedUsers.length > 0}
|
||||
@@ -1149,6 +1167,26 @@
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.button-row {
|
||||
display: flex;
|
||||
gap: 0.5rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.scan-btn {
|
||||
padding: 0.5rem 1rem;
|
||||
background: var(--warning, #f0ad4e);
|
||||
color: var(--text-color);
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.scan-btn:disabled {
|
||||
opacity: 0.6;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.list {
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 4px;
|
||||
|
||||
Reference in New Issue
Block a user