2023-01-02 19:56:44 +08:00
|
|
|
|
<!--
|
|
|
|
|
Copyright (C) 2023 admin@pmnet.gq
|
|
|
|
|
|
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
|
|
|
it under the terms of the GNU Affero General Public License as
|
|
|
|
|
published by the Free Software Foundation, either version 3 of the
|
|
|
|
|
License, or (at your option) any later version.
|
|
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
GNU Affero General Public License for more details.
|
|
|
|
|
|
|
|
|
|
You should have received a copy of the GNU Affero General Public License
|
|
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html lang="zh-cn">
|
|
|
|
|
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="UTF-8">
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
|
<link href='zlibproxy/normalize.css' rel='stylesheet' type='text/css'>
|
|
|
|
|
<link href="https://fonts.laysense.com/css/5000/zh-cn/douyufont/douyufont.css" rel="preload" as="style" onload="this.rel='stylesheet'">
|
|
|
|
|
<link href="https://fonts.laysense.com/css/5000/zh-cn/harmonyossans/harmonyossans.css" rel="preload" as="style" onload="this.rel='stylesheet'">
|
|
|
|
|
<link id="theme_css" rel="stylesheet" href="zlibproxy/sakura.css">
|
|
|
|
|
<style>
|
|
|
|
|
.pmnet { font-family: DOUYUFont;}
|
|
|
|
|
html {font-family: HarmonyOSSans;}
|
|
|
|
|
.animbox {
|
|
|
|
|
margin: 50px auto;
|
|
|
|
|
width: 200px;
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
/*设置各竖条的共有样式*/
|
|
|
|
|
.animbox > div {
|
|
|
|
|
background-color: #279fcf;
|
|
|
|
|
width: 4px;
|
|
|
|
|
height: 35px;
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
margin: 2px;
|
|
|
|
|
animation-fill-mode: both;
|
|
|
|
|
display: inline-block;
|
|
|
|
|
animation: anim 0.9s 0s infinite cubic-bezier(.11, .49, .38, .78);
|
|
|
|
|
}
|
|
|
|
|
/*设置动画延迟*/
|
|
|
|
|
.animbox > :nth-child(2), .animbox > :nth-child(4) {
|
|
|
|
|
animation-delay: 0.25s !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.animbox > :nth-child(1), .animbox > :nth-child(5) {
|
|
|
|
|
animation-delay: 0.5s !important;
|
|
|
|
|
}
|
|
|
|
|
/*定义动画*/
|
|
|
|
|
@keyframes anim {
|
|
|
|
|
0% { transform: scaley(1); }
|
|
|
|
|
80% { transform: scaley(0.3); }
|
|
|
|
|
90% { transform: scaley(1); }
|
|
|
|
|
}
|
|
|
|
|
|
2024-06-21 20:30:44 +08:00
|
|
|
|
/* 开关 - 滑块周围的框 */
|
|
|
|
|
.switch {
|
|
|
|
|
position: relative;
|
|
|
|
|
display: inline-block;
|
|
|
|
|
width: 60px;
|
|
|
|
|
height: 34px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 隐藏默认 HTML 复选框 */
|
|
|
|
|
.switch input {
|
|
|
|
|
opacity: 0;
|
|
|
|
|
width: 0;
|
|
|
|
|
height: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 滑块 */
|
|
|
|
|
.slider {
|
|
|
|
|
position: absolute;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
top: 0;
|
|
|
|
|
left: 0;
|
|
|
|
|
right: 0;
|
|
|
|
|
bottom: 0;
|
|
|
|
|
background-color: #2fbc47;
|
|
|
|
|
-webkit-transition: .4s;
|
|
|
|
|
transition: .4s;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.slider:before {
|
|
|
|
|
position: absolute;
|
|
|
|
|
content: "";
|
|
|
|
|
height: 26px;
|
|
|
|
|
width: 26px;
|
|
|
|
|
left: 4px;
|
|
|
|
|
bottom: 4px;
|
|
|
|
|
background-color: white;
|
|
|
|
|
-webkit-transition: .4s;
|
|
|
|
|
transition: .4s;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
input:checked + .slider {
|
|
|
|
|
background-color: #2196F3;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
input:focus + .slider {
|
|
|
|
|
box-shadow: 0 0 1px #2196F3;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
input:checked + .slider:before {
|
|
|
|
|
-webkit-transform: translateX(26px);
|
|
|
|
|
-ms-transform: translateX(26px);
|
|
|
|
|
transform: translateX(26px);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 圆形滑块 */
|
|
|
|
|
.slider.round {
|
|
|
|
|
border-radius: 34px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.slider.round:before {
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
}
|
2023-01-02 19:56:44 +08:00
|
|
|
|
</style>
|
2023-01-02 20:22:22 +08:00
|
|
|
|
<title>ZlibraryProxy-登录</title>
|
2023-01-02 19:56:44 +08:00
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
<body>
|
|
|
|
|
<script>
|
|
|
|
|
//切换深色模式
|
|
|
|
|
if(window.matchMedia('(prefers-color-scheme: dark)').matches){
|
|
|
|
|
document.getElementById('theme_css').href = 'zlibproxy/sakura-dark.css';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
<main>
|
|
|
|
|
<h1>Z-library Proxy</h1><hr />
|
2024-06-21 20:30:44 +08:00
|
|
|
|
<p>这是一个Zlibrary的代理镜像 ver:<?php echo(getenv('version')); ?></p>
|
|
|
|
|
<a href="<?php echo(getenv('copyright_url')); ?>" target="_blank_pmnet">由[<span class="pmnet"><?php echo(getenv('copyright')); ?></span>]维护</a>
|
2023-01-02 19:56:44 +08:00
|
|
|
|
|
|
|
|
|
<blockquote>
|
|
|
|
|
本代理利用广大的Tor代理和中继节点,基于<a href="" target="_blank_tor">TOR</a>技术提供服务
|
|
|
|
|
<br />
|
|
|
|
|
本代理使用Laysense提供的强大内部SD-WAN技术
|
|
|
|
|
<br />
|
|
|
|
|
使用前请确保您的行为符合当地法律
|
|
|
|
|
<br />
|
2024-06-21 20:30:44 +08:00
|
|
|
|
选择公网时速度更快,当公网不可用时,请选择TOR网络,TOR网络速度较慢但更安全。
|
2023-01-02 19:56:44 +08:00
|
|
|
|
<br />
|
|
|
|
|
<span style="color: coral;">本代理不会保存您的密码(仅在浏览器cookies保存您的ID)</span>
|
|
|
|
|
</blockquote>
|
|
|
|
|
|
|
|
|
|
<section>
|
|
|
|
|
|
|
|
|
|
<h4>登录到Z-Library</h4>
|
|
|
|
|
<hr />
|
|
|
|
|
<form action="new_apply.php" method="POST">
|
2024-06-21 20:30:44 +08:00
|
|
|
|
<p>公网 <label class="switch">
|
|
|
|
|
<input id="tor" type="checkbox" name="tor">
|
|
|
|
|
<span class="slider round"></span>
|
|
|
|
|
</label> TOR网络
|
|
|
|
|
</p>
|
2023-01-02 19:56:44 +08:00
|
|
|
|
<p>
|
|
|
|
|
<label for="name">*Zlibrary账号(email)</label>
|
|
|
|
|
<input required="required" name="name" id="name" placeholder="Your Zlib Username" type="email" style="width:50%">
|
|
|
|
|
</p>
|
|
|
|
|
<p>
|
|
|
|
|
<label for="password">*Zlibrary密码</label>
|
|
|
|
|
<input required="required" name="password" id="password" placeholder="Your Zilb Password" type="password" style="width:50%">
|
|
|
|
|
</p>
|
|
|
|
|
<p>
|
|
|
|
|
<label for="password">*验证码 <img style="margin-bottom:0px" src="login/code" /></label>
|
|
|
|
|
<input required="required" name="code" id="code" placeholder="CaptchaCode" type="text" style="width:35%">
|
|
|
|
|
</p>
|
|
|
|
|
<div id="load" class="animbox" style="display: none;">
|
|
|
|
|
<div></div>
|
|
|
|
|
<div></div>
|
|
|
|
|
<div></div>
|
|
|
|
|
<div></div>
|
|
|
|
|
<div></div>
|
|
|
|
|
</div>
|
|
|
|
|
<p style="color: blueviolet;" id="notice"></p>
|
|
|
|
|
</form>
|
|
|
|
|
<p>
|
|
|
|
|
<button onclick="login()" value="登录" style="width:30%">登录</button>
|
2024-06-21 20:30:44 +08:00
|
|
|
|
<button onclick="window.open('<?php echo(getenv('reg_url')); ?>')" value="注册" style="width:10%">注册</button>
|
|
|
|
|
|
|
|
|
|
<br />
|
|
|
|
|
点击登录代表您同意并接受<a href="https://www.pmnet.gq/PMNETTOS" target="_blank_tos">TOS</a>
|
2023-01-02 19:56:44 +08:00
|
|
|
|
</p>
|
|
|
|
|
</section>
|
|
|
|
|
</main>
|
|
|
|
|
<footer>
|
|
|
|
|
<hr/>
|
2024-06-21 20:30:44 +08:00
|
|
|
|
©<?php echo(getenv('copyright')); ?> 2024 Made with <a href="https://oxal.org/projects/sakura">sakura.css</a>
|
2023-01-02 19:56:44 +08:00
|
|
|
|
</footer>
|
|
|
|
|
<script src="zlibproxy/jquery-3.6.3.min.js"></script>
|
|
|
|
|
<script>
|
|
|
|
|
function login(){
|
|
|
|
|
var name = $("#name").val();
|
|
|
|
|
var password = $("#password").val();
|
|
|
|
|
var ccode = $("#code").val();
|
2024-06-21 20:30:44 +08:00
|
|
|
|
var tor = $("#tor").prop('checked');
|
|
|
|
|
|
2023-01-02 19:56:44 +08:00
|
|
|
|
$.ajax({
|
|
|
|
|
type: "POST",
|
|
|
|
|
url: '/login/check',
|
2024-06-21 20:30:44 +08:00
|
|
|
|
data: {'name':name,'password':password,'code':ccode,'tor':tor},
|
2023-01-02 19:56:44 +08:00
|
|
|
|
async: true,
|
|
|
|
|
dataType: 'json',
|
|
|
|
|
cache: false,
|
|
|
|
|
beforeSend: function () {
|
|
|
|
|
$('#notice').html('正在登录……(最多可能需要30秒以上,请耐心等待)');
|
|
|
|
|
$('#load').show();
|
|
|
|
|
},
|
|
|
|
|
success: function (data) {
|
|
|
|
|
if (data.code == 200) {
|
|
|
|
|
$('#notice').html('欢迎您'+data.userid+',正在前往Zlibrary镜像站,享受阅读的乐趣吧~');
|
|
|
|
|
setTimeout(function(){$(location).attr('href','/')},1500);
|
|
|
|
|
} else {
|
|
|
|
|
$('#notice').html(data.msg);
|
|
|
|
|
}
|
|
|
|
|
$('#load').hide();
|
|
|
|
|
},
|
|
|
|
|
clearForm: true,
|
|
|
|
|
resetForm: false
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</body>
|
|
|
|
|
|
|
|
|
|
</html>
|