优化检测升级的下载逻辑

This commit is contained in:
hjdhnx 2023-11-23 19:30:22 +08:00
parent 3dc2618c96
commit cf82c6f39b
7 changed files with 48 additions and 16 deletions

View File

@ -37,6 +37,7 @@ OCR_API = 'https://api.nn.ci/ocr/b64/text' # 验证码识别接口,传参数dat
UNAME = 'admin' # 管理员账号
PWD = 'drpy' # 管理员密码
USE_PY = 0 # 开启py源
FORCE_UP = 1 # 带进度条下载失败后强制下载
JS0_DISABLE = 0 # 禁用js0
JS0_PASSWORD = '' # js0密码
JS_MODE = 0 # js模式 0 drpy服务器解析 1 pluto本地解析

View File

@ -43,13 +43,14 @@ def admin_index(): # 管理员界面
lsg = storage_service()
live_url = lsg.getItem('LIVE_URL')
use_py = lsg.getItem('USE_PY')
force_up = lsg.getItem('FORCE_UP')
js0_password = lsg.getItem('JS0_PASSWORD')
# print(f'live_url:', live_url)
rules = getRules('js')
# print(rules)
cache_count = getCacheCount()
# print(cache_count)
return render_template('admin.html', js0_password=js0_password, pystate=use_py, rules=rules,
return render_template('admin.html', js0_password=js0_password, pystate=use_py,force_up=force_up, rules=rules,
cache_count=cache_count, ver=getLocalVer(), live_url=live_url)
@ -215,7 +216,8 @@ def admin_update_ver():
return R.failed('请登录后再试')
lsg = storage_service()
update_proxy = lsg.getItem('UPDATE_PROXY')
msg = download_new_version(update_proxy)
force_up = lsg.getItem('FORCE_UP')
msg = download_new_version(update_proxy,force_up)
return R.success(msg)
@ -365,6 +367,18 @@ def admin_change_use_py():
msg = f'已修改的配置记录id为:{id},结果为{state}'
return R.success(msg)
@admin.route('/change_force_up')
def admin_change_force_up():
if not verfy_token():
return R.failed('请登录后再试')
lsg = storage_service()
force_up = lsg.getItem('FORCE_UP')
new_force_up = '' if force_up else '1'
state = '开启' if new_force_up else '关闭'
id = lsg.setItem('FORCE_UP', new_force_up)
msg = f'已修改的配置记录id为:{id},结果为{state}'
return R.success(msg)
@admin.route('/clear_drop')
def admin_clear_drop():

View File

@ -22,7 +22,7 @@ class storage_service(object):
return copy_utils.obj_to_list(res)
def __init__(self):
conf_list = ['LIVE_URL', 'USE_PY', 'JS_MODE', 'JS0_DISABLE', 'JS0_PASSWORD', 'PLAY_URL', 'PLAY_DISABLE',
conf_list = ['LIVE_URL', 'USE_PY', 'FORCE_UP', 'JS_MODE', 'JS0_DISABLE', 'JS0_PASSWORD', 'PLAY_URL', 'PLAY_DISABLE',
'LAZYPARSE_MODE', 'WALL_PAPER_ENABLE',
'WALL_PAPER', 'UNAME', 'PWD', 'LIVE_MODE', 'CATE_EXCLUDE', 'TAB_EXCLUDE', 'SEARCH_TIMEOUT',
'SEARCH_LIMIT', 'MULTI_MODE', 'XR_MODE', 'JS_PROXY', 'UPDATE_PROXY', 'ENV', 'ALI_TOKEN', 'OCR_API',
@ -35,12 +35,12 @@ class storage_service(object):
@classmethod
def getStoreConf(self):
# MAX_CONTENT_LENGTH 最大上传和端口ip一样是顶级配置,无法外部修改的
conf_list = ['LIVE_URL', 'LIVE_MODE', 'PLAY_URL', 'PID_URL', 'USE_PY', 'JS_MODE', 'JS0_DISABLE', 'JS0_PASSWORD',
conf_list = ['LIVE_URL', 'LIVE_MODE', 'PLAY_URL', 'PID_URL', 'USE_PY', 'FORCE_UP','JS_MODE', 'JS0_DISABLE', 'JS0_PASSWORD',
'PLAY_DISABLE', 'LAZYPARSE_MODE', 'WALL_PAPER_ENABLE',
'WALL_PAPER', 'UNAME', 'PWD', 'CATE_EXCLUDE', 'TAB_EXCLUDE', 'SEARCH_TIMEOUT', 'SEARCH_LIMIT',
'MULTI_MODE', 'XR_MODE', 'JS_PROXY', 'UPDATE_PROXY', 'ENV', 'SPECIAL', 'SPIDER_JAR',
'EXT_FUNC', 'JS_MAX_LENGTH', 'ALI_TOKEN', 'OCR_API']
conf_name_list = ['直播地址', '直播模式', '远程地址', '进程管理链接', '启用py源', 'js模式', '禁用js0',
conf_name_list = ['直播地址', '直播模式', '远程地址', '进程管理链接', '启用py源','强制下载', 'js模式', '禁用js0',
'js0密码', '禁用免嗅', '免嗅模式', '启用壁纸', '壁纸链接', '管理账号',
'管理密码', '分类排除', '线路排除', '聚搜超时', '搜索条数', '多源模式', '仙人模式', '源代理',
'升级代理', '环境变量', '优选源', '挂载JAR', '辅助规则', '源体积', '阿里tk', 'OCR接口']

View File

@ -1,3 +1,5 @@
###### 2023/11/23
- [X] 3.9.49beta6 检测升级逻辑优化,增加强制下载逻辑开关
###### 2023/11/22
- [X] 3.9.49beta1 增加网页直播功能
- [X] 3.9.49beta2 修复post搜索兼容性。带#传递搜索参数将不再处理[]逻辑

View File

@ -1 +1 @@
3.9.49beta5
3.9.49beta6

View File

@ -275,6 +275,20 @@
});
});
$('#force_up').click(function () {
$.get("/admin/change_force_up", function (data, status) {
console.log(data);
if (data.code === 200) {
alert(data.msg);
location.reload();
} else {
alert(data.msg);
console.log('升级失败了...');
return false
}
});
});
$("#logtail").click(function () {
location.href = '/admin/logtail';
});
@ -352,6 +366,7 @@
<li><a href="javascript:void(0);" class="funcbtn" id="checkUpdate">检测升级</a></li>
<li><a href="javascript:void(0);" class="funcbtn" id="force_update">强制升级</a></li>
<li><a href="javascript:void(0);" class="funcbtn" id="choose_update">手动升级</a></li>
<li><a href="javascript:void(0);" class="funcbtn" id="force_up">已{% if force_up=='1' %}启用{% else %}关闭{% endif %}强制下载</a></li>
<input type="file" id="fileInput" accept=".zip,.rar" style="display:none;">
</ul>
</li>

View File

@ -198,7 +198,7 @@ def copy_to_update():
return True
def download_new_version(update_proxy='https://ghproxy.liuzhicong.com/'):
def download_new_version(update_proxy='https://ghproxy.liuzhicong.com/',force_up=False):
update_proxy = (update_proxy or '').strip()
logger.info(f'update_proxy:{update_proxy}')
t1 = getTime()
@ -218,17 +218,17 @@ def download_new_version(update_proxy='https://ghproxy.liuzhicong.com/'):
logger.info(f'开始下载:{url}')
download_path = os.path.join(tmp_path, 'dr_py.zip')
# r = requests.get(url, headers=headers, timeout=(20, 20), verify=False)
# rb = r.content
# # 保存文件前清空目录
# del_file(tmp_path)
# with open(download_path,mode='wb+') as f:
# f.write(rb)
# 2023/11/18 改为带进度条的下载
download_ok = file_downloads([{'url': url, 'name': 'dr_py.zip'}], tmp_path)
if not download_ok:
return '带进度条的下载升级文件失败。具体参考后台日志'
if not download_ok and not force_up:
return '带进度条的下载升级文件失败,并没有启用强制下载功能。具体参考后台日志'
elif not download_ok and force_up:
r = requests.get(url, headers=headers, timeout=(20, 20), verify=False)
rb = r.content
# 保存文件前清空目录
del_file(tmp_path)
with open(download_path,mode='wb+') as f:
f.write(rb)
# print(f'开始解压文件:{download_path}')
logger.info(f'开始解压文件:{download_path}')