Fix Debrid-Link key rotation cascade failure, case-sensitive rename, and sample filter

- notDebrid (host-level) no longer burns all keys: stops rotation immediately
  with 5min cooldown instead of cycling through all 9 keys pointlessly
- Remove double provider-blockade: debrid_link_cooldown no longer stacks
  recordProviderFailure + applyProviderBusyBackoff on top of key cooldowns
- Detect timeout cascades: 2+ consecutive transport failures trigger 3min
  cooldown instead of burning remaining keys
- Case-sensitive rename: files with different casing (e.g. lowercase scene
  names) now get properly renamed instead of being skipped as "already matching"
- Extended sample filter: detect -s.mkv suffix and \Sample\ subdirectories
  in auto-rename (already worked in MKV-move)
- Add key status display with state pills in Debrid-Link key stats popup
- Add parseDebridLinkTerminalFailure for fast-fail on exhausted keys

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sucukdeluxe
2026-03-26 13:04:42 +01:00
co-authored by Claude Opus 4.6
parent 1d0b2ee8e3
commit 38179881f5
7 changed files with 288 additions and 31 deletions
+42 -4
View File
@@ -1562,10 +1562,12 @@ body,
.account-subkey-table-head .col-usage,
.account-subkey-table-head .col-limit,
.account-subkey-table-head .col-status,
.account-subkey-table-head .col-traffic,
.account-subkey-table-head .col-links,
.account-subkey-table-row .col-usage,
.account-subkey-table-row .col-limit,
.account-subkey-table-row .col-status,
.account-subkey-table-row .col-traffic,
.account-subkey-table-row .col-links {
text-align: right;
@@ -1615,6 +1617,10 @@ body,
color: var(--muted);
}
.account-subkey-table-row .col-status {
text-align: center;
}
.account-subkey-table-row .col-traffic,
.account-subkey-table-row .col-links {
text-align: center;
@@ -1630,10 +1636,42 @@ body,
gap: 6px;
}
.account-subkey-table-row .col-action .btn {
padding: 1px 6px;
font-size: 10px;
}
.account-subkey-table-row .col-action .btn {
padding: 1px 6px;
font-size: 10px;
}
.status-pill {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 88px;
padding: 2px 8px;
border-radius: 999px;
font-size: 10px;
font-weight: 600;
letter-spacing: 0.02em;
}
.status-pill-ok {
color: #166534;
background: color-mix(in srgb, #22c55e 16%, transparent);
}
.status-pill-warn {
color: #92400e;
background: color-mix(in srgb, #f59e0b 18%, transparent);
}
.status-pill-bad {
color: #991b1b;
background: color-mix(in srgb, #ef4444 14%, transparent);
}
.status-pill-muted {
color: var(--muted);
background: color-mix(in srgb, var(--field) 80%, transparent);
}
.btn-sm {
padding: 3px 8px;