Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Sean-2015
dr_py
提交
7f3919da
dr_py
项目概览
Sean-2015
/
dr_py
落后 Fork 源项目 3 个版本
Fork自
晚风拂柳颜 / dr_py
通知
2
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 搜索 >>
提交
7f3919da
编写于
11月 02, 2022
作者:
H
hjdhnx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完成解析管理功能
上级
e4491c63
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
85 addition
and
29 deletion
+85
-29
base/rules.db
base/rules.db
+0
-0
controllers/home.py
controllers/home.py
+65
-13
controllers/layui.py
controllers/layui.py
+17
-15
js/version.txt
js/version.txt
+1
-1
readme.md
readme.md
+2
-0
未找到文件。
base/rules.db
浏览文件 @
7f3919da
无法预览此类型文件
controllers/home.py
浏览文件 @
7f3919da
...
...
@@ -4,11 +4,12 @@
# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------
# Date : 2022/9/6
import
json
import
ujson
import
os
import
re
from
flask
import
Blueprint
,
abort
,
render_template
,
render_template_string
,
url_for
,
redirect
,
make_response
,
send_from_directory
,
request
from
controllers.service
import
storage_service
,
rules_service
from
controllers.service
import
storage_service
,
rules_service
,
parse_service
from
controllers.classes
import
getClasses
,
getClassInfo
from
utils.files
import
getPics
,
custom_merge
,
getAlist
,
get_live_url
,
get_multi_rules
,
getCustonDict
...
...
@@ -255,12 +256,29 @@ def config_render(mode):
# print(len(merged_config['sites']))
# print(merged_config['sites'])
merged_config
[
'sites'
]
=
sort_sites_by_order
(
merged_config
[
'sites'
],
js_mode
)
# print(merged_config['parses'])
parses
=
sort_parses_by_order
(
merged_config
[
'parses'
],
host
)
# print(parses)
merged_config
[
'parses'
]
=
parses
response
=
make_response
(
json
.
dumps
(
merged_config
,
ensure_ascii
=
False
,
indent
=
1
))
# response = make_response(str(merged_config))
response
.
headers
[
'Content-Type'
]
=
'application/json; charset=utf-8'
logger
.
info
(
f
'自动生成动态配置共计耗时:
{
get_interval
(
tt
)
}
毫秒'
)
return
response
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
def
sort_sites_by_order
(
sites
,
js_mode
=
0
):
rules
=
rules_service
()
rule_list
=
rules
.
query_all
()
...
...
@@ -285,18 +303,6 @@ def sort_sites_by_order(sites,js_mode=0):
sites
[
i
][
'write_date'
]
=
0
# sites[i]['site_name'] = site_name
# print(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
# sites.sort(key=lambda x: x['order'], reverse=False)
sites
.
sort
(
key
=
functools
.
cmp_to_key
(
comp
),
reverse
=
False
)
# print(sites)
...
...
@@ -306,6 +312,44 @@ def sort_sites_by_order(sites,js_mode=0):
del
site
[
'write_date'
]
return
sites
def
sort_parses_by_order
(
parses
,
host
):
t1
=
time
()
parse
=
parse_service
()
parse_list
=
parse
.
query_all
()
parse_url_list
=
list
(
map
(
lambda
x
:
x
[
'url'
],
parse_list
))
new_parses
=
[]
for
i
in
range
(
len
(
parses
)):
# parses[i]['id'] = i + 1
# 去重
if
parses
[
i
][
'url'
]
in
new_parses
:
continue
if
str
(
parses
[
i
][
'url'
]).
startswith
(
host
):
parses
[
i
][
'url'
]
=
parses
[
i
][
'url'
].
replace
(
host
,
''
)
if
parses
[
i
][
'url'
]
in
parse_url_list
:
parse_rule
=
parse_list
[
parse_url_list
.
index
(
parses
[
i
][
'url'
])]
parses
[
i
][
'state'
]
=
1
if
parse_rule
[
'state'
]
is
None
else
parse_rule
[
'state'
]
parses
[
i
][
'order'
]
=
0
if
parse_rule
[
'order'
]
is
None
else
parse_rule
[
'order'
]
parses
[
i
][
'write_date'
]
=
0
if
parse_rule
[
'write_date'
]
is
None
else
parse_rule
[
'write_date'
].
timestamp
()
else
:
parses
[
i
][
'state'
]
=
1
parses
[
i
][
'order'
]
=
0
parses
[
i
][
'write_date'
]
=
0
if
not
parses
[
i
].
get
(
'header'
):
parses
[
i
][
'header'
]
=
{
'User-Agent'
:
'Mozilla/5.0'
}
if
str
(
parses
[
i
][
'url'
]).
startswith
(
'/'
):
parses
[
i
][
'url'
]
=
host
+
parses
[
i
][
'url'
]
new_parses
.
append
(
parses
[
i
])
new_parses
.
sort
(
key
=
functools
.
cmp_to_key
(
comp
),
reverse
=
False
)
# print(sites)
for
par
in
new_parses
:
del
par
[
'state'
]
del
par
[
'order'
]
del
par
[
'write_date'
]
# print(new_parses)
logger
.
info
(
f
'
{
len
(
parses
)
}
条解析解析排序耗时:
{
get_interval
(
t1
)
}
毫秒'
)
return
new_parses
@
home
.
route
(
'/configs'
)
def
config_gen
():
# 生成文件
...
...
@@ -335,11 +379,17 @@ def config_gen():
jxs
=
getJxs
(
host
=
host2
)
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
# parses = []
with
open
(
'txt/pycms0.json'
,
'w+'
,
encoding
=
'utf-8'
)
as
f
:
customConfig
=
getCustonDict
(
host0
,
ali_token
,
js0_password
)
set_dict
=
custom_merge
(
parseText
(
set_local
),
customConfig
)
merged_hide
(
set_dict
)
set_dict
[
'sites'
]
=
sort_sites_by_order
(
set_dict
[
'sites'
],
js_mode
)
# if not parses:
# print('生成静态配置时初始化排序parses')
# parses = sort_parses_by_order(set_dict['parses'])
# set_dict['parses'] = parses
set_dict
[
'parses'
]
=
sort_parses_by_order
(
set_dict
[
'parses'
],
host0
)
# set_dict = json.loads(set_local)
f
.
write
(
json
.
dumps
(
set_dict
,
ensure_ascii
=
False
,
indent
=
4
))
with
open
(
'txt/pycms1.json'
,
'w+'
,
encoding
=
'utf-8'
)
as
f
:
...
...
@@ -347,6 +397,7 @@ def config_gen():
set_dict
=
custom_merge
(
parseText
(
set_area
),
customConfig
)
merged_hide
(
set_dict
)
set_dict
[
'sites'
]
=
sort_sites_by_order
(
set_dict
[
'sites'
],
js_mode
)
set_dict
[
'parses'
]
=
sort_parses_by_order
(
set_dict
[
'parses'
],
host1
)
# set_dict = json.loads(set_area)
f
.
write
(
json
.
dumps
(
set_dict
,
ensure_ascii
=
False
,
indent
=
4
))
...
...
@@ -355,6 +406,7 @@ def config_gen():
set_dict
=
custom_merge
(
parseText
(
set_online
),
customConfig
)
merged_hide
(
set_dict
)
set_dict
[
'sites'
]
=
sort_sites_by_order
(
set_dict
[
'sites'
],
js_mode
)
set_dict
[
'parses'
]
=
sort_parses_by_order
(
set_dict
[
'parses'
],
host2
)
# set_dict = json.loads(set_online)
f
.
write
(
json
.
dumps
(
set_dict
,
ensure_ascii
=
False
,
indent
=
4
))
files
=
[
os
.
path
.
abspath
(
rf
'txt\pycms
{
i
}
.json'
)
for
i
in
range
(
3
)]
...
...
controllers/layui.py
浏览文件 @
7f3919da
...
...
@@ -37,6 +37,20 @@ def layui_jxs(): # put application's code here
return
render_template
(
'login.html'
)
return
render_template
(
'layui_jxs.html'
)
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
@
layui
.
route
(
'/api/list'
)
def
layui_rule_list
():
page
=
int
(
getParmas
(
'page'
,
1
))
...
...
@@ -95,19 +109,6 @@ def layui_rule_list():
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
)
...
...
@@ -145,6 +146,8 @@ def layui_jx_list():
for
i
in
range
(
len
(
parses
)):
parses
[
i
][
'id'
]
=
i
+
1
if
str
(
parses
[
i
][
'url'
]).
startswith
(
host
):
parses
[
i
][
'url'
]
=
parses
[
i
][
'url'
].
replace
(
host
,
''
)
if
parses
[
i
][
'url'
]
in
parse_url_list
:
parse_rule
=
parse_list
[
parse_url_list
.
index
(
parses
[
i
][
'url'
])]
parses
[
i
][
'state'
]
=
1
if
parse_rule
[
'state'
]
is
None
else
parse_rule
[
'state'
]
...
...
@@ -155,14 +158,13 @@ def layui_jx_list():
parses
[
i
][
'order'
]
=
0
parses
[
i
][
'write_date'
]
=
0
for
i
in
range
(
len
(
parses
)):
if
not
parses
[
i
].
get
(
'header'
):
parses
[
i
][
'header'
]
=
{
'User-Agent'
:
'Mozilla/5.0'
}
if
isinstance
(
parses
[
i
].
get
(
'header'
),
dict
):
parses
[
i
][
'header'
]
=
ujson
.
dumps
(
parses
[
i
][
'header'
],
ensure_ascii
=
False
)
if
isinstance
(
parses
[
i
].
get
(
'ext'
),
dict
):
parses
[
i
][
'ext'
]
=
ujson
.
dumps
(
parses
[
i
][
'ext'
],
ensure_ascii
=
False
)
# parse.setEverything(parses[i]['url'], parses[i]['name'], parses[i]['state'], parses[i]['type'], parses[i]['order'], parses[i]['ext'], parses[i]['header'])
parses
.
sort
(
key
=
functools
.
cmp_to_key
(
comp
),
reverse
=
False
)
new_parses
=
parses
[(
page
-
1
)
*
limit
:
page
*
limit
]
return
layuiBack
(
'获取成功'
,
new_parses
,
count
=
len
(
parses
))
\ No newline at end of file
js/version.txt
浏览文件 @
7f3919da
3.9.18beta8
\ No newline at end of file
3.9.19
\ No newline at end of file
readme.md
浏览文件 @
7f3919da
...
...
@@ -47,6 +47,8 @@
[
dockerfile教程
](
https://blog.csdn.net/qq_46158060/article/details/125718218
)
[
获取本地设备信息
](
https://blog.csdn.net/cui_yonghua/article/details/125508991
)
[
获取本地设备信息
](
https://m.jb51.net/article/140716.htm
)
###### 2022/11/02
-
[X] 合并小雅代码,未来功能完善解析管理,可正常拖拽排序
###### 2022/10/30
-
[X] 3.9.18beta4 修复lives?path=接口漏洞,修复js0设置密码后播放解析没自动带密码Bug
###### 2022/10/28
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录