🚫新增一键卸载PyOne功能

PyOne3.0
abbeyokgo 5 years ago
parent 1310b31ba3
commit 4b0c92f7bf
  1. 27
      admin.py
  2. 3
      function.py
  3. 454
      static/js/offdownload.js
  4. 270
      templates/admin/layout.html
  5. 491
      templates/admin/offdownload.html

@ -539,6 +539,12 @@ def RPCserver():
ret=ret2
return jsonify(ret)
@admin.route('/clearHist',methods=['POST'])
def clearHist():
down_db.delete_many({})
ret={'msg':'清除成功!'}
return jsonify(ret)
###
@ -621,7 +627,28 @@ def install():
resp.headers['Expires'] = '0'
return resp
###########################################卸载
@admin.route('/uninstall',methods=['POST'])
def uninstall():
type_=request.form.get('type')
if type_=='mongodb':
items.remove()
down_db.remove()
msg='删除mongodb数据成功'
elif type_=='redis':
rd.flushdb()
msg='删除redis数据成功'
elif type_=='directory':
subprocess.Popen('rm -rf {}/data/*.json'.format(config_dir),shell=True)
msg='删除网站数据成功'
else:
msg='数据已清除!如果需要删除目录请运行:rm -rf {}'.format(config_dir)
ret={'msg':msg}
return jsonify(ret)
###########################################网盘管理
@admin.route('/',methods=['GET','POST'])
@admin.route('/panage',methods=['GET','POST'])
def panage():

@ -1192,7 +1192,8 @@ def download_and_upload(url,remote_dir,user,gid=None):
cur_order=down_db.count()
option={"dir":down_path,"split":"16","max-connection-per-server":"8","seed-ratio":"0.1","bt-save-metadata":"false","bt-max-peers":"200","header":["User-Agent:Transmission/2.77"]}
item={}
gid=json.loads(p.addUri(url,option))[0]["result"]
r=p.addUri(url,option)
gid=json.loads(r)[0]["result"]
item['gid']=gid
a=json.loads(p.tellStatus(gid))[0]["result"]
if 'magnet:?xt=' in url:

@ -0,0 +1,454 @@
var need_refresh=true;
function ShowNotice(msg){
mdui.snackbar({
message: msg,
position: 'top'
});
}
function reserveCheck(name) {
var revalue = document.getElementsByName(name);
for (i = 0; i < revalue.length; i++) {
if (revalue[i].checked == true){
revalue[i].checked = false;
need_refresh=true;
}
else {
revalue[i].checked = true;
need_refresh=false;
}
}
}
function SelectGid(){
need_refresh=!need_refresh;
}
function DoAction(action,gid){
var defer = $.Deferred();
$.ajax({
type: "POST",
url: "/admin/jsonrpc",
data: { action:action,gid:gid },
cache: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
ShowNotice(data['result'][0]['msg']);
defer.promise();
}
});
}
function pause(gid){
var defer = $.Deferred();
$.ajax({
type: "POST",
url: "/admin/jsonrpc",
data: { action:'pause',gid:gid },
cache: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
ShowNotice(data['result'][0]['msg']);
defer.promise();
}
});
}
function unpause(gid){
var defer = $.Deferred();
$.ajax({
type: "POST",
url: "/admin/jsonrpc",
data: { action:'unpause',gid:gid },
cache: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
ShowNotice(data['result'][0]['msg']);
defer.promise();
}
});
}
function remove(gid){
var defer = $.Deferred();
$.ajax({
type: "POST",
url: "/admin/jsonrpc",
data: { action:'remove',gid:gid },
cache: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
ShowNotice(data['result'][0]['msg']);
defer.promise();
}
});
}
function removeAll(gid){
var defer = $.Deferred();
$.ajax({
type: "POST",
url: "/admin/jsonrpc",
data: { action:'removeAll',gid:gid },
cache: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
ShowNotice(data['result'][0]['msg']);
defer.promise();
}
});
}
function restart(gid){
var defer = $.Deferred();
$.ajax({
type: "POST",
url: "/admin/jsonrpc",
data: { action:'restart',gid:gid },
cache: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
ShowNotice(data['result'][0]['msg']);
defer.promise();
}
});
}
function selected(gid){
var defer = $.Deferred();
$.ajax({
type: "POST",
url: "/admin/jsonrpc",
data: { action:'selected',gid:gid },
cache: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
ShowNotice(data['result'][0]['msg']);
defer.promise();
}
});
}
function unselected(gid){
var defer = $.Deferred();
$.ajax({
type: "POST",
url: "/admin/jsonrpc",
data: { action:'unselected',gid:gid },
cache: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
ShowNotice(data['result'][0]['msg']);
defer.promise();
}
});
}
function ClearHist(){
layer.confirm('确定清除任务?', {
btn: ['确定','取消'] //按钮
},
function(index){
layer.close(index);
$.ajax({
type: "POST",
url: "/admin/clearHist",
dataType: "json",
beforeSend: function(xhr) {
var index2 = layer.load(2, {
shade: [0.1, '#fff'] //0.1透明度的白色背景
});
},
success: function(data) {
ShowNotice(data.msg);
},
complete: function(xhr) {
$('#layui-layer-shade1').remove();
setTimeout("window.location.reload();",2000);
}
});
}
);
}
function tellActive() {
var defer = $.Deferred();
var getTimestamp=new Date().getTime();
$.ajax({
type: "POST",
url: "/admin/jsonrpc?t="+getTimestamp,
data: { action:'tellActive' },
cache: false, //使用同步的方式,true为异步方式
// async: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
if(!need_refresh){
return
}
if (data.code==1) {
$('#active').empty();
for (var i = data.result.length - 1; i >= 0; i--) {
t=data.result[i];
html=' <div class="mdui-panel-item" onclick="SelectGid();">';
//header
html+=' <div class="mdui-panel-item-header">';
html+=' <div class="mdui-col-xs-6 mdui-text-truncate">'+t['title']+'</div>';
html+=' <div class="mdui-col-xs-2">'+t['size']+' / '+t['down_percent']+'</div>';
//active -- >pause/unpause/remove
td=' <div class="mdui-col-xs-2">&nbsp;&nbsp;&nbsp;';
if(t['down_status']=='暂停下载'){
td+='<button class="mdui-btn mdui-btn-icon" onclick="unpause(\''+t['gid']+'\')" mdui-tooltip="{content: \'开始任务\'}"><i class="mdui-icon material-icons">&#xe037;</i></button> ';
}
else{
td+='<button class="mdui-btn mdui-btn-icon" onclick="pause(\''+t['gid']+'\')" mdui-tooltip="{content: \'暂停任务\'}"><i class="mdui-icon material-icons">&#xe047;</i></button> ';
}
// if(t['selectable']=='true'){
// td+='<button class="mdui-btn mdui-btn-icon" onclick="unselected(\''+t['gid']+'#'+t['idx']+'\')" mdui-tooltip="{content: \'选择不下载文件\'}"><i class="mdui-icon material-icons">&#xe5c9;</i></button>';
// }
// td+='<button class="mdui-btn mdui-btn-icon" onclick="remove(\''+t['gid']+'#'+t['idx']+'\')" mdui-tooltip="{content: \'删除任务\'}"><i class="mdui-icon material-icons">&#xe872;</i></button>';
td+='<button class="mdui-btn mdui-btn-icon" onclick="removeAll(\''+t['gid']+'\')" mdui-tooltip="{content: \'删除同磁力下所有任务\'}"><i class="mdui-icon material-icons">&#xe92b;</i></button>';
td+='<button class="mdui-btn mdui-btn-icon" onclick="restart(\''+t['gid']+'\')" mdui-tooltip="{content: \'重新开始\'}"><i class="mdui-icon material-icons">&#xe863;</i></button> ';
td+=' </div>';
html+=td;
//active end
html+=' </div>';
//header end
//内嵌页面
html+=' <div class="mdui-panel-item-body">';
html+=' <ul class="mdui-list mdui-color-blue-50 mdui-typo-caption">'
// subtitle
html+='<li class="mdui-list-item mdui-ripple">';
html+='<div class="mdui-col-xs-8 mdui-col-offset-xs-1">文件名</div>';
html+='<div class="mdui-col-xs-1 ">大小</div>';
html+='<div class="mdui-col-xs-1 ">下载</div>';
html+='<div class="mdui-col-xs-1 ">上传</div>';
html+='<div class="mdui-col-xs-1 ">操作</div>';
html+='</li>';
// subtitle end
for (var j = 0; j <= t.files.length - 1; j++) {
file=t.files[j];
inner_html='<li class="mdui-list-item mdui-ripple">';
inner_html+='<div class="mdui-col-xs-8 mdui-col-offset-xs-1 mdui-typo-body-1">'+file['name']+'</div>';
inner_html+='<div class="mdui-col-xs-1 ">'+file['size']+'</div>';
inner_html+='<div class="mdui-col-xs-1 ">'+file['down_status']+'</div>';
inner_html+='<div class="mdui-col-xs-1 ">'+file['up_status']+'</div>';
//sub操作
inner_html+='<div class="mdui-col-xs-1 ">';
if(file['selected']=='true'){
inner_html+='<button class="mdui-btn mdui-btn-icon" onclick="unselected(\''+t['gid']+'#'+file['idx']+'\')" mdui-tooltip="{content: \'选择不下载文件\'}"><i class="mdui-icon material-icons">&#xe834;</i></button>';
}
else{
inner_html+='<button class="mdui-btn mdui-btn-icon" onclick="selected(\''+t['gid']+'#'+file['idx']+'\')" mdui-tooltip="{content: \'选择下载文件\'}"><i class="mdui-icon material-icons">&#xe835;</i></button>';
}
inner_html+='</div>';
//sub操作 end
inner_html+='</li>'
html+=inner_html;
}
html+=' </ul>';
html+=' </div>';
//内嵌结束
html+=' </div>';
$('#active').append(html);
}
} else {
ShowNotice(data.msg);
}
},
complete:function(){
defer.promise();
tellFail();
}
});
}
function tellFail() {
var defer = $.Deferred();
var getTimestamp=new Date().getTime();
$.ajax({
type: "POST",
url: "/admin/jsonrpc?t="+getTimestamp,
data: { action:'tellFail' },
cache: false, //使用同步的方式,true为异步方式
// async: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
if(!need_refresh){
return
}
if (data.code==1) {
$('#fail').empty();
for (var i = 0; i <= data.result.length - 1; i++) {
t=data.result[i];
html=' <div class="mdui-panel-item" onclick="SelectGid();">';
//header
html+=' <div class="mdui-panel-item-header">';
html+=' <div class="mdui-col-xs-6 mdui-text-truncate">'+t['title']+'</div>';
html+=' <div class="mdui-col-xs-2">'+t['size']+' / '+t['down_percent']+'</div>';
//active -- >pause/unpause/remove
td=' <div class="mdui-col-xs-2">&nbsp;&nbsp;&nbsp;';
if(t['down_status']=='暂停下载'){
td+='<button class="mdui-btn mdui-btn-icon" onclick="unpause(\''+t['gid']+'\')" mdui-tooltip="{content: \'开始任务\'}"><i class="mdui-icon material-icons">&#xe037;</i></button> ';
}
else{
td+='<button class="mdui-btn mdui-btn-icon" onclick="pause(\''+t['gid']+'\')" mdui-tooltip="{content: \'暂停任务\'}"><i class="mdui-icon material-icons">&#xe047;</i></button> ';
}
// if(t['selectable']=='true'){
// td+='<button class="mdui-btn mdui-btn-icon" onclick="unselected(\''+t['gid']+'#'+t['idx']+'\')" mdui-tooltip="{content: \'选择不下载文件\'}"><i class="mdui-icon material-icons">&#xe5c9;</i></button>';
// }
// td+='<button class="mdui-btn mdui-btn-icon" onclick="remove(\''+t['gid']+'#'+t['idx']+'\')" mdui-tooltip="{content: \'删除任务\'}"><i class="mdui-icon material-icons">&#xe872;</i></button>';
td+='<button class="mdui-btn mdui-btn-icon" onclick="removeAll(\''+t['gid']+'\')" mdui-tooltip="{content: \'删除同磁力下所有任务\'}"><i class="mdui-icon material-icons">&#xe92b;</i></button>';
td+='<button class="mdui-btn mdui-btn-icon" onclick="restart(\''+t['gid']+'\')" mdui-tooltip="{content: \'重新开始\'}"><i class="mdui-icon material-icons">&#xe863;</i></button> ';
td+=' </div>';
html+=td;
//active end
html+=' </div>';
//header end
//内嵌页面
html+=' <div class="mdui-panel-item-body">';
html+=' <ul class="mdui-list mdui-color-blue-50 mdui-typo-caption">'
// subtitle
html+='<li class="mdui-list-item mdui-ripple">';
html+='<div class="mdui-col-xs-8 mdui-col-offset-xs-1">文件名</div>';
html+='<div class="mdui-col-xs-1 ">大小</div>';
html+='<div class="mdui-col-xs-1 ">下载</div>';
html+='<div class="mdui-col-xs-1 ">上传</div>';
html+='<div class="mdui-col-xs-1 ">操作</div>';
html+='</li>';
// subtitle end
for (var j = 0; j <= t.files.length - 1; j++) {
file=t.files[j];
inner_html='<li class="mdui-list-item mdui-ripple">';
inner_html+='<div class="mdui-col-xs-8 mdui-col-offset-xs-1 mdui-typo-body-1">'+file['name']+'</div>';
inner_html+='<div class="mdui-col-xs-1 ">'+file['size']+'</div>';
inner_html+='<div class="mdui-col-xs-1 ">'+file['down_status']+'</div>';
inner_html+='<div class="mdui-col-xs-1 ">'+file['up_status']+'</div>';
//sub操作
inner_html+='<div class="mdui-col-xs-1 ">';
if(file['selected']=='true'){
inner_html+='<button class="mdui-btn mdui-btn-icon" onclick="unselected(\''+t['gid']+'#'+file['idx']+'\')" mdui-tooltip="{content: \'选择不下载文件\'}"><i class="mdui-icon material-icons">&#xe834;</i></button>';
}
else{
inner_html+='<button class="mdui-btn mdui-btn-icon" onclick="selected(\''+t['gid']+'#'+file['idx']+'\')" mdui-tooltip="{content: \'选择下载文件\'}"><i class="mdui-icon material-icons">&#xe835;</i></button>';
}
inner_html+='</div>';
//sub操作 end
inner_html+='</li>'
html+=inner_html;
}
html+=' </ul>';
html+=' </div>';
//内嵌结束
html+=' </div>';
$('#fail').append(html);
}
} else {
ShowNotice(data.msg);
}
},
complete:function(){
defer.promise();
tellSuccess();
}
});
}
function tellSuccess() {
var defer = $.Deferred();
var getTimestamp=new Date().getTime();
$.ajax({
type: "POST",
url: "/admin/jsonrpc?t="+getTimestamp,
data: { action:'tellSuccess' },
cache: false,
// async: false,
dataType: "json",
success: function(data) {
defer.resolve(data);
if(!need_refresh){
return
}
$('#success').empty();
if (data.code==1) {
for (var i = 0; i <= data.result.length - 1; i++) {
t=data.result[i];
html=' <div class="mdui-panel-item" onclick="SelectGid();">';
//header
html+=' <div class="mdui-panel-item-header">';
html+=' <div class="mdui-col-xs-6 mdui-text-truncate">'+t['title']+'</div>';
html+=' <div class="mdui-col-xs-2">'+t['size']+' / '+t['down_percent']+'</div>';
//active -- >pause/unpause/remove
td=' <div class="mdui-col-xs-2">&nbsp;&nbsp;&nbsp;';
// if(t['selectable']=='true'){
// td+='<button class="mdui-btn mdui-btn-icon" onclick="unselected(\''+t['gid']+'#'+t['idx']+'\')" mdui-tooltip="{content: \'选择不下载文件\'}"><i class="mdui-icon material-icons">&#xe5c9;</i></button>';
// }
// td+='<button class="mdui-btn mdui-btn-icon" onclick="remove(\''+t['gid']+'#'+t['idx']+'\')" mdui-tooltip="{content: \'删除任务\'}"><i class="mdui-icon material-icons">&#xe872;</i></button>';
td+='<button class="mdui-btn mdui-btn-icon" onclick="removeAll(\''+t['gid']+'\')" mdui-tooltip="{content: \'删除同磁力下所有任务\'}"><i class="mdui-icon material-icons">&#xe92b;</i></button>';
td+='<button class="mdui-btn mdui-btn-icon" onclick="restart(\''+t['gid']+'\')" mdui-tooltip="{content: \'重新开始\'}"><i class="mdui-icon material-icons">&#xe863;</i></button> ';
td+=' </div>';
html+=td;
//active end
html+=' </div>';
//header end
//内嵌页面
html+=' <div class="mdui-panel-item-body">';
html+=' <ul class="mdui-list mdui-color-blue-50 mdui-typo-caption">'
// subtitle
html+='<li class="mdui-list-item mdui-ripple">';
html+='<div class="mdui-col-xs-8 mdui-col-offset-xs-1">文件名</div>';
html+='<div class="mdui-col-xs-1 ">大小</div>';
html+='<div class="mdui-col-xs-1 ">下载</div>';
html+='<div class="mdui-col-xs-1 ">上传</div>';
html+='<div class="mdui-col-xs-1 ">操作</div>';
html+='</li>';
// subtitle end
for (var j = 0; j <= t.files.length - 1; j++) {
file=t.files[j];
inner_html='<li class="mdui-list-item mdui-ripple">';
inner_html+='<div class="mdui-col-xs-8 mdui-col-offset-xs-1 mdui-typo-body-1">'+file['name']+'</div>';
inner_html+='<div class="mdui-col-xs-1 ">'+file['size']+'</div>';
inner_html+='<div class="mdui-col-xs-1 ">'+file['down_status']+'</div>';
inner_html+='<div class="mdui-col-xs-1 ">'+file['up_status']+'</div>';
//sub操作
inner_html+='<div class="mdui-col-xs-1 ">';
inner_html+='</div>';
//sub操作 end
inner_html+='</li>'
html+=inner_html;
}
html+=' </ul>';
html+=' </div>';
//内嵌结束
html+=' </div>';
$('#success').append(html);
}
} else {
ShowNotice(data.msg);
}
},
complete: function(){
defer.promise();
// tellUnselected();
}
});
}
function Refresh(){
tellActive();
}
var interval_id=null;
function AutoRefresh(){
if (interval_id){
window.clearInterval(interval_id);
}
interval_id = window.setInterval(function(){
if(need_refresh){
Refresh();
}
},2000);
}
AutoRefresh();

@ -1,30 +1,41 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0, user-scalable=no"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0, user-scalable=no" />
<title>PyOne系统管理</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/mdui@0.4.1/dist/css/mdui.min.css">
<script src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/mdui@0.4.1/dist/js/mdui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/layer/2.3/layer.js"></script>
<script>$$ = mdui.JQ;</script>
<link rel="stylesheet" href="https://cdn.staticfile.org/mdui/0.4.2/css/mdui.min.css">
<script src="https://cdn.staticfile.org/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/mdui/0.4.2/js/mdui.min.js"></script>
<script src="https://cdn.staticfile.org/layer/2.3/layer.js"></script>
<script>
$$ = mdui.JQ;
</script>
<style>
img { width: 100%;height: auto;max-width: 60%; display: block; }
img {
width: 100%;
height: auto;
max-width: 60%;
display: block;
}
/* 固定到右下角的 FAB 按钮 */
.mdui-fab-fixed_left {
position: fixed !important;
/* 手机平板上距离屏幕右下角 16px */
left: 16px;
bottom: 16px;
position: fixed !important;
/* 手机平板上距离屏幕右下角 16px */
left: 16px;
bottom: 16px;
}
@media (min-width: 1024px) {
.mdui-fab-fixed_left {
/* 电脑上距离屏幕右下角 24px */
left: 24px;
bottom: 24px;
}
.mdui-fab-fixed_left {
/* 电脑上距离屏幕右下角 24px */
left: 24px;
bottom: 24px;
}
}
.mdui-container {
max-width: 980px
}
@ -37,6 +48,7 @@
width: 100%;
line-height: 48px
}
body {
background-color: #f2f5fa;
padding-bottom: 60px;
@ -80,6 +92,7 @@
.mdui-list-item:first-child {
border: none
}
footer {
padding: 16px 0;
background-color: #424242;
@ -99,86 +112,163 @@
text-align: center;
font-size: 12px
}
.layui-btn-disabled,
.layui-btn-disabled:active,
.layui-btn-disabled:hover {
border: 1px solid #e6e6e6;
background-color: #FBFBFB;
color: #C9C9C9;
cursor: not-allowed;
opacity: 1
}
</style>
</head>
<body class="mdui-drawer-body-left mdui-appbar-with-toolbar mdui-theme-primary-indigo mdui-theme-accent-blue">
<header class="mdui-appbar mdui-appbar-fixed">
<div class="mdui-toolbar mdui-color-theme">
<span class="mdui-btn mdui-btn-icon mdui-ripple mdui-ripple-white" mdui-drawer="{target: '#main-drawer', swipe: true}"><i class="mdui-icon material-icons">menu</i></span>
<a href="/" target="_blank" class="mdui-typo-headline mdui-hidden-xs">PyOne</a>
<div class="mdui-toolbar-spacer"></div>
<a href="{{url_for('admin.logout')}}"><i class="mdui-icon material-icons">&#xe8ac;</i> 登出</a>
<a href="{{url_for('admin.reload')}}"><i class="mdui-icon material-icons">&#xe5d5;</i> 重启网站</a>
</div>
</header>
<div class="mdui-drawer" id="main-drawer">
<div class="mdui-list">
<br><br>
<a href="{{url_for('admin.setting')}}" class="mdui-list-item">
<i class="mdui-list-item-icon mdui-icon material-icons">&#xe8b8;</i>
<div class="mdui-list-item-content">基本设置</div>
</a>
<a href="{{url_for('admin.setCode')}}" class="mdui-list-item">
<i class="mdui-list-item-icon mdui-icon material-icons">&#xe8b8;</i>
<div class="mdui-list-item-content">自定义代码</div>
</a>
<a href="{{url_for('admin.upload')}}" class="mdui-list-item">
<i class="mdui-list-item-icon mdui-icon material-icons">&#xe2c6;</i>
<div class="mdui-list-item-content">上传文件</div>
</a>
<a href="{{url_for('admin.cache')}}" class="mdui-list-item">
<i class="mdui-list-item-icon mdui-icon material-icons">&#xe53b;</i>
<div class="mdui-list-item-content">更新列表</div>
</a>
<a href="{{url_for('admin.panage')}}" class="mdui-list-item">
<i class="mdui-list-item-icon mdui-icon material-icons">&#xe2be;</i>
<div class="mdui-list-item-content">网盘管理</div>
</a>
<a href="{{url_for('admin.manage')}}" class="mdui-list-item">
<i class="mdui-list-item-icon mdui-icon material-icons">&#xe2bf;</i>
<div class="mdui-list-item-content">文件管理</div>
</a>
<a href="https://wiki.pyone.me/" class="mdui-list-item" target="_blank">
<i class="mdui-list-item-icon mdui-icon material-icons">&#xe887;</i>
<div class="mdui-list-item-content">使用帮助</div>
</a>
</div>
</div>
<div class="mdui-container">
<div class="mdui-typo">
{% for message in get_flashed_messages() %}
<p><mark>{{message}}</mark></p>
{% endfor %}
</div>
{%block content%}
{%endblock content%}
<footer>
<div class="mdui-container">
<div class="footer-copyright">
<p>Copyright © PyOne <a href="https://www.abbeyok.com">Abbey's Blog</a> All rights reserved.</p>
<p>Version3.0</p>
<header class="mdui-appbar mdui-appbar-fixed">
<div class="mdui-toolbar mdui-color-theme">
<span class="mdui-btn mdui-btn-icon mdui-ripple mdui-ripple-white" mdui-drawer="{target: '#main-drawer', swipe: true}"><i class="mdui-icon material-icons">menu</i></span>
<a href="/" target="_blank" class="mdui-typo-headline mdui-hidden-xs">PyOne</a>
<div class="mdui-toolbar-spacer"></div>
<a href="{{url_for('admin.logout')}}"><i class="mdui-icon material-icons">&#xe8ac;</i> 登出</a>
<a href="{{url_for('admin.reload')}}"><i class="mdui-icon material-icons">&#xe5d5;</i> 重启网站</a>
<a href="javascript:void(0);" onclick="uninstall();"><i class="mdui-icon material-icons">&#xe16c;</i> 卸载PyOne</a>
</div>
</header>
<div class="mdui-drawer" id="main-drawer">
<div class="mdui-list">
<br><br>
<a href="{{url_for('admin.setting')}}" class="mdui-list-item">
<i class="mdui-list-item-icon mdui-icon material-icons">&#xe8b8;</i>
<div class="mdui-list-item-content">基本设置</div>
</a>
<a href="{{url_for('admin.setCode')}}" class="mdui-list-item">
<i class="mdui-list-item-icon mdui-icon material-icons">&#xe8b8;</i>
<div class="mdui-list-item-content">自定义代码</div>
</a>
<a href="{{url_for('admin.upload')}}" class="mdui-list-item">
<i class="mdui-list-item-icon mdui-icon material-icons">&#xe2c6;</i>
<div class="mdui-list-item-content">上传文件</div>
</a>
<a href="{{url_for('admin.cache')}}" class="mdui-list-item">
<i class="mdui-list-item-icon mdui-icon material-icons">&#xe53b;</i>
<div class="mdui-list-item-content">更新列表</div>
</a>
<a href="{{url_for('admin.panage')}}" class="mdui-list-item">
<i class="mdui-list-item-icon mdui-icon material-icons">&#xe2be;</i>
<div class="mdui-list-item-content">网盘管理</div>
</a>
<a href="{{url_for('admin.manage')}}" class="mdui-list-item">
<i class="mdui-list-item-icon mdui-icon material-icons">&#xe2bf;</i>
<div class="mdui-list-item-content">文件管理</div>
</a>
<a href="https://wiki.pyone.me/" class="mdui-list-item" target="_blank">
<i class="mdui-list-item-icon mdui-icon material-icons">&#xe887;</i>
<div class="mdui-list-item-content">使用帮助</div>
</a>
</div>
</div>
<div class="mdui-container">
<div class="mdui-typo">
{%for message in get_flashed_messages()%}
<p><mark>{{message}}</mark></p>
{%endfor%}
</div>
</div>
</footer>
</div>
<script>
$$("a[href='"+window.location.pathname+"']").addClass("mdui-text-color-blue");
{%block content%}
{%endblock content%}
<footer>
<div class="mdui-container">
<div class="footer-copyright">
<p>Copyright © PyOne <a href="https://www.abbeyok.com">Abbey's Blog</a> All rights reserved.</p>
<p>Version3.0</p>
</div>
</div>
</footer>
</div>
<script>
$$("a[href='" + window.location.pathname + "']").addClass("mdui-text-color-blue");
{% for message in get_flashed_messages() %}
mdui.snackbar({
message: '{{message}}',
position: 'top',
timeout:1000
});
mdui.snackbar({
message: '{{message}}',
position: 'top',
timeout: 1000
});
{% endfor %}
</script>
</script>
<script type="text/javascript">
function uninstall() {
layer.confirm('真的要卸载PyOne?',
{
icon: 3,
title:'卸载',
success: function (layero, index) {
var msg = '确认';
var i = 5;
var timer = null;
$(".layui-layer-btn0").addClass("layui-btn-disabled");
var fn = function () {
layero.find(".layui-layer-btn0").text(msg + '(' + i + ')');
if (!i) {
$(".layui-layer-btn0").removeClass("layui-btn-disabled");
layero.find(".layui-layer-btn0").text(msg);
clearInterval(timer);
}
i--;
};
timer = setInterval(fn, 1000);
fn();
},
},
function(index){
layer.close(index);
layer.msg('删除mongodb数据中...', {icon: 1});
uninstall_action('mongodb');
uninstall_action('redis');
uninstall_action('directory');
$.ajax({
type: "POST",
url: "{{url_for('admin.uninstall')}}",
data:{type:'done'},
dataType: "json",
success: function(data) {
layer.alert(data.msg, {icon: 1});
}
});
});
}
function uninstall_action(type){
$.ajax({
type: "POST",
url: "{{url_for('admin.uninstall')}}",
data:{type:type},
dataType: "json",
success: function(data) {
layer.msg(data.msg, {icon: 1});
}
});
}
// layer.msg("提示语...", {
// time: 5000,
// shade: 0.6,
// success: function (layero, index) {
// var msg = layero.text();
// var i = 5;
// var timer = null;
// var fn = function () {
// layero.find(".layui-layer-content").text(msg + '(' + i + ')');
// if (!i) {
// layer.close(index);
// clearInterval(timer);
// }
// i--;
// };
// timer = setInterval(fn, 1000);
// fn();
// },
// }, function () {
// //这里写需要执行的
// });
</script>
</body>
</html>

@ -6,6 +6,7 @@
<div class="mdui-toolbar mdui-color-theme">
<button class="mdui-btn mdui-btn-icon" onclick="AddLink()" mdui-tooltip="{{'{'}}content: '添加任务'{{'}'}}"><i class="mdui-icon material-icons">&#xe250;</i></button>
<button class="mdui-btn mdui-btn-icon" onclick="window.open('http://www.torrent.org.cn/');" mdui-tooltip="{{'{'}}content: '种子转磁力'{{'}'}}"><i class="mdui-icon material-icons">&#xe428;</i></button>
<button class="mdui-btn mdui-btn-icon" onclick="ClearHist()" mdui-tooltip="{{'{'}}content: '清空任务'{{'}'}}"><i class="mdui-icon material-icons">&#xe0b8;</i></button>
</div>
<div class="nexmoe-item">
<div class="mdui-row">
@ -34,471 +35,43 @@
</div>
</div>
<script type="text/javascript" src="/static/js/offdownload.js?t=201902"></script>
<script>
var need_refresh=true;
function ShowNotice(msg){
mdui.snackbar({
message: msg,
position: 'top'
});
}
function reserveCheck(name) {
var revalue = document.getElementsByName(name);
for (i = 0; i < revalue.length; i++) {
if (revalue[i].checked == true){
revalue[i].checked = false;
need_refresh=true;
}
else {
revalue[i].checked = true;
need_refresh=false;
}
}
}
function SelectGid(){
need_refresh=!need_refresh;
}
function DoAction(action,gid){
var defer = $.Deferred();
$.ajax({
type: "POST",
url: "{{url_for('admin.RPCserver')}}",
data: { action:action,gid:gid },
cache: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
ShowNotice(data['result'][0]['msg']);
defer.promise();
}
});
}
function pause(gid){
var defer = $.Deferred();
$.ajax({
type: "POST",
url: "{{url_for('admin.RPCserver')}}",
data: { action:'pause',gid:gid },
cache: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
ShowNotice(data['result'][0]['msg']);
defer.promise();
}
});
}
function unpause(gid){
var defer = $.Deferred();
$.ajax({
type: "POST",
url: "{{url_for('admin.RPCserver')}}",
data: { action:'unpause',gid:gid },
cache: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
ShowNotice(data['result'][0]['msg']);
defer.promise();
}
});
}
function remove(gid){
var defer = $.Deferred();
$.ajax({
type: "POST",
url: "{{url_for('admin.RPCserver')}}",
data: { action:'remove',gid:gid },
cache: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
ShowNotice(data['result'][0]['msg']);
defer.promise();
}
});
}
function removeAll(gid){
var defer = $.Deferred();
$.ajax({
type: "POST",
url: "{{url_for('admin.RPCserver')}}",
data: { action:'removeAll',gid:gid },
cache: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
ShowNotice(data['result'][0]['msg']);
defer.promise();
}
});
}
function restart(gid){
var defer = $.Deferred();
$.ajax({
type: "POST",
url: "{{url_for('admin.RPCserver')}}",
data: { action:'restart',gid:gid },
cache: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
ShowNotice(data['result'][0]['msg']);
defer.promise();
}
});
}
function selected(gid){
var defer = $.Deferred();
$.ajax({
type: "POST",
url: "{{url_for('admin.RPCserver')}}",
data: { action:'selected',gid:gid },
cache: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
ShowNotice(data['result'][0]['msg']);
defer.promise();
}
});
}
function unselected(gid){
var defer = $.Deferred();
$.ajax({
type: "POST",
url: "{{url_for('admin.RPCserver')}}",
data: { action:'unselected',gid:gid },
cache: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
ShowNotice(data['result'][0]['msg']);
defer.promise();
}
});
}
function AddLink() {
layer.prompt({
formType: 2,
title: '请输入下载链接(一行一个)',
maxlength:10000
},
function(value, index, elem) {
layer.close(index);
var defer = $.Deferred();
$.ajax({
type: "POST",
url: "{{url_for('admin.off_download')}}",
data: { grand_path: "{{grand_path}}", urls: value, user: "{{cur_user}}" },
// async: false, //使用同步的方式,true为异步方式
dataType: "json",
beforeSend: function(xhr) {
var index2 = layer.load(2, {
shade: [0.1, '#fff'] //0.1透明度的白色背景
});
},
success: function(data) {
defer.resolve(data);
if (data.status) {
ShowNotice('添加任务成功!');
} else {
ShowNotice(status);
}
},
complete: function(xhr) {
defer.promise();
$('#layui-layer-shade1').remove();
setTimeout("window.location.reload();",2000);
}
});
});
}
function tellActive() {
var defer = $.Deferred();
var getTimestamp=new Date().getTime();
$.ajax({
type: "POST",
url: "{{url_for('admin.RPCserver')}}?t="+getTimestamp,
data: { action:'tellActive' },
cache: false, //使用同步的方式,true为异步方式
// async: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
if(!need_refresh){
return
}
if (data.code==1) {
$('#active').empty();
for (var i = data.result.length - 1; i >= 0; i--) {
t=data.result[i];
html=' <div class="mdui-panel-item" onclick="SelectGid();">';
//header
html+=' <div class="mdui-panel-item-header">';
html+=' <div class="mdui-col-xs-6 mdui-text-truncate">'+t['title']+'</div>';
html+=' <div class="mdui-col-xs-2">'+t['size']+' / '+t['down_percent']+'</div>';
//active -- >pause/unpause/remove
td=' <div class="mdui-col-xs-2">&nbsp;&nbsp;&nbsp;';
if(t['down_status']=='暂停下载'){
td+='<button class="mdui-btn mdui-btn-icon" onclick="unpause(\''+t['gid']+'\')" mdui-tooltip="{content: \'开始任务\'}"><i class="mdui-icon material-icons">&#xe037;</i></button> ';
}
else{
td+='<button class="mdui-btn mdui-btn-icon" onclick="pause(\''+t['gid']+'\')" mdui-tooltip="{content: \'暂停任务\'}"><i class="mdui-icon material-icons">&#xe047;</i></button> ';
}
// if(t['selectable']=='true'){
// td+='<button class="mdui-btn mdui-btn-icon" onclick="unselected(\''+t['gid']+'#'+t['idx']+'\')" mdui-tooltip="{content: \'选择不下载文件\'}"><i class="mdui-icon material-icons">&#xe5c9;</i></button>';
// }
// td+='<button class="mdui-btn mdui-btn-icon" onclick="remove(\''+t['gid']+'#'+t['idx']+'\')" mdui-tooltip="{content: \'删除任务\'}"><i class="mdui-icon material-icons">&#xe872;</i></button>';
td+='<button class="mdui-btn mdui-btn-icon" onclick="removeAll(\''+t['gid']+'\')" mdui-tooltip="{content: \'删除同磁力下所有任务\'}"><i class="mdui-icon material-icons">&#xe92b;</i></button>';
td+='<button class="mdui-btn mdui-btn-icon" onclick="restart(\''+t['gid']+'\')" mdui-tooltip="{content: \'重新开始\'}"><i class="mdui-icon material-icons">&#xe863;</i></button> ';
td+=' </div>';
html+=td;
//active end
html+=' </div>';
//header end
//内嵌页面
html+=' <div class="mdui-panel-item-body">';
html+=' <ul class="mdui-list mdui-color-blue-50 mdui-typo-caption">'
// subtitle
html+='<li class="mdui-list-item mdui-ripple">';
html+='<div class="mdui-col-xs-8 mdui-col-offset-xs-1">文件名</div>';
html+='<div class="mdui-col-xs-1 ">大小</div>';
html+='<div class="mdui-col-xs-1 ">下载</div>';
html+='<div class="mdui-col-xs-1 ">上传</div>';
html+='<div class="mdui-col-xs-1 ">操作</div>';
html+='</li>';
// subtitle end
for (var j = 0; j <= t.files.length - 1; j++) {
file=t.files[j];
inner_html='<li class="mdui-list-item mdui-ripple">';
inner_html+='<div class="mdui-col-xs-8 mdui-col-offset-xs-1 mdui-typo-body-1">'+file['name']+'</div>';
inner_html+='<div class="mdui-col-xs-1 ">'+file['size']+'</div>';
inner_html+='<div class="mdui-col-xs-1 ">'+file['down_status']+'</div>';
inner_html+='<div class="mdui-col-xs-1 ">'+file['up_status']+'</div>';
//sub操作
inner_html+='<div class="mdui-col-xs-1 ">';
if(file['selected']=='true'){
inner_html+='<button class="mdui-btn mdui-btn-icon" onclick="unselected(\''+t['gid']+'#'+file['idx']+'\')" mdui-tooltip="{content: \'选择不下载文件\'}"><i class="mdui-icon material-icons">&#xe834;</i></button>';
}
else{
inner_html+='<button class="mdui-btn mdui-btn-icon" onclick="selected(\''+t['gid']+'#'+file['idx']+'\')" mdui-tooltip="{content: \'选择下载文件\'}"><i class="mdui-icon material-icons">&#xe835;</i></button>';
}
inner_html+='</div>';
//sub操作 end
inner_html+='</li>'
html+=inner_html;
}
html+=' </ul>';
html+=' </div>';
//内嵌结束
html+=' </div>';
$('#active').append(html);
formType: 2,
title: '请输入下载链接(一行一个)',
maxlength:10000
},
function(value, index, elem) {
layer.close(index);
var defer = $.Deferred();
$.ajax({
type: "POST",
url: "/admin/off_download",
data: { grand_path: "{{grand_path}}", urls: value, user: "{{cur_user}}" },
// async: false, //使用同步的方式,true为异步方式
dataType: "json",
beforeSend: function(xhr) {
var index2 = layer.load(2, {
shade: [0.1, '#fff'] //0.1透明度的白色背景
});
},
success: function(data) {
defer.resolve(data);
if (data.status) {
ShowNotice('添加任务成功!');
} else {
ShowNotice(status);
}
} else {
ShowNotice(data.msg);
}
},
complete:function(){
defer.promise();
tellFail();
}
});
}
function tellFail() {
var defer = $.Deferred();
var getTimestamp=new Date().getTime();
$.ajax({
type: "POST",
url: "{{url_for('admin.RPCserver')}}?t="+getTimestamp,
data: { action:'tellFail' },
cache: false, //使用同步的方式,true为异步方式
// async: false, //使用同步的方式,true为异步方式
dataType: "json",
success: function(data) {
defer.resolve(data);
if(!need_refresh){
return
},
complete: function(xhr) {
defer.promise();
$('#layui-layer-shade1').remove();
setTimeout("window.location.reload();",2000);
}
if (data.code==1) {
$('#fail').empty();
for (var i = 0; i <= data.result.length - 1; i++) {
t=data.result[i];
html=' <div class="mdui-panel-item" onclick="SelectGid();">';
//header
html+=' <div class="mdui-panel-item-header">';
html+=' <div class="mdui-col-xs-6 mdui-text-truncate">'+t['title']+'</div>';
html+=' <div class="mdui-col-xs-2">'+t['size']+' / '+t['down_percent']+'</div>';
//active -- >pause/unpause/remove
td=' <div class="mdui-col-xs-2">&nbsp;&nbsp;&nbsp;';
if(t['down_status']=='暂停下载'){
td+='<button class="mdui-btn mdui-btn-icon" onclick="unpause(\''+t['gid']+'\')" mdui-tooltip="{content: \'开始任务\'}"><i class="mdui-icon material-icons">&#xe037;</i></button> ';
}
else{
td+='<button class="mdui-btn mdui-btn-icon" onclick="pause(\''+t['gid']+'\')" mdui-tooltip="{content: \'暂停任务\'}"><i class="mdui-icon material-icons">&#xe047;</i></button> ';
}
// if(t['selectable']=='true'){
// td+='<button class="mdui-btn mdui-btn-icon" onclick="unselected(\''+t['gid']+'#'+t['idx']+'\')" mdui-tooltip="{content: \'选择不下载文件\'}"><i class="mdui-icon material-icons">&#xe5c9;</i></button>';
// }
// td+='<button class="mdui-btn mdui-btn-icon" onclick="remove(\''+t['gid']+'#'+t['idx']+'\')" mdui-tooltip="{content: \'删除任务\'}"><i class="mdui-icon material-icons">&#xe872;</i></button>';
td+='<button class="mdui-btn mdui-btn-icon" onclick="removeAll(\''+t['gid']+'\')" mdui-tooltip="{content: \'删除同磁力下所有任务\'}"><i class="mdui-icon material-icons">&#xe92b;</i></button>';
td+='<button class="mdui-btn mdui-btn-icon" onclick="restart(\''+t['gid']+'\')" mdui-tooltip="{content: \'重新开始\'}"><i class="mdui-icon material-icons">&#xe863;</i></button> ';
td+=' </div>';
html+=td;
//active end
html+=' </div>';
//header end
//内嵌页面
html+=' <div class="mdui-panel-item-body">';
html+=' <ul class="mdui-list mdui-color-blue-50 mdui-typo-caption">'
// subtitle
html+='<li class="mdui-list-item mdui-ripple">';
html+='<div class="mdui-col-xs-8 mdui-col-offset-xs-1">文件名</div>';
html+='<div class="mdui-col-xs-1 ">大小</div>';
html+='<div class="mdui-col-xs-1 ">下载</div>';
html+='<div class="mdui-col-xs-1 ">上传</div>';
html+='<div class="mdui-col-xs-1 ">操作</div>';
html+='</li>';
// subtitle end
for (var j = 0; j <= t.files.length - 1; j++) {
file=t.files[j];
inner_html='<li class="mdui-list-item mdui-ripple">';
inner_html+='<div class="mdui-col-xs-8 mdui-col-offset-xs-1 mdui-typo-body-1">'+file['name']+'</div>';
inner_html+='<div class="mdui-col-xs-1 ">'+file['size']+'</div>';
inner_html+='<div class="mdui-col-xs-1 ">'+file['down_status']+'</div>';
inner_html+='<div class="mdui-col-xs-1 ">'+file['up_status']+'</div>';
//sub操作
inner_html+='<div class="mdui-col-xs-1 ">';
if(file['selected']=='true'){
inner_html+='<button class="mdui-btn mdui-btn-icon" onclick="unselected(\''+t['gid']+'#'+file['idx']+'\')" mdui-tooltip="{content: \'选择不下载文件\'}"><i class="mdui-icon material-icons">&#xe834;</i></button>';
}
else{
inner_html+='<button class="mdui-btn mdui-btn-icon" onclick="selected(\''+t['gid']+'#'+file['idx']+'\')" mdui-tooltip="{content: \'选择下载文件\'}"><i class="mdui-icon material-icons">&#xe835;</i></button>';
}
inner_html+='</div>';
//sub操作 end
inner_html+='</li>'
html+=inner_html;
}
html+=' </ul>';
html+=' </div>';
//内嵌结束
html+=' </div>';
$('#fail').append(html);
}
} else {
ShowNotice(data.msg);
}
},
complete:function(){
defer.promise();
tellSuccess();
}
});
}
function tellSuccess() {
var defer = $.Deferred();
var getTimestamp=new Date().getTime();
$.ajax({
type: "POST",
url: "{{url_for('admin.RPCserver')}}?t="+getTimestamp,
data: { action:'tellSuccess' },
cache: false,
// async: false,
dataType: "json",
success: function(data) {
defer.resolve(data);
if(!need_refresh){
return
}
$('#success').empty();
if (data.code==1) {
for (var i = 0; i <= data.result.length - 1; i++) {
t=data.result[i];
html=' <div class="mdui-panel-item" onclick="SelectGid();">';
//header
html+=' <div class="mdui-panel-item-header">';
html+=' <div class="mdui-col-xs-6 mdui-text-truncate">'+t['title']+'</div>';
html+=' <div class="mdui-col-xs-2">'+t['size']+' / '+t['down_percent']+'</div>';
//active -- >pause/unpause/remove
td=' <div class="mdui-col-xs-2">&nbsp;&nbsp;&nbsp;';
// if(t['selectable']=='true'){
// td+='<button class="mdui-btn mdui-btn-icon" onclick="unselected(\''+t['gid']+'#'+t['idx']+'\')" mdui-tooltip="{content: \'选择不下载文件\'}"><i class="mdui-icon material-icons">&#xe5c9;</i></button>';
// }
// td+='<button class="mdui-btn mdui-btn-icon" onclick="remove(\''+t['gid']+'#'+t['idx']+'\')" mdui-tooltip="{content: \'删除任务\'}"><i class="mdui-icon material-icons">&#xe872;</i></button>';
td+='<button class="mdui-btn mdui-btn-icon" onclick="removeAll(\''+t['gid']+'\')" mdui-tooltip="{content: \'删除同磁力下所有任务\'}"><i class="mdui-icon material-icons">&#xe92b;</i></button>';
td+='<button class="mdui-btn mdui-btn-icon" onclick="restart(\''+t['gid']+'\')" mdui-tooltip="{content: \'重新开始\'}"><i class="mdui-icon material-icons">&#xe863;</i></button> ';
td+=' </div>';
html+=td;
//active end
html+=' </div>';
//header end
//内嵌页面
html+=' <div class="mdui-panel-item-body">';
html+=' <ul class="mdui-list mdui-color-blue-50 mdui-typo-caption">'
// subtitle
html+='<li class="mdui-list-item mdui-ripple">';
html+='<div class="mdui-col-xs-8 mdui-col-offset-xs-1">文件名</div>';
html+='<div class="mdui-col-xs-1 ">大小</div>';
html+='<div class="mdui-col-xs-1 ">下载</div>';
html+='<div class="mdui-col-xs-1 ">上传</div>';
html+='<div class="mdui-col-xs-1 ">操作</div>';
html+='</li>';
// subtitle end
for (var j = 0; j <= t.files.length - 1; j++) {
file=t.files[j];
inner_html='<li class="mdui-list-item mdui-ripple">';
inner_html+='<div class="mdui-col-xs-8 mdui-col-offset-xs-1 mdui-typo-body-1">'+file['name']+'</div>';
inner_html+='<div class="mdui-col-xs-1 ">'+file['size']+'</div>';
inner_html+='<div class="mdui-col-xs-1 ">'+file['down_status']+'</div>';
inner_html+='<div class="mdui-col-xs-1 ">'+file['up_status']+'</div>';
//sub操作
inner_html+='<div class="mdui-col-xs-1 ">';
inner_html+='</div>';
//sub操作 end
inner_html+='</li>'
html+=inner_html;
}
html+=' </ul>';
html+=' </div>';
//内嵌结束
html+=' </div>';
$('#success').append(html);
}
} else {
ShowNotice(data.msg);
}
},
complete: function(){
defer.promise();
// tellUnselected();
}
});
});
}
function Refresh(){
tellActive();
}
var interval_id=null;
function AutoRefresh(){
if (interval_id){
window.clearInterval(interval_id);
}
interval_id = window.setInterval(function(){
if(need_refresh){
Refresh();
}
},2000);
}
AutoRefresh();
</script>
{%endblock content%}

Loading…
Cancel
Save