Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
7fan
dr_py
提交
7483901c
dr_py
项目概览
7fan
/
dr_py
与 Fork 源项目一致
Fork自
晚风拂柳颜 / dr_py
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
dr_py
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
7483901c
编写于
10月 28, 2022
作者:
H
hjdhnx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
优化排序和 防白嫖
上级
556512b1
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
143 addition
and
43 deletion
+143
-43
base/config.py
base/config.py
+2
-0
base/rules.db
base/rules.db
+0
-0
controllers/admin.py
controllers/admin.py
+3
-1
controllers/home.py
controllers/home.py
+25
-6
controllers/layui.py
controllers/layui.py
+33
-1
controllers/parse.py
controllers/parse.py
+3
-1
controllers/service.py
controllers/service.py
+11
-4
controllers/vod.py
controllers/vod.py
+11
-1
templates/admin.html
templates/admin.html
+1
-1
templates/config.txt
templates/config.txt
+2
-2
templates/layui_list.html
templates/layui_list.html
+52
-26
未找到文件。
base/config.py
浏览文件 @
7483901c
...
@@ -36,6 +36,8 @@ OCR_API = 'http://dm.mudery.com:10000' # 验证码识别接口,传参数data
...
@@ -36,6 +36,8 @@ OCR_API = 'http://dm.mudery.com:10000' # 验证码识别接口,传参数data
UNAME
=
'admin'
# 管理员账号
UNAME
=
'admin'
# 管理员账号
PWD
=
'drpy'
# 管理员密码
PWD
=
'drpy'
# 管理员密码
USE_PY
=
0
# 开启py源
USE_PY
=
0
# 开启py源
JS0_DISABLE
=
0
# 禁用js0
JS0_PASSWORD
=
''
# js0密码
JS_MODE
=
0
# js模式 0 drpy服务器解析 1 pluto本地解析
JS_MODE
=
0
# js模式 0 drpy服务器解析 1 pluto本地解析
MAX_CONTENT_LENGTH
=
1
*
1024
*
100
# 100 kB
MAX_CONTENT_LENGTH
=
1
*
1024
*
100
# 100 kB
LIVE_MODE
=
0
# 0 本地 1外网
LIVE_MODE
=
0
# 0 本地 1外网
...
...
base/rules.db
浏览文件 @
7483901c
无法预览此类型文件
controllers/admin.py
浏览文件 @
7483901c
...
@@ -37,12 +37,13 @@ def admin_index(): # 管理员界面
...
@@ -37,12 +37,13 @@ def admin_index(): # 管理员界面
lsg
=
storage_service
()
lsg
=
storage_service
()
live_url
=
lsg
.
getItem
(
'LIVE_URL'
)
live_url
=
lsg
.
getItem
(
'LIVE_URL'
)
use_py
=
lsg
.
getItem
(
'USE_PY'
)
use_py
=
lsg
.
getItem
(
'USE_PY'
)
js0_password
=
lsg
.
getItem
(
'JS0_PASSWORD'
)
# print(f'live_url:', live_url)
# print(f'live_url:', live_url)
rules
=
getRules
(
'js'
)
rules
=
getRules
(
'js'
)
# print(rules)
# print(rules)
cache_count
=
getCacheCount
()
cache_count
=
getCacheCount
()
# print(cache_count)
# print(cache_count)
return
render_template
(
'admin.html'
,
pystate
=
use_py
,
rules
=
rules
,
cache_count
=
cache_count
,
ver
=
getLocalVer
(),
live_url
=
live_url
)
return
render_template
(
'admin.html'
,
js0_password
=
js0_password
,
pystate
=
use_py
,
rules
=
rules
,
cache_count
=
cache_count
,
ver
=
getLocalVer
(),
live_url
=
live_url
)
@
admin
.
route
(
'/settings'
)
@
admin
.
route
(
'/settings'
)
def
admin_settings
():
# 管理员界面
def
admin_settings
():
# 管理员界面
...
@@ -158,6 +159,7 @@ def admin_rule_order(order=0): # 管理员修改规则顺序
...
@@ -158,6 +159,7 @@ def admin_rule_order(order=0): # 管理员修改规则顺序
# print(rules.getState(rule_list[0]))
# print(rules.getState(rule_list[0]))
# print(rule_list)
# print(rule_list)
success_list
=
[]
success_list
=
[]
rule_list
.
reverse
()
# 倒序解决时间多重排序问题
for
rule
in
rule_list
:
for
rule
in
rule_list
:
try
:
try
:
res_id
=
rules
.
setOrder
(
rule
,
order
)
res_id
=
rules
.
setOrder
(
rule
,
order
)
...
...
controllers/home.py
浏览文件 @
7483901c
...
@@ -24,6 +24,7 @@ from utils.update import getLocalVer,getHotSuggest
...
@@ -24,6 +24,7 @@ from utils.update import getLocalVer,getHotSuggest
from
js.rules
import
getJxs
from
js.rules
import
getJxs
import
random
import
random
from
utils.web
import
getParmas
from
utils.web
import
getParmas
import
functools
home
=
Blueprint
(
"home"
,
__name__
,
static_folder
=
'/static'
)
home
=
Blueprint
(
"home"
,
__name__
,
static_folder
=
'/static'
)
...
@@ -221,18 +222,19 @@ def config_render(mode):
...
@@ -221,18 +222,19 @@ def config_render(mode):
lsg
=
storage_service
()
lsg
=
storage_service
()
store_conf_dict
=
lsg
.
getStoreConfDict
()
store_conf_dict
=
lsg
.
getStoreConfDict
()
new_conf
.
update
(
store_conf_dict
)
new_conf
.
update
(
store_conf_dict
)
# print(new_conf)
# print(type(new_conf),new_conf)
# print(type(new_conf),new_conf)
host
=
getHost
(
mode
)
host
=
getHost
(
mode
)
# ali_token = lsg.getItem('ALI_TOKEN')
# ali_token = lsg.getItem('ALI_TOKEN')
ali_token
=
new_conf
.
ALI_TOKEN
ali_token
=
new_conf
.
ALI_TOKEN
xr_mode
=
new_conf
.
XR_MODE
xr_mode
=
new_conf
.
XR_MODE
js0_password
=
new_conf
.
JS0_PASSWORD
js_mode
=
int
(
new_conf
.
JS_MODE
or
0
)
js_mode
=
int
(
new_conf
.
JS_MODE
or
0
)
print
(
f
'
{
type
(
js_mode
)
}
jsmode:
{
js_mode
}
'
)
print
(
f
'
{
type
(
js_mode
)
}
jsmode:
{
js_mode
}
'
)
# print(ali_token)
# print(ali_token)
customConfig
=
getCustonDict
(
host
,
ali_token
)
customConfig
=
getCustonDict
(
host
,
ali_token
)
# print(customConfig)
# print(customConfig)
jxs
=
getJxs
(
host
=
host
)
jxs
=
getJxs
(
host
=
host
)
lsg
=
storage_service
()
use_py
=
lsg
.
getItem
(
'USE_PY'
)
use_py
=
lsg
.
getItem
(
'USE_PY'
)
pys
=
getPys
()
if
use_py
else
[]
pys
=
getPys
()
if
use_py
else
[]
# print(pys)
# print(pys)
...
@@ -242,7 +244,7 @@ def config_render(mode):
...
@@ -242,7 +244,7 @@ def config_render(mode):
rules
=
getRules
(
'js'
,
js_mode
)
rules
=
getRules
(
'js'
,
js_mode
)
rules
=
get_multi_rules
(
rules
)
rules
=
get_multi_rules
(
rules
)
# html = render_template('config.txt',rules=getRules('js'),host=host,mode=mode,jxs=jxs,base64Encode=base64Encode,config=new_conf)
# html = render_template('config.txt',rules=getRules('js'),host=host,mode=mode,jxs=jxs,base64Encode=base64Encode,config=new_conf)
html
=
render_template
(
'config.txt'
,
UA
=
UA
,
xr_mode
=
xr_mode
,
ISTVB
=
ISTVB
,
pys
=
pys
,
rules
=
rules
,
host
=
host
,
mode
=
mode
,
js_mode
=
js_mode
,
jxs
=
jxs
,
alists
=
alists
,
alists_str
=
alists_str
,
live_url
=
live_url
,
config
=
new_conf
)
html
=
render_template
(
'config.txt'
,
js0_password
=
js0_password
,
UA
=
UA
,
xr_mode
=
xr_mode
,
ISTVB
=
ISTVB
,
pys
=
pys
,
rules
=
rules
,
host
=
host
,
mode
=
mode
,
js_mode
=
js_mode
,
jxs
=
jxs
,
alists
=
alists
,
alists_str
=
alists_str
,
live_url
=
live_url
,
config
=
new_conf
)
merged_config
=
custom_merge
(
parseText
(
html
),
customConfig
)
merged_config
=
custom_merge
(
parseText
(
html
),
customConfig
)
# print(merged_config['sites'])
# print(merged_config['sites'])
merged_hide
(
merged_config
)
merged_hide
(
merged_config
)
...
@@ -273,16 +275,32 @@ def sort_sites_by_order(sites,js_mode=0):
...
@@ -273,16 +275,32 @@ def sort_sites_by_order(sites,js_mode=0):
site_rule
=
rule_list
[
rule_names
.
index
(
site_name
)]
site_rule
=
rule_list
[
rule_names
.
index
(
site_name
)]
sites
[
i
][
'state'
]
=
1
if
site_rule
[
'state'
]
is
None
else
site_rule
[
'state'
]
sites
[
i
][
'state'
]
=
1
if
site_rule
[
'state'
]
is
None
else
site_rule
[
'state'
]
sites
[
i
][
'order'
]
=
0
if
site_rule
[
'order'
]
is
None
else
site_rule
[
'order'
]
sites
[
i
][
'order'
]
=
0
if
site_rule
[
'order'
]
is
None
else
site_rule
[
'order'
]
sites
[
i
][
'write_date'
]
=
0
if
site_rule
[
'write_date'
]
is
None
else
site_rule
[
'write_date'
].
timestamp
()
else
:
else
:
sites
[
i
][
'state'
]
=
1
sites
[
i
][
'state'
]
=
1
sites
[
i
][
'order'
]
=
0
sites
[
i
][
'order'
]
=
0
sites
[
i
][
'write_date'
]
=
0
# sites[i]['site_name'] = site_name
# sites[i]['site_name'] = site_name
# print(sites)
# print(sites)
sites
.
sort
(
key
=
lambda
x
:
x
[
'order'
],
reverse
=
False
)
def
comp
(
x
,
y
):
if
x
[
'order'
]
>
y
[
'order'
]:
return
1
elif
x
[
'order'
]
<
y
[
'order'
]:
return
-
1
else
:
if
x
[
'write_date'
]
<
y
[
'write_date'
]:
return
1
elif
x
[
'write_date'
]
>
y
[
'write_date'
]:
return
-
1
else
:
return
0
# sites.sort(key=lambda x: x['order'], reverse=False)
sites
.
sort
(
key
=
functools
.
cmp_to_key
(
comp
),
reverse
=
False
)
# print(sites)
# print(sites)
for
site
in
sites
:
for
site
in
sites
:
del
site
[
'state'
]
del
site
[
'state'
]
del
site
[
'order'
]
del
site
[
'order'
]
del
site
[
'write_date'
]
return
sites
return
sites
@
home
.
route
(
'/configs'
)
@
home
.
route
(
'/configs'
)
...
@@ -296,6 +314,7 @@ def config_gen():
...
@@ -296,6 +314,7 @@ def config_gen():
try
:
try
:
use_py
=
lsg
.
getItem
(
'USE_PY'
)
use_py
=
lsg
.
getItem
(
'USE_PY'
)
js_mode
=
int
(
new_conf
.
JS_MODE
or
0
)
js_mode
=
int
(
new_conf
.
JS_MODE
or
0
)
js0_password
=
new_conf
.
JS0_PASSWORD
pys
=
getPys
()
if
use_py
else
False
pys
=
getPys
()
if
use_py
else
False
alists
=
getAlist
()
alists
=
getAlist
()
alists_str
=
json
.
dumps
(
alists
,
ensure_ascii
=
False
)
alists_str
=
json
.
dumps
(
alists
,
ensure_ascii
=
False
)
...
@@ -303,15 +322,15 @@ def config_gen():
...
@@ -303,15 +322,15 @@ def config_gen():
rules
=
get_multi_rules
(
rules
)
rules
=
get_multi_rules
(
rules
)
host0
=
getHost
(
0
)
host0
=
getHost
(
0
)
jxs
=
getJxs
(
host
=
host0
)
jxs
=
getJxs
(
host
=
host0
)
set_local
=
render_template
(
'config.txt'
,
pys
=
pys
,
rules
=
rules
,
alists
=
alists
,
alists_str
=
alists_str
,
live_url
=
get_live_url
(
new_conf
,
0
),
mode
=
0
,
js_mode
=
js_mode
,
host
=
host0
,
jxs
=
jxs
)
set_local
=
render_template
(
'config.txt'
,
js0_password
=
js0_password
,
pys
=
pys
,
rules
=
rules
,
alists
=
alists
,
alists_str
=
alists_str
,
live_url
=
get_live_url
(
new_conf
,
0
),
mode
=
0
,
js_mode
=
js_mode
,
host
=
host0
,
jxs
=
jxs
)
# print(set_local)
# print(set_local)
host1
=
getHost
(
1
)
host1
=
getHost
(
1
)
jxs
=
getJxs
(
host
=
host1
)
jxs
=
getJxs
(
host
=
host1
)
set_area
=
render_template
(
'config.txt'
,
pys
=
pys
,
rules
=
rules
,
alists
=
alists
,
alists_str
=
alists_str
,
live_url
=
get_live_url
(
new_conf
,
1
),
mode
=
1
,
js_mode
=
js_mode
,
host
=
host1
,
jxs
=
jxs
)
set_area
=
render_template
(
'config.txt'
,
js0_password
=
js0_password
,
pys
=
pys
,
rules
=
rules
,
alists
=
alists
,
alists_str
=
alists_str
,
live_url
=
get_live_url
(
new_conf
,
1
),
mode
=
1
,
js_mode
=
js_mode
,
host
=
host1
,
jxs
=
jxs
)
host2
=
getHost
(
2
)
or
host1
host2
=
getHost
(
2
)
or
host1
# print('远程地址:'+host2)
# print('远程地址:'+host2)
jxs
=
getJxs
(
host
=
host2
)
jxs
=
getJxs
(
host
=
host2
)
set_online
=
render_template
(
'config.txt'
,
pys
=
pys
,
rules
=
rules
,
alists
=
alists
,
alists_str
=
alists_str
,
live_url
=
get_live_url
(
new_conf
,
2
),
mode
=
1
,
js_mode
=
js_mode
,
host
=
host2
,
jxs
=
jxs
)
set_online
=
render_template
(
'config.txt'
,
js0_password
=
js0_password
,
pys
=
pys
,
rules
=
rules
,
alists
=
alists
,
alists_str
=
alists_str
,
live_url
=
get_live_url
(
new_conf
,
2
),
mode
=
1
,
js_mode
=
js_mode
,
host
=
host2
,
jxs
=
jxs
)
ali_token
=
new_conf
.
ALI_TOKEN
ali_token
=
new_conf
.
ALI_TOKEN
with
open
(
'txt/pycms0.json'
,
'w+'
,
encoding
=
'utf-8'
)
as
f
:
with
open
(
'txt/pycms0.json'
,
'w+'
,
encoding
=
'utf-8'
)
as
f
:
customConfig
=
getCustonDict
(
host0
,
ali_token
)
customConfig
=
getCustonDict
(
host0
,
ali_token
)
...
...
controllers/layui.py
浏览文件 @
7483901c
...
@@ -12,6 +12,8 @@ from utils.system import getHost
...
@@ -12,6 +12,8 @@ from utils.system import getHost
from
utils.files
import
getCustonDict
,
custom_merge
from
utils.files
import
getCustonDict
,
custom_merge
from
utils.encode
import
parseText
from
utils.encode
import
parseText
from
js.rules
import
getRules
,
getPys
from
js.rules
import
getRules
,
getPys
from
operator
import
itemgetter
,
attrgetter
import
functools
layui
=
Blueprint
(
"layui"
,
__name__
)
layui
=
Blueprint
(
"layui"
,
__name__
)
...
@@ -64,12 +66,42 @@ def layui_rule_list():
...
@@ -64,12 +66,42 @@ def layui_rule_list():
site_rule
=
rule_list
[
rule_names
.
index
(
site_name
)]
site_rule
=
rule_list
[
rule_names
.
index
(
site_name
)]
sites
[
i
][
'state'
]
=
1
if
site_rule
[
'state'
]
is
None
else
site_rule
[
'state'
]
sites
[
i
][
'state'
]
=
1
if
site_rule
[
'state'
]
is
None
else
site_rule
[
'state'
]
sites
[
i
][
'order'
]
=
0
if
site_rule
[
'order'
]
is
None
else
site_rule
[
'order'
]
sites
[
i
][
'order'
]
=
0
if
site_rule
[
'order'
]
is
None
else
site_rule
[
'order'
]
sites
[
i
][
'write_date'
]
=
0
if
site_rule
[
'write_date'
]
is
None
else
site_rule
[
'write_date'
].
timestamp
()
else
:
else
:
sites
[
i
][
'state'
]
=
1
sites
[
i
][
'state'
]
=
1
sites
[
i
][
'order'
]
=
0
sites
[
i
][
'order'
]
=
0
sites
[
i
][
'write_date'
]
=
0
sites
[
i
][
'site_name'
]
=
site_name
sites
[
i
][
'site_name'
]
=
site_name
sites
.
sort
(
key
=
lambda
x
:
x
[
'order'
],
reverse
=
False
)
def
multisort
(
sites
,
specs
):
"""
https://zhuanlan.zhihu.com/p/109269549?utm_id=0
多重排序,来自知乎的代码.明显只对了最后的元素进行排序.看完评论和实践发现不对
:param sites:
:param specs:
:return:
"""
for
key
,
reverse
in
specs
:
# sites.sort(key=attrgetter(key), reverse=reverse)
sites
.
sort
(
key
=
lambda
x
:
x
[
key
],
reverse
=
reverse
)
return
sites
def
comp
(
x
,
y
):
if
x
[
'order'
]
>
y
[
'order'
]:
return
1
elif
x
[
'order'
]
<
y
[
'order'
]:
return
-
1
else
:
if
x
[
'write_date'
]
<
y
[
'write_date'
]:
return
1
elif
x
[
'write_date'
]
>
y
[
'write_date'
]:
return
-
1
else
:
return
0
# multisort(sites, (('order', False), ('write_date', True)))
# sites.sort(key=lambda x:x['order'],reverse=False)
sites
.
sort
(
key
=
functools
.
cmp_to_key
(
comp
),
reverse
=
False
)
new_sites
=
sites
[(
page
-
1
)
*
limit
:
page
*
limit
]
new_sites
=
sites
[(
page
-
1
)
*
limit
:
page
*
limit
]
# print(new_sites)
# print(new_sites)
return
layuiBack
(
'获取成功'
,
new_sites
,
count
=
len
(
sites
))
return
layuiBack
(
'获取成功'
,
new_sites
,
count
=
len
(
sites
))
controllers/parse.py
浏览文件 @
7483901c
...
@@ -9,6 +9,7 @@ import os
...
@@ -9,6 +9,7 @@ import os
from
utils.cfg
import
cfg
from
utils.cfg
import
cfg
from
utils.log
import
logger
from
utils.log
import
logger
from
utils.encode
import
OcrApi
from
utils.encode
import
OcrApi
from
controllers.service
import
storage_service
from
utils.pyctx
import
py_ctx
,
getPreJs
,
runJScode
,
JsObjectWrapper
,
PyJsString
,
parseText
,
jsoup
,
time
from
utils.pyctx
import
py_ctx
,
getPreJs
,
runJScode
,
JsObjectWrapper
,
PyJsString
,
parseText
,
jsoup
,
time
import
base64
import
base64
...
@@ -106,7 +107,8 @@ def parse_home(filename):
...
@@ -106,7 +107,8 @@ def parse_home(filename):
@
parse
.
route
(
'/ocr'
,
methods
=
[
'POST'
])
@
parse
.
route
(
'/ocr'
,
methods
=
[
'POST'
])
def
base64_ocr
():
def
base64_ocr
():
ocr_api
=
cfg
.
OCR_API
lsg
=
storage_service
()
ocr_api
=
lsg
.
getItem
(
'OCR_API'
,
cfg
.
OCR_API
)
# print(ocr_api)
# print(ocr_api)
# print('params:',getParmas())
# print('params:',getParmas())
img
=
getParmas
(
'img'
)
img
=
getParmas
(
'img'
)
...
...
controllers/service.py
浏览文件 @
7483901c
...
@@ -9,6 +9,7 @@ from models.storage import Storage
...
@@ -9,6 +9,7 @@ from models.storage import Storage
from
models.ruleclass
import
RuleClass
from
models.ruleclass
import
RuleClass
from
utils.cfg
import
cfg
from
utils.cfg
import
cfg
from
base.database
import
db
from
base.database
import
db
from
datetime
import
datetime
,
timedelta
class
storage_service
(
object
):
class
storage_service
(
object
):
...
@@ -19,7 +20,7 @@ class storage_service(object):
...
@@ -19,7 +20,7 @@ class storage_service(object):
return
copy_utils
.
obj_to_list
(
res
)
return
copy_utils
.
obj_to_list
(
res
)
def
__init__
(
self
):
def
__init__
(
self
):
conf_list
=
[
'LIVE_URL'
,
'USE_PY'
,
'JS_MODE'
,
'PLAY_URL'
,
'PLAY_DISABLE'
,
'LAZYPARSE_MODE'
,
'WALL_PAPER_ENABLE'
,
conf_list
=
[
'LIVE_URL'
,
'USE_PY'
,
'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'
,
'MULTI_MODE'
,
'XR_MODE'
,
'ALI_TOKEN'
]
'WALL_PAPER'
,
'UNAME'
,
'PWD'
,
'LIVE_MODE'
,
'CATE_EXCLUDE'
,
'TAB_EXCLUDE'
,
'SEARCH_TIMEOUT'
,
'MULTI_MODE'
,
'XR_MODE'
,
'ALI_TOKEN'
]
for
conf
in
conf_list
:
for
conf
in
conf_list
:
if
not
self
.
hasItem
(
conf
):
if
not
self
.
hasItem
(
conf
):
...
@@ -29,9 +30,9 @@ class storage_service(object):
...
@@ -29,9 +30,9 @@ class storage_service(object):
@
classmethod
@
classmethod
def
getStoreConf
(
self
):
def
getStoreConf
(
self
):
# MAX_CONTENT_LENGTH 最大上传和端口ip一样是顶级配置,无法外部修改的
# MAX_CONTENT_LENGTH 最大上传和端口ip一样是顶级配置,无法外部修改的
conf_list
=
[
'LIVE_URL'
,
'LIVE_MODE'
,
'PLAY_URL'
,
'PID_URL'
,
'USE_PY'
,
'JS_MODE'
,
'PLAY_DISABLE'
,
'LAZYPARSE_MODE'
,
'WALL_PAPER_ENABLE'
,
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'
,
'WALL_PAPER'
,
'UNAME'
,
'PWD'
,
'CATE_EXCLUDE'
,
'TAB_EXCLUDE'
,
'SEARCH_TIMEOUT'
,
'MULTI_MODE'
,
'XR_MODE'
,
'ALI_TOKEN'
]
'WALL_PAPER'
,
'UNAME'
,
'PWD'
,
'CATE_EXCLUDE'
,
'TAB_EXCLUDE'
,
'SEARCH_TIMEOUT'
,
'MULTI_MODE'
,
'XR_MODE'
,
'ALI_TOKEN'
]
conf_name_list
=
[
'直播地址'
,
'直播模式'
,
'远程地址'
,
'进程管理链接'
,
'启用py源'
,
'js模式'
,
'禁用免嗅'
,
'免嗅模式'
,
'启用壁纸'
,
'壁纸链接'
,
'管理账号'
,
conf_name_list
=
[
'直播地址'
,
'直播模式'
,
'远程地址'
,
'进程管理链接'
,
'启用py源'
,
'js模式'
,
'禁用
js0'
,
'js0密码'
,
'禁用
免嗅'
,
'免嗅模式'
,
'启用壁纸'
,
'壁纸链接'
,
'管理账号'
,
'管理密码'
,
'分类排除'
,
'线路排除'
,
'聚搜超时'
,
'多源模式'
,
'仙人模式'
,
'阿里tk'
]
'管理密码'
,
'分类排除'
,
'线路排除'
,
'聚搜超时'
,
'多源模式'
,
'仙人模式'
,
'阿里tk'
]
conf_lists
=
[]
conf_lists
=
[]
for
i
in
range
(
len
(
conf_list
)):
for
i
in
range
(
len
(
conf_list
)):
...
@@ -75,7 +76,9 @@ class rules_service(object):
...
@@ -75,7 +76,9 @@ class rules_service(object):
@
staticmethod
@
staticmethod
def
query_all
():
def
query_all
():
# 查询所有
# 查询所有
res
=
RuleClass
.
query
.
all
()
res
=
RuleClass
.
query
.
order_by
(
RuleClass
.
order
.
asc
(),
RuleClass
.
write_date
.
desc
()).
all
()
# print(res)
# res = RuleClass.query.order_by(RuleClass.write_date.asc()).all()
return
copy_utils
.
obj_to_list
(
res
)
return
copy_utils
.
obj_to_list
(
res
)
@
classmethod
@
classmethod
...
@@ -113,6 +116,10 @@ class rules_service(object):
...
@@ -113,6 +116,10 @@ class rules_service(object):
res
=
RuleClass
.
query
.
filter
(
RuleClass
.
name
==
key
).
first
()
res
=
RuleClass
.
query
.
filter
(
RuleClass
.
name
==
key
).
first
()
if
res
:
if
res
:
res
.
order
=
order
res
.
order
=
order
# print(f'{res.name}设置order为:{order}')
if
res
.
order
==
order
:
res
.
write_date
=
datetime
.
now
()
# res.write_date = res.write_date + timedelta(hours=2)
db
.
session
.
add
(
res
)
db
.
session
.
add
(
res
)
else
:
else
:
res
=
RuleClass
(
name
=
key
,
order
=
order
)
res
=
RuleClass
(
name
=
key
,
order
=
order
)
...
...
controllers/vod.py
浏览文件 @
7483901c
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
# Date : 2022/9/6
# Date : 2022/9/6
import
json
import
json
from
flask
import
Blueprint
,
request
,
render_template
,
jsonify
,
make_response
,
redirect
from
flask
import
Blueprint
,
abort
,
request
,
render_template
,
jsonify
,
make_response
,
redirect
from
time
import
time
from
time
import
time
from
utils.web
import
getParmas
,
get_interval
from
utils.web
import
getParmas
,
get_interval
from
utils.cfg
import
cfg
from
utils.cfg
import
cfg
...
@@ -183,6 +183,16 @@ def multi_search(wd):
...
@@ -183,6 +183,16 @@ def multi_search(wd):
@
vod
.
route
(
'/vod'
)
@
vod
.
route
(
'/vod'
)
def
vod_home
():
def
vod_home
():
lsg
=
storage_service
()
js0_disable
=
lsg
.
getItem
(
'JS0_DISABLE'
,
cfg
.
get
(
'JS0_DISABLE'
,
0
))
if
js0_disable
:
abort
(
403
)
js0_password
=
lsg
.
getItem
(
'JS0_PASSWORD'
,
cfg
.
get
(
'JS0_PASSWORD'
,
''
))
# print('js0_password:',js0_password)
if
js0_password
:
pwd
=
getParmas
(
'pwd'
)
if
pwd
!=
js0_password
:
abort
(
403
)
t0
=
time
()
t0
=
time
()
rule
=
getParmas
(
'rule'
)
rule
=
getParmas
(
'rule'
)
ac
=
getParmas
(
'ac'
)
ac
=
getParmas
(
'ac'
)
...
...
templates/admin.html
浏览文件 @
7483901c
...
@@ -22,7 +22,7 @@
...
@@ -22,7 +22,7 @@
$
(
"
.view_home
"
).
click
(
function
(){
$
(
"
.view_home
"
).
click
(
function
(){
let
rule
=
this
.
getAttribute
(
'
value
'
).
trim
();
let
rule
=
this
.
getAttribute
(
'
value
'
).
trim
();
location
.
href
=
'
/vod?rule=
'
+
rule
;
location
.
href
=
'
/vod?
{% if js0_password %}pwd={{js0_password}}&{% endif %}
rule=
'
+
rule
;
});
});
$
(
"
#checkUpdate
"
).
click
(
function
(){
$
(
"
#checkUpdate
"
).
click
(
function
(){
...
...
templates/config.txt
浏览文件 @
7483901c
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
"key":"dr_{{ rule.name }}",
"key":"dr_{{ rule.name }}",
"name":"{{ rule.name }}(道长)",
"name":"{{ rule.name }}(道长)",
"type":1,
"type":1,
"api":"{{ host }}/vod?rule={{ rule.name }}",
"api":"{{ host }}/vod?
{% if js0_password %}pwd={{js0_password}}&{% endif %}
rule={{ rule.name }}",
"searchable": {{ rule.searchable }},
"searchable": {{ rule.searchable }},
"quickSearch": {{ rule.quickSearch }},
"quickSearch": {{ rule.quickSearch }},
"filterable": {{ rule.filterable }}
"filterable": {{ rule.filterable }}
...
@@ -30,7 +30,7 @@
...
@@ -30,7 +30,7 @@
"key":"js_drpy",
"key":"js_drpy",
"name":"drpy(道长)",
"name":"drpy(道长)",
"type":1,
"type":1,
"api":"{{ host }}/vod?rule=drpy",
"api":"{{ host }}/vod?
{% if js0_password %}pwd={{js0_password}}&{% endif %}
rule=drpy",
"searchable": 1,
"searchable": 1,
"quickSearch": 1,
"quickSearch": 1,
"filterable": 1
"filterable": 1
...
...
templates/layui_list.html
浏览文件 @
7483901c
...
@@ -49,8 +49,11 @@
...
@@ -49,8 +49,11 @@
<script
type=
"text/html"
id=
"barDemo"
>
<script
type=
"text/html"
id=
"barDemo"
>
<!--
<
a
class
=
"
layui-btn layui-btn-xs
"
lay
-
event
=
"
edit
"
>
编辑
<
/a>--
>
<!--
<
a
class
=
"
layui-btn layui-btn-xs
"
lay
-
event
=
"
edit
"
>
编辑
<
/a>--
>
<
a
class
=
"
layui-btn layui-btn-xs
"
lay
-
event
=
"
set_top
"
>
置顶
<
/a
>
<
a
class
=
"
layui-btn layui-btn-xs
"
lay
-
event
=
"
set_top
"
>
顶
<
/a
>
<
a
class
=
"
layui-btn layui-btn-danger layui-btn-xs
"
lay
-
event
=
"
del
"
>
隐藏
<
/a
>
<
a
class
=
"
layui-btn layui-btn-xs layui-btn-danger
"
lay
-
event
=
"
set_bottom
"
>
底
<
/a
>
<
a
class
=
"
layui-btn layui-btn-xs layui-btn-info
"
lay
-
event
=
"
set_order
"
>
输
<
/a
>
<!--
<
a
class
=
"
layui-btn layui-btn-danger layui-btn-xs
"
lay
-
event
=
"
del
"
>
隐藏
<
/a>--
>
</script>
</script>
...
@@ -118,6 +121,7 @@ layui.use(['table', 'dropdown'], function(){
...
@@ -118,6 +121,7 @@ layui.use(['table', 'dropdown'], function(){
// curr: 3 //重新从第 1 页开始
// curr: 3 //重新从第 1 页开始
// }
// }
});
});
layer
.
msg
(
'
已设置顺序为
'
+
to_set_order
,{
time
:
1000
});
}
else
{
}
else
{
console
.
log
(
'
修改失败了...
'
);
console
.
log
(
'
修改失败了...
'
);
return
false
return
false
...
@@ -170,7 +174,7 @@ layui.use(['table', 'dropdown'], function(){
...
@@ -170,7 +174,7 @@ layui.use(['table', 'dropdown'], function(){
// var td = obj.td(this.field); //获取当前 td
// var td = obj.td(this.field); //获取当前 td
// return td.find('select').val();
// return td.find('select').val();
// }}
// }}
,{
fixed
:
'
right
'
,
title
:
'
操作
'
,
width
:
1
25
,
minWidth
:
125
,
toolbar
:
'
#barDemo
'
}
,{
fixed
:
'
right
'
,
title
:
'
操作
'
,
width
:
1
30
,
minWidth
:
130
,
toolbar
:
'
#barDemo
'
}
]]
]]
,
done
:
function
(){
,
done
:
function
(){
var
id
=
this
.
id
;
var
id
=
this
.
id
;
...
@@ -308,7 +312,6 @@ layui.use(['table', 'dropdown'], function(){
...
@@ -308,7 +312,6 @@ layui.use(['table', 'dropdown'], function(){
}
else
{
}
else
{
setOrder
(
data
,
Number
(
value
));
setOrder
(
data
,
Number
(
value
));
layer
.
close
(
index
);
layer
.
close
(
index
);
layer
.
msg
(
'
请设置顺序为
'
+
value
,{
time
:
1000
});
}
}
});
});
// setOrder(data,0);
// setOrder(data,0);
...
@@ -390,6 +393,32 @@ layui.use(['table', 'dropdown'], function(){
...
@@ -390,6 +393,32 @@ layui.use(['table', 'dropdown'], function(){
table
.
on
(
'
tool(test)
'
,
function
(
obj
){
// 双击 toolDouble
table
.
on
(
'
tool(test)
'
,
function
(
obj
){
// 双击 toolDouble
var
data
=
obj
.
data
;
var
data
=
obj
.
data
;
//console.log(obj)
//console.log(obj)
function
setPos
(
od
,
msg
){
let
obj_name
;
try
{
obj_name
=
obj
.
data
.
api
.
match
(
/rule=
(
.*
)
/
)[
1
].
split
(
'
&
'
)[
0
];
}
catch
(
e
){
obj_name
=
obj
.
data
.
key
;
}
console
.
log
(
obj
);
let
params
=
{
"
names
"
:[
obj_name
].
join
(
'
,
'
)};
console
.
log
(
params
);
$
.
post
(
"
/admin/rule_order/
"
+
od
,
params
,
function
(
res
,
status
){
console
.
log
(
res
);
if
(
res
.
code
===
200
){
data
.
order
=
od
;
// console.log(obj);
obj
.
update
({
order
:
data
.
order
});
layer
.
msg
(
'
已
'
+
msg
);
}
else
{
console
.
log
(
'
修改失败了...
'
);
layer
.
msg
(
msg
+
'
失败,具体错误看日志
'
);
return
false
}
});
}
if
(
obj
.
event
===
'
del
'
){
if
(
obj
.
event
===
'
del
'
){
let
obj_name
;
let
obj_name
;
try
{
try
{
...
@@ -432,29 +461,26 @@ layui.use(['table', 'dropdown'], function(){
...
@@ -432,29 +461,26 @@ layui.use(['table', 'dropdown'], function(){
content
:
'
<div style="padding: 16px;">自定义表单元素</div>
'
content
:
'
<div style="padding: 16px;">自定义表单元素</div>
'
});
});
}
else
if
(
obj
.
event
===
'
set_top
'
){
}
else
if
(
obj
.
event
===
'
set_top
'
){
let
obj_name
;
setPos
(
0
,
'
置顶
'
);
try
{
}
else
if
(
obj
.
event
===
'
set_bottom
'
){
obj_name
=
obj
.
data
.
api
.
match
(
/rule=
(
.*
)
/
)[
1
].
split
(
'
&
'
)[
0
];
setPos
(
9999
,
'
置底
'
);
}
catch
(
e
){
}
else
if
(
obj
.
event
===
'
set_order
'
){
obj_name
=
obj
.
data
.
key
;
layer
.
prompt
({
}
formType
:
0
,
console
.
log
(
obj
);
value
:
''
,
let
params
=
{
"
names
"
:[
obj_name
].
join
(
'
,
'
)};
title
:
'
请输入指定的排序序号,数字越小排名越靠前
'
,
console
.
log
(
params
);
btn
:
[
'
确定
'
,
'
取消
'
],
//按钮,
$
.
post
(
"
/admin/rule_order/0
"
,
params
,
function
(
res
,
status
){
btnAlign
:
'
c
'
console
.
log
(
res
);
},
function
(
value
,
index
){
if
(
res
.
code
===
200
){
console
.
log
(
'
value:
'
+
value
);
data
.
order
=
0
;
var
reg
=
/^
[\d]
+$/
;
obj
.
update
({
if
(
!
reg
.
test
(
value
)){
order
:
data
.
order
layer
.
msg
(
'
请输入有效数字!
'
,{
time
:
500
});
}
else
{
setPos
(
Number
(
value
),
'
指定顺序
'
);
layer
.
close
(
index
);
}
});
});
layer
.
msg
(
'
已置顶
'
);
}
else
{
console
.
log
(
'
修改失败了...
'
);
layer
.
msg
(
'
置顶失败,具体错误看日志
'
);
return
false
}
});
}
}
});
});
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录