fix: use configured cooldown as cap for rate limit wait times
- Cooldown now caps API-provided reset times instead of being a fallback - Fixed misleading UI descriptions for cooldown settings - Removed unused cooldownDurationMs from settings object - Updated default fallback values in frontend to 10s Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -267,9 +267,10 @@ document.addEventListener('alpine:init', () => {
|
||||
persistentSessions: "Persistent Sessions",
|
||||
persistTokenDesc: "Save OAuth sessions to disk for faster restarts",
|
||||
rateLimiting: "Account Rate Limiting & Timeouts",
|
||||
defaultCooldown: "Default Cooldown Time",
|
||||
maxWaitThreshold: "Max Wait Threshold (Sticky)",
|
||||
maxWaitDesc: "Maximum time to wait for a sticky account to reset before switching.",
|
||||
defaultCooldown: "Default Cooldown",
|
||||
defaultCooldownDesc: "Fallback cooldown when API doesn't provide a reset time.",
|
||||
maxWaitThreshold: "Max Wait Before Error",
|
||||
maxWaitDesc: "If all accounts are rate-limited longer than this, error immediately instead of waiting.",
|
||||
saveConfigServer: "Save Configuration",
|
||||
serverRestartAlert: "Changes saved to {path}. Restart server to apply some settings.",
|
||||
changePassword: "Change WebUI Password",
|
||||
@@ -544,8 +545,9 @@ document.addEventListener('alpine:init', () => {
|
||||
persistTokenDesc: "将登录会话保存到磁盘以实现快速重启",
|
||||
rateLimiting: "账号限流与超时",
|
||||
defaultCooldown: "默认冷却时间",
|
||||
maxWaitThreshold: "最大等待阈值 (粘性会话)",
|
||||
maxWaitDesc: "粘性账号在失败或切换前等待重置的最长时间。",
|
||||
defaultCooldownDesc: "当 API 未提供重置时间时的备用冷却时间。",
|
||||
maxWaitThreshold: "最大等待阈值",
|
||||
maxWaitDesc: "如果所有账号的限流时间超过此阈值,立即返回错误而非等待。",
|
||||
saveConfigServer: "保存配置",
|
||||
serverRestartAlert: "配置已保存至 {path}。部分更改可能需要重启服务器。",
|
||||
changePassword: "修改 WebUI 密码",
|
||||
|
||||
@@ -1052,27 +1052,29 @@
|
||||
<span class="label-text text-gray-400 text-xs"
|
||||
x-text="$store.global.t('defaultCooldown')">Default Cooldown</span>
|
||||
<span class="label-text-alt font-mono text-neon-cyan text-xs font-semibold"
|
||||
x-text="Math.round((serverConfig.defaultCooldownMs || 60000) / 1000) + 's'"></span>
|
||||
x-text="Math.round((serverConfig.defaultCooldownMs || 10000) / 1000) + 's'"></span>
|
||||
</label>
|
||||
<div class="flex gap-3 items-center">
|
||||
<input type="range" min="1000" max="300000" step="1000"
|
||||
class="custom-range custom-range-cyan flex-1"
|
||||
:value="serverConfig.defaultCooldownMs || 60000"
|
||||
:style="`background-size: ${((serverConfig.defaultCooldownMs || 60000) - 1000) / 2990}% 100%`"
|
||||
:value="serverConfig.defaultCooldownMs || 10000"
|
||||
:style="`background-size: ${((serverConfig.defaultCooldownMs || 10000) - 1000) / 2990}% 100%`"
|
||||
@input="toggleDefaultCooldownMs($event.target.value)"
|
||||
aria-label="Default cooldown slider">
|
||||
<input type="number" min="1000" max="300000" step="1000"
|
||||
class="input input-xs input-bordered w-24 bg-space-800 border-space-border text-white font-mono text-center"
|
||||
:value="serverConfig.defaultCooldownMs || 60000"
|
||||
:value="serverConfig.defaultCooldownMs || 10000"
|
||||
@change="toggleDefaultCooldownMs($event.target.value)"
|
||||
aria-label="Default cooldown value">
|
||||
</div>
|
||||
<p class="text-[9px] text-gray-600 mt-1 leading-tight"
|
||||
x-text="$store.global.t('defaultCooldownDesc')">Fallback cooldown when API doesn't provide a reset time.</p>
|
||||
</div>
|
||||
|
||||
<div class="form-control">
|
||||
<label class="label pt-0">
|
||||
<span class="label-text text-gray-400 text-xs"
|
||||
x-text="$store.global.t('maxWaitThreshold')">Max Wait (Sticky)</span>
|
||||
x-text="$store.global.t('maxWaitThreshold')">Max Wait Before Error</span>
|
||||
<span class="label-text-alt font-mono text-neon-cyan text-xs font-semibold"
|
||||
x-text="((serverConfig.maxWaitBeforeErrorMs || 120000) >= 60000 ? Math.round((serverConfig.maxWaitBeforeErrorMs || 120000) / 60000) + 'm' : Math.round((serverConfig.maxWaitBeforeErrorMs || 120000) / 1000) + 's')"></span>
|
||||
</label>
|
||||
@@ -1082,16 +1084,15 @@
|
||||
:value="serverConfig.maxWaitBeforeErrorMs || 120000"
|
||||
:style="`background-size: ${(serverConfig.maxWaitBeforeErrorMs || 120000) / 6000}% 100%`"
|
||||
@input="toggleMaxWaitBeforeErrorMs($event.target.value)"
|
||||
aria-label="Max wait threshold slider">
|
||||
aria-label="Max wait before error slider">
|
||||
<input type="number" min="0" max="600000" step="10000"
|
||||
class="input input-xs input-bordered w-24 bg-space-800 border-space-border text-white font-mono text-center"
|
||||
:value="serverConfig.maxWaitBeforeErrorMs || 120000"
|
||||
@change="toggleMaxWaitBeforeErrorMs($event.target.value)"
|
||||
aria-label="Max wait threshold value">
|
||||
aria-label="Max wait before error value">
|
||||
</div>
|
||||
<p class="text-[9px] text-gray-600 mt-1 leading-tight"
|
||||
x-text="$store.global.t('maxWaitDesc')">Maximum time to wait for a sticky account to
|
||||
reset before switching.</p>
|
||||
x-text="$store.global.t('maxWaitDesc')">If all accounts are rate-limited longer than this, error immediately.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user