drpy升级,支持后台管理切换jar
This commit is contained in:
parent
eea97ca8f3
commit
989bf8ee76
@ -59,3 +59,4 @@ UPDATE_PROXY = 'https://ghproxy.net/' # 检测升级代理
|
|||||||
THREAD = True # 开启windows多线程调用
|
THREAD = True # 开启windows多线程调用
|
||||||
GEVENT = True # windows开启此参数就不走gevent,方便调试
|
GEVENT = True # windows开启此参数就不走gevent,方便调试
|
||||||
SPECIAL = '腾云驾雾:腾讯&奇珍异兽:爱奇艺&百忙无果:芒果&优酷&哔哩影视&Alist&CMS_非凡资源:非凡&CMS_量子资源:量子' # 特殊优选
|
SPECIAL = '腾云驾雾:腾讯&奇珍异兽:爱奇艺&百忙无果:芒果&优酷&哔哩影视&Alist&CMS_非凡资源:非凡&CMS_量子资源:量子' # 特殊优选
|
||||||
|
SPIDER_JAR = 'custom_spider_qy0627.jar'
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
# 可以使用Python的 # 单行注释
|
# 可以使用Python的 # 单行注释
|
||||||
|
|
||||||
{
|
{
|
||||||
# "spider": "{{host}}/files/custom_spider.jar",
|
# "spider": "{{host}}/libs/jar/custom_spider.jar",
|
||||||
"parses":[
|
"parses":[
|
||||||
{"name":"keyu","type":1,"url":"http://newjiexi.gotka.top/keyu3.php?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","乐视","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/4.1.0"}}},
|
{"name":"keyu","type":1,"url":"http://newjiexi.gotka.top/keyu3.php?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","乐视","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/4.1.0"}}},
|
||||||
],
|
],
|
||||||
|
|||||||
@ -21,6 +21,7 @@ from utils.parser import runJScode
|
|||||||
from werkzeug.utils import secure_filename
|
from werkzeug.utils import secure_filename
|
||||||
from utils.web import md5
|
from utils.web import md5
|
||||||
from utils.common_api import js_render
|
from utils.common_api import js_render
|
||||||
|
from utils.files import get_jar_list
|
||||||
|
|
||||||
admin = Blueprint("admin", __name__)
|
admin = Blueprint("admin", __name__)
|
||||||
|
|
||||||
@ -59,7 +60,10 @@ def admin_settings(): # 管理员界面
|
|||||||
# conf_list = 'LIVE_URL|USE_PY|PLAY_URL|PLAY_DISABLE|LAZYPARSE_MODE|WALL_PAPER_ENABLE|WALL_PAPER|UNAME|PWD|LIVE_MODE|LIVE_URL|CATE_EXCLUDE|TAB_EXCLUDE'.split('|')
|
# conf_list = 'LIVE_URL|USE_PY|PLAY_URL|PLAY_DISABLE|LAZYPARSE_MODE|WALL_PAPER_ENABLE|WALL_PAPER|UNAME|PWD|LIVE_MODE|LIVE_URL|CATE_EXCLUDE|TAB_EXCLUDE'.split('|')
|
||||||
conf_lists = lsg.getStoreConf()
|
conf_lists = lsg.getStoreConf()
|
||||||
# print(conf_lists)
|
# print(conf_lists)
|
||||||
return render_template('settings.html', conf_lists=conf_lists, ver=getLocalVer())
|
jar_lists = get_jar_list()
|
||||||
|
SPIDER_JAR = lsg.getItem('SPIDER_JAR', 'custom_spider.jar')
|
||||||
|
return render_template('settings.html', conf_lists=conf_lists, jar_lists=jar_lists, jar_now=SPIDER_JAR,
|
||||||
|
ver=getLocalVer())
|
||||||
|
|
||||||
|
|
||||||
@admin.route('/save_conf', methods=['POST'])
|
@admin.route('/save_conf', methods=['POST'])
|
||||||
@ -94,6 +98,7 @@ def admin_edit_rule(name):
|
|||||||
return render_template('login.html')
|
return render_template('login.html')
|
||||||
return render_template('edit_rule.html', name=name)
|
return render_template('edit_rule.html', name=name)
|
||||||
|
|
||||||
|
|
||||||
@admin.route("/edit2/<name>", methods=['GET'])
|
@admin.route("/edit2/<name>", methods=['GET'])
|
||||||
def admin_edit2_rule(name):
|
def admin_edit2_rule(name):
|
||||||
# print(name)
|
# print(name)
|
||||||
@ -101,6 +106,7 @@ def admin_edit2_rule(name):
|
|||||||
return render_template('login.html')
|
return render_template('login.html')
|
||||||
return render_template('edit_rule_mobile.html', name=name)
|
return render_template('edit_rule_mobile.html', name=name)
|
||||||
|
|
||||||
|
|
||||||
@admin.route("/save_edit/<name>", methods=['POST'])
|
@admin.route("/save_edit/<name>", methods=['POST'])
|
||||||
def admin_save_edit_rule(name):
|
def admin_save_edit_rule(name):
|
||||||
# print(name)
|
# print(name)
|
||||||
|
|||||||
@ -191,7 +191,10 @@ def get_lives():
|
|||||||
|
|
||||||
@home.route('/liveslib')
|
@home.route('/liveslib')
|
||||||
def get_liveslib():
|
def get_liveslib():
|
||||||
live_path = 'js/custom_spider.jar'
|
lsg = storage_service()
|
||||||
|
SPIDER_JAR = lsg.getItem('SPIDER_JAR', 'custom_spider.jar')
|
||||||
|
live_path = f'libs/jar/{SPIDER_JAR}'
|
||||||
|
logger.info(f'SPIDER_JAR:{SPIDER_JAR}>>当前系统挂载的指定jar文件位置:{live_path}')
|
||||||
if not os.path.exists(live_path):
|
if not os.path.exists(live_path):
|
||||||
with open(live_path,mode='w+',encoding='utf-8') as f:
|
with open(live_path,mode='w+',encoding='utf-8') as f:
|
||||||
f.write('')
|
f.write('')
|
||||||
|
|||||||
@ -26,7 +26,7 @@ class storage_service(object):
|
|||||||
'LAZYPARSE_MODE', 'WALL_PAPER_ENABLE',
|
'LAZYPARSE_MODE', 'WALL_PAPER_ENABLE',
|
||||||
'WALL_PAPER', 'UNAME', 'PWD', 'LIVE_MODE', 'CATE_EXCLUDE', 'TAB_EXCLUDE', 'SEARCH_TIMEOUT',
|
'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',
|
'SEARCH_LIMIT', 'MULTI_MODE', 'XR_MODE', 'JS_PROXY', 'UPDATE_PROXY', 'ENV', 'ALI_TOKEN', 'OCR_API',
|
||||||
'SPECIAL']
|
'SPECIAL','SPIDER_JAR']
|
||||||
for conf in conf_list:
|
for conf in conf_list:
|
||||||
if not self.hasItem(conf):
|
if not self.hasItem(conf):
|
||||||
print(f'开始初始化{conf}')
|
print(f'开始初始化{conf}')
|
||||||
@ -38,11 +38,11 @@ class storage_service(object):
|
|||||||
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', 'JS_MODE', 'JS0_DISABLE', 'JS0_PASSWORD',
|
||||||
'PLAY_DISABLE', 'LAZYPARSE_MODE', 'WALL_PAPER_ENABLE',
|
'PLAY_DISABLE', 'LAZYPARSE_MODE', 'WALL_PAPER_ENABLE',
|
||||||
'WALL_PAPER', 'UNAME', 'PWD', 'CATE_EXCLUDE', 'TAB_EXCLUDE', 'SEARCH_TIMEOUT', 'SEARCH_LIMIT',
|
'WALL_PAPER', 'UNAME', 'PWD', 'CATE_EXCLUDE', 'TAB_EXCLUDE', 'SEARCH_TIMEOUT', 'SEARCH_LIMIT',
|
||||||
'MULTI_MODE', 'XR_MODE', 'JS_PROXY', 'UPDATE_PROXY', 'ENV', 'SPECIAL', 'ALI_TOKEN', 'OCR_API']
|
'MULTI_MODE', 'XR_MODE', 'JS_PROXY', 'UPDATE_PROXY', 'ENV', 'SPECIAL', 'SPIDER_JAR', 'ALI_TOKEN', 'OCR_API']
|
||||||
conf_name_list = ['直播地址', '直播模式', '远程地址', '进程管理链接', '启用py源', 'js模式', '禁用js0',
|
conf_name_list = ['直播地址', '直播模式', '远程地址', '进程管理链接', '启用py源', 'js模式', '禁用js0',
|
||||||
'js0密码', '禁用免嗅', '免嗅模式', '启用壁纸', '壁纸链接', '管理账号',
|
'js0密码', '禁用免嗅', '免嗅模式', '启用壁纸', '壁纸链接', '管理账号',
|
||||||
'管理密码', '分类排除', '线路排除', '聚搜超时', '搜索条数', '多源模式', '仙人模式', '源代理',
|
'管理密码', '分类排除', '线路排除', '聚搜超时', '搜索条数', '多源模式', '仙人模式', '源代理',
|
||||||
'升级代理', '环境变量', '优选源', '阿里tk', 'OCR接口']
|
'升级代理', '环境变量', '优选源', '挂载JAR', '阿里tk', 'OCR接口']
|
||||||
conf_lists = []
|
conf_lists = []
|
||||||
for i in range(len(conf_list)):
|
for i in range(len(conf_list)):
|
||||||
conf = conf_list[i]
|
conf = conf_list[i]
|
||||||
|
|||||||
@ -1,3 +1,7 @@
|
|||||||
|
###### 2023/06/30
|
||||||
|
- [X] 后台管理增加jar文件切换,文件放在libs/jar目录即可
|
||||||
|
- [X] 3.9.45beta1
|
||||||
|
|
||||||
###### 2023/06/12
|
###### 2023/06/12
|
||||||
- [X] 发布新版本,增加谷歌跨域设置说明。播放页手动增加&debug=1 这个参数可以实现强制嗅探(浏览器支持跨域的情况下手动调试使用)
|
- [X] 发布新版本,增加谷歌跨域设置说明。播放页手动增加&debug=1 这个参数可以实现强制嗅探(浏览器支持跨域的情况下手动调试使用)
|
||||||
```text
|
```text
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
{"showTime":89200000,"txt":"drpy 3.9.44beta1 -道长"}
|
{"showTime":89200000,"txt":"drpy 3.9.45beta1 -道长"}
|
||||||
@ -1 +1 @@
|
|||||||
3.9.44beta7
|
3.9.45beta1
|
||||||
@ -30,6 +30,21 @@ input.conf {
|
|||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
select.conf {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
width: 120px;
|
||||||
|
border-radius: 25px;
|
||||||
|
height: 20px;
|
||||||
|
border: 1px solid #60afca;
|
||||||
|
text-align: center;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
padding-left: 10px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
.edit_conf{
|
.edit_conf{
|
||||||
border: 1px solid #000000;
|
border: 1px solid #000000;
|
||||||
color: #000000;
|
color: #000000;
|
||||||
|
|||||||
@ -37,7 +37,7 @@
|
|||||||
// alert(data.msg);
|
// alert(data.msg);
|
||||||
layer.msg(data.msg,{time:1000});
|
layer.msg(data.msg,{time:1000});
|
||||||
console.log('保存'+key+'成功了...');
|
console.log('保存'+key+'成功了...');
|
||||||
$(`input.conf[name="${key}"]`).val(value);
|
$(`*.conf[name="${key}"]`).val(value);
|
||||||
if(/UNAME|PWD/.test(params.key)){
|
if(/UNAME|PWD/.test(params.key)){
|
||||||
location.reload();
|
location.reload();
|
||||||
}
|
}
|
||||||
@ -68,14 +68,14 @@
|
|||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$(".save_conf").click(function () {
|
$(".save_conf").click(function () {
|
||||||
let key = $(this).attr('value');
|
let key = $(this).attr('value');
|
||||||
let value = $(`input.conf[name="${key}"]`).val();
|
let value = $(`*.conf[name="${key}"]`).val();
|
||||||
if(checkValue(key,value)){
|
if(checkValue(key,value)){
|
||||||
saveConf(key,value);
|
saveConf(key,value);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$('.edit_conf').click(function (){
|
$('.edit_conf').click(function (){
|
||||||
let key = $(this).attr('value');
|
let key = $(this).attr('value');
|
||||||
let value = $(`input.conf[name="${key}"]`).val();
|
let value = $(`*.conf[name="${key}"]`).val();
|
||||||
layer.prompt({
|
layer.prompt({
|
||||||
formType: 2,
|
formType: 2,
|
||||||
value: value,
|
value: value,
|
||||||
@ -139,7 +139,20 @@
|
|||||||
<span class="label{{conf.name|length}}">
|
<span class="label{{conf.name|length}}">
|
||||||
{{ conf.name }}:
|
{{ conf.name }}:
|
||||||
</span>
|
</span>
|
||||||
|
{% if conf.key!="SPIDER_JAR" %}
|
||||||
<input class="conf" type="text" name="{{ conf.key }}" placeholder="请输入{{ conf.key }}..." value="{{ conf.value }}"/>
|
<input class="conf" type="text" name="{{ conf.key }}" placeholder="请输入{{ conf.key }}..." value="{{ conf.value }}"/>
|
||||||
|
{% else %}
|
||||||
|
<select class="conf" name="{{ conf.key }}">
|
||||||
|
<!-- <option>-请选择-</option>-->
|
||||||
|
{% for jar in jar_lists %}
|
||||||
|
{% if jar==jar_now %}
|
||||||
|
<option selected>{{jar}}</option>
|
||||||
|
{% else %}
|
||||||
|
<option>{{jar}}</option>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
{% endif %}
|
||||||
<a class="edit_conf btn_option" href="javascript:void(0);" value="{{ conf.key }}">编辑</a>
|
<a class="edit_conf btn_option" href="javascript:void(0);" value="{{ conf.key }}">编辑</a>
|
||||||
<a class="save_conf btn_option" href="javascript:void(0);" value="{{ conf.key }}">保存</a>
|
<a class="save_conf btn_option" href="javascript:void(0);" value="{{ conf.key }}">保存</a>
|
||||||
{% if loop.last==False %}</br>{% endif %}{% endfor %}
|
{% if loop.last==False %}</br>{% endif %}{% endfor %}
|
||||||
|
|||||||
@ -65,6 +65,19 @@ def getAlist():
|
|||||||
print(f'获取alist列表失败:{e}')
|
print(f'获取alist列表失败:{e}')
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
def get_jar_list():
|
||||||
|
base_path = os.path.dirname(os.path.abspath(os.path.dirname(__file__))) # 上级目录
|
||||||
|
jar_path = os.path.join(base_path, 'libs/jar')
|
||||||
|
if not os.path.exists(jar_path):
|
||||||
|
os.makedirs(jar_path, exist_ok=True)
|
||||||
|
logger.info(f'初始化{jar_path}目录')
|
||||||
|
|
||||||
|
jars = os.listdir(jar_path)
|
||||||
|
jars = list(filter(lambda x: str(x).endswith('.jar') and str(x).find('base') < 0, jars))
|
||||||
|
# print(jars)
|
||||||
|
# jar_list = [file.replace('.jar', '') for file in jars]
|
||||||
|
return jars
|
||||||
|
|
||||||
def custom_merge(original:dict,custom:dict):
|
def custom_merge(original:dict,custom:dict):
|
||||||
"""
|
"""
|
||||||
合并用户配置
|
合并用户配置
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user