video enrichment: show the 5 new workers in the dashboard-header orbs too

They were registered in the manager modal (WORKERS) + status poll (SERVICES) but the
dashboard HEADER renders its own per-worker .video-enrich-container buttons (with the
floating orb animation) keyed by data-video-enrich, and the orb engine has its own
WORKER_DEFS list — neither had the new services, so trakt/tvmaze/anilist/dearrow/
wikidata were absent from the header.

Added a header button + tooltip block for each (matching the fanart/opensubtitles
pattern, accent colors consistent with the manager orbs) and the matching WORKER_DEFS
entries in video-worker-orbs.js. Status was already wired via the SERVICES list, so
they now animate + report in the header identically to the existing workers.
This commit is contained in:
BoulderBadgeDad 2026-06-18 23:22:32 -07:00
parent b3f704fbfd
commit f98ceecd68
2 changed files with 85 additions and 0 deletions

View file

@ -568,6 +568,86 @@
</div>
</div>
</div>
<div class="video-enrich-container" style="--ve-accent: 31, 119, 206;">
<button class="video-enrich-button" type="button" data-video-enrich="dearrow" title="DeArrow (better YouTube titles)">
<span class="video-enrich-glyph" aria-hidden="true">&#127993;</span>
<span class="video-enrich-spinner" aria-hidden="true"></span>
</button>
<div class="video-enrich-tooltip" data-video-enrich-tooltip="dearrow">
<div class="tooltip-content">
<div class="tooltip-header">DeArrow</div>
<div class="tooltip-body">
<div class="tooltip-status">Status: <span data-video-enrich-status>Idle</span></div>
<div class="tooltip-current" data-video-enrich-current>No active matches</div>
<div class="tooltip-progress" data-video-enrich-progress>Progress: 0 / 0</div>
</div>
</div>
</div>
</div>
<div class="video-enrich-container" style="--ve-accent: 237, 28, 36;">
<button class="video-enrich-button" type="button" data-video-enrich="trakt" title="Trakt (audience rating)">
<span class="video-enrich-glyph" aria-hidden="true">&#9733;</span>
<span class="video-enrich-spinner" aria-hidden="true"></span>
</button>
<div class="video-enrich-tooltip" data-video-enrich-tooltip="trakt">
<div class="tooltip-content">
<div class="tooltip-header">Trakt</div>
<div class="tooltip-body">
<div class="tooltip-status">Status: <span data-video-enrich-status>Idle</span></div>
<div class="tooltip-current" data-video-enrich-current>No active matches</div>
<div class="tooltip-progress" data-video-enrich-progress>Progress: 0 / 0</div>
</div>
</div>
</div>
</div>
<div class="video-enrich-container" style="--ve-accent: 61, 214, 192;">
<button class="video-enrich-button" type="button" data-video-enrich="tvmaze" title="TVmaze (TV rating)">
<span class="video-enrich-glyph" aria-hidden="true">&#128250;</span>
<span class="video-enrich-spinner" aria-hidden="true"></span>
</button>
<div class="video-enrich-tooltip" data-video-enrich-tooltip="tvmaze">
<div class="tooltip-content">
<div class="tooltip-header">TVmaze</div>
<div class="tooltip-body">
<div class="tooltip-status">Status: <span data-video-enrich-status>Idle</span></div>
<div class="tooltip-current" data-video-enrich-current>No active matches</div>
<div class="tooltip-progress" data-video-enrich-progress>Progress: 0 / 0</div>
</div>
</div>
</div>
</div>
<div class="video-enrich-container" style="--ve-accent: 2, 169, 255;">
<button class="video-enrich-button" type="button" data-video-enrich="anilist" title="AniList (anime score)">
<span class="video-enrich-glyph" aria-hidden="true">&#127884;</span>
<span class="video-enrich-spinner" aria-hidden="true"></span>
</button>
<div class="video-enrich-tooltip" data-video-enrich-tooltip="anilist">
<div class="tooltip-content">
<div class="tooltip-header">AniList</div>
<div class="tooltip-body">
<div class="tooltip-status">Status: <span data-video-enrich-status>Idle</span></div>
<div class="tooltip-current" data-video-enrich-current>No active matches</div>
<div class="tooltip-progress" data-video-enrich-progress>Progress: 0 / 0</div>
</div>
</div>
</div>
</div>
<div class="video-enrich-container" style="--ve-accent: 51, 153, 102;">
<button class="video-enrich-button" type="button" data-video-enrich="wikidata" title="Wikidata (official site)">
<span class="video-enrich-glyph" aria-hidden="true">&#128279;</span>
<span class="video-enrich-spinner" aria-hidden="true"></span>
</button>
<div class="video-enrich-tooltip" data-video-enrich-tooltip="wikidata">
<div class="tooltip-content">
<div class="tooltip-header">Wikidata</div>
<div class="tooltip-body">
<div class="tooltip-status">Status: <span data-video-enrich-status>Idle</span></div>
<div class="tooltip-current" data-video-enrich-current>No active matches</div>
<div class="tooltip-progress" data-video-enrich-progress>Progress: 0 / 0</div>
</div>
</div>
</div>
</div>
<!-- Reuses music's .em-manage-btn* classes verbatim so it's
pixel-identical; wired by data-attribute (no inline
handler) via video-enrichment.js, never music's. -->

View file

@ -28,6 +28,11 @@
{ sel: '[data-video-enrich="opensubtitles"]', color: [34, 160, 121], id: 'opensubtitles' },
{ sel: '[data-video-enrich="ryd"]', color: [239, 68, 68], id: 'ryd' },
{ sel: '[data-video-enrich="sponsorblock"]', color: [0, 180, 160], id: 'sponsorblock' },
{ sel: '[data-video-enrich="dearrow"]', color: [31, 119, 206], id: 'dearrow' },
{ sel: '[data-video-enrich="trakt"]', color: [237, 28, 36], id: 'trakt' },
{ sel: '[data-video-enrich="tvmaze"]', color: [61, 214, 192], id: 'tvmaze' },
{ sel: '[data-video-enrich="anilist"]', color: [2, 169, 255], id: 'anilist' },
{ sel: '[data-video-enrich="wikidata"]', color: [51, 153, 102], id: 'wikidata' },
{ sel: '[data-video-manage-workers]', color: [168, 85, 247], hub: true },
];