zhuancla / templates /index.html
nbugs's picture
Update templates/index.html
08694c5 verified
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>订阅转换星空工坊 - 隐私保护版</title>
<link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}">
<link href="https://fonts.googleapis.com/css2?family=Quicksand:wght@400;500;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
</head>
<body>
<div class="stars"></div>
<div class="twinkling"></div>
<div class="container">
<header>
<div class="title-container">
<h1>✨ 订阅转换星空工坊 ✨</h1>
<p>🚀 支持Clash全协议转换 🚀</p>
<div class="privacy-badge">
<i class="fas fa-shield-alt"></i> 隐私保护版 - 本地缓存转换结果
</div>
</div>
<div class="user-actions">
<span>欢迎, {{ current_user.username }}</span>
<a href="{{ url_for('logout') }}" class="btn-logout">登出 <i class="fas fa-sign-out-alt"></i></a>
</div>
</header>
<main>
<div class="card">
<form id="convertForm">
<div class="form-group">
<label for="backend_url">
<i class="fas fa-server"></i> 后端配置地址
</label>
<input type="text" id="backend_url" name="backend_url"
placeholder="默认: https://raw.githubusercontent.com/yuanwangokk-1/subscribe/refs/heads/main/ACL4SSR/ACL4SSR.ini"
value="https://raw.githubusercontent.com/yuanwangokk-1/subscribe/refs/heads/main/ACL4SSR/ACL4SSR.ini">
</div>
<div class="form-group">
<label for="target">
<i class="fas fa-desktop"></i> 远程终端类型
</label>
<select id="target" name="target">
<option value="clash" selected>Clash</option>
<option value="clashr">ClashR</option>
<option value="surge">Surge</option>
<option value="quan">Quantumult</option>
<option value="quanx">Quantumult X</option>
<option value="loon">Loon</option>
<option value="ss">Shadowsocks</option>
<option value="ssr">SSR</option>
<option value="v2ray">V2Ray</option>
<option value="sip002">SIP002</option>
</select>
</div>
<div class="form-group">
<label for="original_url">
<i class="fas fa-link"></i> 订阅链接
</label>
<textarea id="original_url" name="original_url"
placeholder="请输入需要转换的订阅链接" required></textarea>
</div>
<button type="submit" class="btn-convert">
<i class="fas fa-magic"></i> 开始转换
</button>
</form>
</div>
<div class="card result-card" id="resultCard" style="display: none;">
<h2><i class="fas fa-check-circle"></i> 转换成功!</h2>
<div class="result-container">
<textarea id="convertResult" readonly></textarea>
<button id="copyBtn" class="btn-copy">
<i class="fas fa-copy"></i> 复制
</button>
</div>
<div class="privacy-info">
<i class="fas fa-shield-alt"></i>
<span>
当前模式: {{ conversion_mode }}
<br>
通过本地缓存加速转换并提高隐私保护 (命中率: {{ cache_hit_ratio }})
</span>
</div>
<div class="tip">
<p>⭐️ 星空不灭,网络自由永存 ⭐️</p>
</div>
</div>
<div class="admin-actions">
<button id="clearCacheBtn" class="btn-admin">
<i class="fas fa-trash"></i> 清除缓存
</button>
</div>
</main>
<footer>
<p>订阅转换星空工坊 - 隐私保护版 &copy; 2023</p>
</footer>
</div>
<div id="toast" class="toast"></div>
<script src="{{ url_for('static', filename='script.js') }}"></script>
<script>
// 添加清除缓存功能
document.getElementById('clearCacheBtn').addEventListener('click', function() {
if (confirm('确定要清除所有转换缓存吗?')) {
fetch('/clear-cache', {
method: 'POST'
})
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
showToast('缓存已清除', 'success');
} else {
showToast(data.message, 'error');
}
})
.catch(error => {
showToast('请求失败: ' + error, 'error');
});
}
});
// 全局提示函数
function showToast(message, type = 'info') {
const toast = document.getElementById('toast');
let icon = '';
if (type === 'success') icon = '<i class="fas fa-check-circle"></i> ';
else if (type === 'error') icon = '<i class="fas fa-exclamation-circle"></i> ';
else icon = '<i class="fas fa-info-circle"></i> ';
toast.innerHTML = icon + message;
toast.className = 'toast show ' + type;
setTimeout(function() {
toast.className = 'toast';
}, 3000);
}
</script>
</body>
</html>