180 lines
252 KiB
HTML
180 lines
252 KiB
HTML
|
|
<!DOCTYPE html>
|
||
|
|
<html lang="zh-CN">
|
||
|
|
<head>
|
||
|
|
<meta charset="UTF-8">
|
||
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
|
<title>FRAISEMOE-Addons-Installer</title>
|
||
|
|
<link rel="stylesheet" href="/static/css/loading.css">
|
||
|
|
<link rel="shortcut icon" href="https://static-cos.ovofish.com/static/miraipip/img/favicon.ico" type="image/x-icon">
|
||
|
|
<style>
|
||
|
|
body, html {
|
||
|
|
height: 100%;
|
||
|
|
margin: 0;
|
||
|
|
padding: 0;
|
||
|
|
display: flex;
|
||
|
|
justify-content: center;
|
||
|
|
align-items: center;
|
||
|
|
flex-direction: column;
|
||
|
|
}
|
||
|
|
|
||
|
|
.background-layer {
|
||
|
|
position: fixed;
|
||
|
|
top: 0;
|
||
|
|
left: 0;
|
||
|
|
width: 100%;
|
||
|
|
height: 100%;
|
||
|
|
background: url('https://static-cos.ovofish.com/static/nekopara/img/bg.webp') no-repeat center center/cover;
|
||
|
|
z-index: -1;
|
||
|
|
}
|
||
|
|
|
||
|
|
.download-container {
|
||
|
|
margin: 20px auto;
|
||
|
|
padding: 20px;
|
||
|
|
max-width: 600px;
|
||
|
|
min-width: 480px;
|
||
|
|
border-radius: 10px;
|
||
|
|
box-shadow: 0 3px 10px rgba(0,0,0,0.1);
|
||
|
|
background-color: #ffffff;
|
||
|
|
text-align: center;
|
||
|
|
}
|
||
|
|
|
||
|
|
h3 {
|
||
|
|
color: #2c3e50;
|
||
|
|
margin-bottom: 15px;
|
||
|
|
border-bottom: 2px solid #3498db;
|
||
|
|
padding-bottom: 10px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.download-link {
|
||
|
|
display: block;
|
||
|
|
padding: 12px 20px;
|
||
|
|
margin: 15px 0;
|
||
|
|
background-color: #f8f9fa;
|
||
|
|
color: #1a73e8;
|
||
|
|
text-decoration: none;
|
||
|
|
border-radius: 6px;
|
||
|
|
transition: all 0.3s ease;
|
||
|
|
border: 1px solid #dadce0;
|
||
|
|
font-weight: 500;
|
||
|
|
}
|
||
|
|
|
||
|
|
.download-link:hover {
|
||
|
|
background-color: #e3f2fd;
|
||
|
|
transform: translateY(-2px);
|
||
|
|
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
|
||
|
|
}
|
||
|
|
|
||
|
|
#version_info {
|
||
|
|
margin-top: 20px;
|
||
|
|
padding: 10px 15px;
|
||
|
|
background-color: #f1f8e9;
|
||
|
|
border-radius: 6px;
|
||
|
|
color: #33691e;
|
||
|
|
font-size: 14px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.error {
|
||
|
|
background-color: #ffebee !important;
|
||
|
|
color: #c62828 !important;
|
||
|
|
}
|
||
|
|
|
||
|
|
a {
|
||
|
|
text-decoration: none;
|
||
|
|
}
|
||
|
|
</style>
|
||
|
|
</head>
|
||
|
|
<body>
|
||
|
|
<div id="loading">
|
||
|
|
<div id="boxlogo" class="fl">
|
||
|
|
<span id="logo" class="fl" style="margin-left: 110px;">
|
||
|
|
<img data-v-loadimg1=""
|
||
|
|
src="data:image/png;base64,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
|
||
|
|
</span>
|
||
|
|
<div id="RTXT" class="fl ml2e opcy0">
|
||
|
|
<p class="clf margin_top_3em">Powered By</p>
|
||
|
|
<p class="clf">Akeno Misaki</p>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
<div class="background-layer"></div>
|
||
|
|
|
||
|
|
<div class="download-container">
|
||
|
|
<a href="https://github.com/Yanam1Anna/FRAISEMOE-Addons-Installer"><h3>FRAISEMOE-Addons-Installer</h3></a>
|
||
|
|
<a id="github_url" class="download-link" href="#"></a>
|
||
|
|
<a id="mirror_url" class="download-link" href="#"></a>
|
||
|
|
<div id="version_info">正在获取版本信息...</div>
|
||
|
|
</div>
|
||
|
|
<script>
|
||
|
|
// 页面加载完成后执行加载动画 (已调整部分)
|
||
|
|
window.onload = function () {
|
||
|
|
setTimeout(function () {
|
||
|
|
setTimeout(loadingAnime1, 1000);
|
||
|
|
setTimeout(loadingAnime2, 2000);
|
||
|
|
setTimeout(loadingDisableAnime, 4000);
|
||
|
|
setTimeout(loadingDisable, 6000);
|
||
|
|
}, 100);
|
||
|
|
};
|
||
|
|
function loadingDisableAnime() {
|
||
|
|
document.querySelector('#loading').classList.add('disable');
|
||
|
|
}
|
||
|
|
function loadingDisable() {
|
||
|
|
document.querySelector('#loading').style.display = 'none';
|
||
|
|
}
|
||
|
|
function loadingAnime1() {
|
||
|
|
document.querySelector('#logo').classList.add('logomove');
|
||
|
|
}
|
||
|
|
function loadingAnime2() {
|
||
|
|
document.querySelector('#RTXT').classList.add('opcy1');
|
||
|
|
document.querySelector('#RTXT').classList.remove('opcy0');
|
||
|
|
}
|
||
|
|
</script>
|
||
|
|
<script>
|
||
|
|
document.addEventListener('DOMContentLoaded', function() {
|
||
|
|
const downloadUrl = 'https://archive.ovofish.com/var/widget/api/nekopara/download.php';
|
||
|
|
const githubLink = document.getElementById('github_url');
|
||
|
|
const mirrorLink = document.getElementById('mirror_url');
|
||
|
|
const versionInfo = document.getElementById('version_info');
|
||
|
|
|
||
|
|
githubLink.textContent = "获取GitHub链接中...";
|
||
|
|
mirrorLink.textContent = "获取镜像链接中...";
|
||
|
|
|
||
|
|
fetch(downloadUrl)
|
||
|
|
.then(response => {
|
||
|
|
if (!response.ok) {
|
||
|
|
throw new Error(`HTTP错误! 状态码: ${response.status}`);
|
||
|
|
}
|
||
|
|
return response.json();
|
||
|
|
})
|
||
|
|
.then(data => {
|
||
|
|
if (data.code !== 200) {
|
||
|
|
throw new Error(data.msg || 'API返回非成功状态');
|
||
|
|
}
|
||
|
|
|
||
|
|
if (!data.ghurl || !data.mirror || !data.version) {
|
||
|
|
throw new Error('下载链接或版本信息缺失');
|
||
|
|
}
|
||
|
|
|
||
|
|
githubLink.href = data.ghurl;
|
||
|
|
githubLink.textContent = `GitHub下载 (v${data.version})`;
|
||
|
|
|
||
|
|
mirrorLink.href = data.mirror;
|
||
|
|
mirrorLink.textContent = `镜像站下载 (v${data.version})`;
|
||
|
|
|
||
|
|
versionInfo.textContent = `当前版本: ${data.version} | 检测更新时间: ${data.updatetime}`;
|
||
|
|
})
|
||
|
|
.catch(error => {
|
||
|
|
console.error('获取下载链接失败:', error);
|
||
|
|
githubLink.textContent = "GitHub下载 (获取失败)";
|
||
|
|
githubLink.style.color = "red";
|
||
|
|
|
||
|
|
mirrorLink.textContent = "镜像站下载 (获取失败)";
|
||
|
|
mirrorLink.style.color = "red";
|
||
|
|
|
||
|
|
versionInfo.textContent = `错误: ${error.message}`;
|
||
|
|
versionInfo.style.color = 'red';
|
||
|
|
});
|
||
|
|
});
|
||
|
|
</script>
|
||
|
|
</body>
|
||
|
|
</html>
|