feat(proxy): 添加动态代理支持

- 在代理获取逻辑中集成动态代理 API 调用
- 新增动态代理配置界面和 API 接口
- 扩展设置模型以支持动态代理参数
- 更新前端设置页面和 JavaScript 逻辑
This commit is contained in:
cnlimiter
2026-03-16 02:06:21 +08:00
parent 9dbb6e4e26
commit 97a8c01b9f
5 changed files with 242 additions and 5 deletions

View File

@@ -99,6 +99,48 @@
</div>
</div>
<!-- 动态代理配置 -->
<div class="card" style="margin-top: var(--spacing-lg);">
<div class="card-header">
<h3>动态代理配置</h3>
<span class="hint">通过 API 每次获取新代理 IP优先级高于静态代理和代理列表</span>
</div>
<div class="card-body">
<form id="dynamic-proxy-form">
<div class="form-group">
<label>
<input type="checkbox" id="dynamic-proxy-enabled" name="enabled">
启用动态代理
</label>
</div>
<div class="form-group">
<label for="dynamic-proxy-api-url">代理 API 地址</label>
<input type="text" id="dynamic-proxy-api-url" name="api_url" placeholder="http://api.example.com/get_proxy">
<small style="color: var(--text-muted);">每次注册任务启动时调用此 API 获取代理 URL</small>
</div>
<div class="form-row">
<div class="form-group">
<label for="dynamic-proxy-api-key">API 密钥 (可选)</label>
<input type="password" id="dynamic-proxy-api-key" name="api_key" placeholder="留空保持不变" autocomplete="new-password">
</div>
<div class="form-group">
<label for="dynamic-proxy-api-key-header">密钥请求头</label>
<input type="text" id="dynamic-proxy-api-key-header" name="api_key_header" value="X-API-Key">
</div>
</div>
<div class="form-group">
<label for="dynamic-proxy-result-field">JSON 字段路径 (可选)</label>
<input type="text" id="dynamic-proxy-result-field" name="result_field" placeholder="例如: data.proxy 或留空使用响应原文">
<small style="color: var(--text-muted);">若 API 返回 JSON填写点号分隔的字段路径提取代理 URL留空则将响应原文作为代理 URL</small>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary">💾 保存设置</button>
<button type="button" class="btn btn-secondary" id="test-dynamic-proxy-btn">🔌 测试动态代理</button>
</div>
</form>
</div>
</div>
<!-- 代理列表 -->
<div class="card" style="margin-top: var(--spacing-lg);">
<div class="card-header">