SakuraPanel/modules/sign.php
2020-01-18 05:51:45 +08:00

232 lines
8.7 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace SakuraPanel;
use SakuraPanel;
include(ROOT . "/core/Parsedown.php");
global $_config;
$markdown = new Parsedown();
$markdown->setSafeMode(true);
$markdown->setBreaksEnabled(true);
$markdown->setUrlsLinked(true);
$page_title = "每日签到";
$rs = Database::querySingleLine("users", Array("username" => $_SESSION['user']));
$pm = new SakuraPanel\ProxyManager();
$nm = new SakuraPanel\NodeManager();
$um = new SakuraPanel\UserManager();
if(!$rs) {
exit("<script>location='?page=login';</script>");
}
$user_traffic = $rs['traffic'] - ($um->getTodayTraffic($_SESSION['user']) / 1024 / 1024);
if(isset($_GET['sign'])) {
ob_clean();
SakuraPanel\Utils::checkCsrf();
// 欢迎来到喜闻乐见的欧皇与非酋抽流量
if(!$_config['sign']['enable']) {
exit("本站暂未开启签到功能~");
}
// 欧皇判定范围
$good_rand = round($_config['sign']['max'] * 0.7);
// 非酋判定范围
$bad_rand = round($_config['sign']['max'] * 0.2);
// 随机流量
$rand = mt_rand($_config['sign']['min'], $_config['sign']['max']);
$rs = Database::querySingleLine("sign", Array("username" => $_SESSION['user']));
if($rs) {
if(isset($rs['signdate'])) {
if(round(time() / 86400) >= (round($rs['signdate'] / 86400) + 1)) {
$totaltraffic = $rs['totaltraffic'] == "" ? "0" : $rs['totaltraffic'];
$totalsign = $rs['totalsign'] == "" ? "0" : $rs['totalsign'];
Database::update("sign", Array("signdate" => time(), "totaltraffic" => $totaltraffic + $rand, "totalsign" => $totalsign + 1), Array("username" => $_SESSION['user']));
Database::update("users", Array("traffic" => $user_traffic + ($rand * 1024)), Array("username" => $_SESSION['user']));
Database::update("proxies", Array("status" => "0"), Array("username" => $_SESSION['user'], "status" => "2"));
$randtext = "今天运气不错,";
if($rand >= $good_rand) {
$randtext = "今天欧皇手气,共";
} elseif($rand <= $bad_rand) {
$randtext = "今天是非酋,只";
}
exit("签到成功,{$randtext}获得了 {$rand}GB 流量,目前您的剩余流量为 " . round(($user_traffic + ($rand * 1024)) / 1024, 2) . "GB。");
} else {
exit("您今天已经签到过了,请明天再来");
}
} else {
Database::insert("sign", Array("id" => null, "username" => $_SESSION['user'], "signdate" => time(), "totaltraffic" => $rand, "totalsign" => 1));
Database::update("users", Array("traffic" => $user_traffic + ($rand * 1024)), Array("username" => $_SESSION['user']));
Database::update("proxies", Array("status" => "0"), Array("username" => $_SESSION['user'], "status" => "2"));
exit("签到成功,这是你第一次签到,获得了 {$rand}GB 流量。");
}
} else {
Database::insert("sign", Array("id" => null, "username" => $_SESSION['user'], "signdate" => time(), "totaltraffic" => $rand, "totalsign" => 1));
Database::update("users", Array("traffic" => $user_traffic + ($rand * 1024)), Array("username" => $_SESSION['user']));
Database::update("proxies", Array("status" => "0"), Array("username" => $_SESSION['user'], "status" => "2"));
exit("签到成功,这是你第一次签到,获得了 {$rand}GB 流量。");
}
}
$signed = false;
$ss = Database::querySingleLine("sign", Array("username" => $_SESSION['user']));
if($ss) {
if(isset($ss['signdate']) && round(time() / 86400) < (round($ss['signdate'] / 86400) + 1)) {
$signed = true;
}
}
?>
<style type="text/css">
.fix-text p {
margin-bottom: 4px;
}
.info-icon {
margin-bottom: 16px;
}
.sub-heading {
width: 100%;
height: 0!important;
border-top: 1px solid #e9f1f1!important;
text-align: center!important;
margin-top: 32px!important;
margin-bottom: 40px!important;
}
.sub-heading span {
display: inline-block;
position: relative;
padding: 0 17px;
top: -11px;
font-size: 16px;
color: #058;
background-color: #fff;
}
</style>
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1 class="m-0 text-dark"><?php echo $page_title; ?>&nbsp;&nbsp;<small class="text-muted text-xs">签到以获取免费的流量</small></h1></div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item">
<a href="?">主页</a></li>
<li class="breadcrumb-item active"><?php echo $page_title; ?></li></ol>
</div>
</div>
</div>
</div>
<div class="content">
<div class="container-fluid">
<div class="row">
<div class="col-lg-7">
<div class="card">
<div class="card-header border-0">
<div class="d-flex justify-content-between">
<h3 class="card-title">每日签到</h3>
</div>
</div>
<div class="card-body table-responsive">
<div class="row">
<div class="col-sm-9">
<?php
if($signed) {
?>
<h3 class="text-success">您今天已经签到过了噢</h3>
<p>继续保持签到就可以获得更多的流量</p>
<?php
} else {
?>
<h3 class="text-warning">您今天还没有签到哦</h3>
<p>立即签到就可以获得免费的流量,可用于内网穿透使用</p>
<?php
}
?>
</div>
<div class="col-sm-3 text-center" style="padding-top: 16px;">
<button class="btn btn-primary" onclick="sign()" <?php echo $signed ? "disabled" : ""; ?>>立即签到</button>
</div>
</div>
<div class="sub-heading">
<span>统计信息</span>
</div>
<div class="row">
<div class="col-sm-4 text-center">
<h1 class='info-icon'><i class='fas fa-calendar-check'></i></h1>
<p>总计已签到 <?php echo $ss['totalsign'] == "" ? "0" : $ss['totalsign'];?> 天</p>
</div>
<div class="col-sm-4 text-center">
<h1 class='info-icon'><i class='fas fa-rocket'></i></h1>
<p>共获得流量 <?php echo $ss['totaltraffic'] == "" ? "0" : $ss['totaltraffic'];?> GB</p>
</div>
<div class="col-sm-4 text-center">
<h1 class='info-icon'><i class='fas fa-clock'></i></h1>
<p>上次签到于 <?php echo $ss['signdate'] == "" ? "从未签到" : date("Y-m-d", $ss['signdate']);?></p>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-5">
<div class="card">
<div class="card-header border-0">
<div class="d-flex justify-content-between">
<h3 class="card-title">签到说明</h3>
</div>
</div>
<div class="card-body fix-text">
<p>欢迎使用签到系统,通过每天登录签到您可以获得免费的流量,可以用于抵消使用内网穿透产生的流量费用。</p>
<div class="sub-heading">
<span>签到配置</span>
</div>
<p>当前站点的签到系统启用状态:<?php echo $_config['sign']['enable'] ? "<span class='text-success'>已启用</span>" : "<span class='text-danger'>已禁用</span>"; ?>。</p>
<p>通过签到可以随机获得 <?php echo $_config['sign']['min']; ?> ~ <?php echo $_config['sign']['max']; ?> GB 流量。</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modal-default" style="display: none;" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="msg-title"></h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span></button>
</div>
<div class="modal-body" id="msg-body"></div>
<div class="modal-footer justify-content-between">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" data-dismiss="modal" onclick="window.location.reload()">确定</button></div>
</div>
</div>
</div>
<script type="text/javascript">
var csrf_token = "<?php echo $_SESSION['token']; ?>";
function alertMessage(title, body) {
$("#msg-title").html(title);
$("#msg-body").html(body);
$("#modal-default").modal('toggle');
}
function sign() {
var htmlobj = $.ajax({
type: 'GET',
url: "?page=panel&module=sign&sign&csrf=" + csrf_token,
async:true,
error: function() {
return;
},
success: function() {
alertMessage("提示信息", htmlobj.responseText);
return;
}
});
}
</script>