eext-leye/iframe/about.html

290 lines
8.1 KiB
HTML
Raw Permalink Normal View History

2026-02-09 11:40:12 +08:00
<!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_Message.showToastMessage(
'🥺 暂不支持',
ESYS_ToastMessageType.ERROR
);
/* eda.sys_ClientUrl
.request('https://ext.lceda.cn/api/v1/extensions/his_version_list?bizKey=', 'GET')
.then((response) => response.json())
.then((data) => {
if (data && data.code === 0) {
const his_list = data.result;
const latestVersion = his_list[0].version;
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://ext.lceda.cn/item/fangs233/fangs-hyper-export" 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://ext.lceda.cn/item/fangs233/fangs-hyper-export')",
);
}
})
.catch((error) => {
console.error('Error fetching version info:', error);
eda.sys_Message.showToastMessage(
'🥺 获取版本信息失败',
ESYS_ToastMessageType.ERROR,
undefined,
undefined,
'去瞅一眼',
"eda.sys_Window.open('https://ext.lceda.cn/item/fangs233/fangs-hyper-export')",
);
}); */
});
document.getElementById('afdian').addEventListener('click', function (event) {
event.preventDefault();
const url = 'https://afdian.com/@Mr_Fang';
eda.sys_Window.open(url);
});
</script>
</body>
</html>