285 lines
7.9 KiB
HTML
285 lines
7.9 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>关于软件</title>
|
||
<link rel="stylesheet" href="/iframe/css/index.css" />
|
||
<style>
|
||
#konami-container {
|
||
position: fixed;
|
||
left: 50%;
|
||
top: 40%;
|
||
transform: translateX(-50%);
|
||
pointer-events: none;
|
||
z-index: 9999;
|
||
display: flex;
|
||
gap: 6px;
|
||
align-items: center;
|
||
justify-content: center;
|
||
flex-wrap: wrap;
|
||
}
|
||
.konami-bubble {
|
||
display: inline-block;
|
||
background: rgba(0, 0, 0, 0.78);
|
||
color: #fff;
|
||
padding: 8px 12px;
|
||
border-radius: 999px;
|
||
font-size: 18px;
|
||
line-height: 1;
|
||
opacity: 1;
|
||
animation: konamiFade 900ms ease-out forwards;
|
||
/* 移除位移动画相关 */
|
||
}
|
||
@keyframes konamiFade {
|
||
0% {
|
||
opacity: 0;
|
||
}
|
||
10% {
|
||
opacity: 1;
|
||
}
|
||
90% {
|
||
opacity: 1;
|
||
}
|
||
100% {
|
||
opacity: 0;
|
||
}
|
||
}
|
||
|
||
#page-root.shake-up {
|
||
animation: shake-up 360ms cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
|
||
}
|
||
#page-root.shake-down {
|
||
animation: shake-down 360ms cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
|
||
}
|
||
#page-root.shake-left {
|
||
animation: shake-left 360ms cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
|
||
}
|
||
#page-root.shake-right {
|
||
animation: shake-right 360ms cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
|
||
}
|
||
#page-root.shake-scale {
|
||
animation: shake-scale 360ms cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
|
||
}
|
||
@keyframes shake-up {
|
||
0% {
|
||
transform: translateY(0);
|
||
}
|
||
20% {
|
||
transform: translateY(-12px);
|
||
}
|
||
40% {
|
||
transform: translateY(6px);
|
||
}
|
||
60% {
|
||
transform: translateY(-6px);
|
||
}
|
||
80% {
|
||
transform: translateY(3px);
|
||
}
|
||
100% {
|
||
transform: translateY(0);
|
||
}
|
||
}
|
||
@keyframes shake-down {
|
||
0% {
|
||
transform: translateY(0);
|
||
}
|
||
20% {
|
||
transform: translateY(12px);
|
||
}
|
||
40% {
|
||
transform: translateY(-6px);
|
||
}
|
||
60% {
|
||
transform: translateY(6px);
|
||
}
|
||
80% {
|
||
transform: translateY(-3px);
|
||
}
|
||
100% {
|
||
transform: translateY(0);
|
||
}
|
||
}
|
||
@keyframes shake-left {
|
||
0% {
|
||
transform: translateX(0);
|
||
}
|
||
20% {
|
||
transform: translateX(-12px);
|
||
}
|
||
40% {
|
||
transform: translateX(6px);
|
||
}
|
||
60% {
|
||
transform: translateX(-6px);
|
||
}
|
||
80% {
|
||
transform: translateX(3px);
|
||
}
|
||
100% {
|
||
transform: translateX(0);
|
||
}
|
||
}
|
||
@keyframes shake-right {
|
||
0% {
|
||
transform: translateX(0);
|
||
}
|
||
20% {
|
||
transform: translateX(12px);
|
||
}
|
||
40% {
|
||
transform: translateX(-6px);
|
||
}
|
||
60% {
|
||
transform: translateX(6px);
|
||
}
|
||
80% {
|
||
transform: translateX(-3px);
|
||
}
|
||
100% {
|
||
transform: translateX(0);
|
||
}
|
||
}
|
||
@keyframes shake-scale {
|
||
0% {
|
||
transform: scale(1);
|
||
}
|
||
20% {
|
||
transform: scale(1.14);
|
||
}
|
||
40% {
|
||
transform: scale(0.92);
|
||
}
|
||
60% {
|
||
transform: scale(1.06);
|
||
}
|
||
80% {
|
||
transform: scale(0.98);
|
||
}
|
||
100% {
|
||
transform: scale(1);
|
||
}
|
||
}
|
||
|
||
body {
|
||
overflow: hidden;
|
||
}
|
||
</style>
|
||
</head>
|
||
<body id="page-root" class="bg-gray-100 flex items-center justify-center min-h-screen">
|
||
<div class="min-h-screen bg-gray-100 flex items-center justify-center">
|
||
<div class="bg-white p-4 rounded-lg w-[400px] h-[200px] flex flex-col justify-between items-center text-center">
|
||
<div>
|
||
<h1 class="text-2xl font-bold text-gray-800 mb-2" id="name"></h1>
|
||
<p class="text-[12px] text-gray-600" id="description"></p>
|
||
<p class="text-gray-600 text-sm" id="version"></p>
|
||
<p class="text-gray-600 text-sm" id="tip"></p>
|
||
</div>
|
||
|
||
<div class="flex justify-center space-x-4 mt-auto">
|
||
<a id="home" class="text-blue-600 hover:text-blue-800 text-sm transition duration-300 ease-in-out">🏠扩展主页</a>
|
||
<a id="bugs" class="text-blue-600 hover:text-blue-800 text-sm transition duration-300 ease-in-out">🐞Bug反馈</a>
|
||
<a id="check" class="text-blue-600 hover:text-blue-800 text-sm transition duration-300 ease-in-out">✨检查更新</a>
|
||
<a id="afdian" class="text-blue-600 hover:text-blue-800 text-sm transition duration-300 ease-in-out">⚡支持作者</a>
|
||
</div>
|
||
|
||
<div class="flex justify-center text-[12px] text-gray-500 mt-2">本扩展使用 Apache-2.0 许可协议开源</div>
|
||
</div>
|
||
</div>
|
||
<div id="konami-container" aria-hidden="true"></div>
|
||
<script>
|
||
// 页面加载完成
|
||
document.addEventListener('DOMContentLoaded', async function () {
|
||
const file = await eda.sys_FileSystem.getExtensionFile('/extension.json');
|
||
if (file) {
|
||
const extensionData = JSON.parse(await file.text());
|
||
document.getElementById('name').textContent = extensionData.displayName;
|
||
document.getElementById('description').textContent = extensionData.description;
|
||
document.getElementById('version').textContent = `V${extensionData.version}`;
|
||
document.getElementById('home').setAttribute('href', extensionData.homepage);
|
||
document.getElementById('bugs').setAttribute('href', extensionData.bugs);
|
||
}
|
||
|
||
const konami_unlocked = await eda.sys_Storage.getExtensionUserConfig('konami_unlocked');
|
||
if (konami_unlocked) {
|
||
document.getElementById('tip').innerHTML =
|
||
`<a onclick="eda.sys_IFrame.openIFrame('/iframe/ntr.html', 400, 200)" class="text-blue-600 hover:text-blue-800">🐮 隐藏功能 🐮</a>`;
|
||
}
|
||
});
|
||
|
||
document.addEventListener('click', function (event) {
|
||
if (event.target.tagName.toLowerCase() === 'a') {
|
||
event.preventDefault();
|
||
const url = event.target.getAttribute('href');
|
||
if (url) {
|
||
eda.sys_Window.open(url);
|
||
}
|
||
}
|
||
});
|
||
|
||
document.getElementById('check').addEventListener('click', function (event) {
|
||
event.preventDefault();
|
||
|
||
eda.sys_ClientUrl
|
||
.request('https://leye.dragon.edu.kg/release/eext.ver.json', 'GET')
|
||
.then((response) => response.json())
|
||
.then((data) => {
|
||
if (data) {
|
||
const his_list = data.versions;
|
||
const latestVersion = his_list[0].ver;
|
||
const currentVersion = document.getElementById('version').textContent.replace('V', '');
|
||
// 比较版本号,latestVersion 和 currentVersion
|
||
const latestParts = latestVersion.split('.').map(Number);
|
||
const currentParts = currentVersion.split('.').map(Number);
|
||
let isNewVersionAvailable = false;
|
||
for (let i = 0; i < Math.max(latestParts.length, currentParts.length); i++) {
|
||
const latestPart = latestParts[i] || 0;
|
||
const currentPart = currentParts[i] || 0;
|
||
if (latestPart > currentPart) {
|
||
isNewVersionAvailable = true;
|
||
break;
|
||
} else if (latestPart < currentPart) {
|
||
break;
|
||
}
|
||
}
|
||
if (isNewVersionAvailable) {
|
||
eda.sys_Message.showToastMessage(`😋 有新版本可用: V${latestVersion}`, ESYS_ToastMessageType.INFO);
|
||
document.getElementById('tip').innerHTML =
|
||
`<a href="https://lrurl.top/LeyeEEXT" target="_blank" class="text-blue-600 hover:text-blue-800">前往更新新版本</a>`;
|
||
} else {
|
||
eda.sys_Message.showToastMessage('👍 当前已是最新版本', ESYS_ToastMessageType.SUCCESS);
|
||
}
|
||
} else {
|
||
eda.sys_Message.showToastMessage(
|
||
'🥺 获取版本信息失败',
|
||
ESYS_ToastMessageType.ERROR,
|
||
undefined,
|
||
undefined,
|
||
'去瞅一眼',
|
||
"eda.sys_Window.open('https://lrurl.top/LeyeEEXT')",
|
||
);
|
||
}
|
||
})
|
||
.catch((error) => {
|
||
console.error('Error fetching version info:', error);
|
||
eda.sys_Message.showToastMessage(
|
||
'🥺 获取版本信息失败',
|
||
ESYS_ToastMessageType.ERROR,
|
||
undefined,
|
||
undefined,
|
||
'去瞅一眼',
|
||
"eda.sys_Window.open('https://lrurl.top/LeyeEEXT')",
|
||
);
|
||
});
|
||
});
|
||
|
||
document.getElementById('afdian').addEventListener('click', function (event) {
|
||
event.preventDefault();
|
||
const url = 'https://afdian.com/@Mr_Fang';
|
||
eda.sys_Window.open(url);
|
||
});
|
||
</script>
|
||
</body>
|
||
</html>
|