Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
7fan
dr_py
提交
e262ce6b
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,发现更多精彩内容 >>
提交
e262ce6b
编写于
8月 31, 2022
作者:
H
hjdhnx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
新增登录功能
上级
d483fec1
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
259 addition
and
28 deletion
+259
-28
app.py
app.py
+39
-1
classes/cms.py
classes/cms.py
+2
-2
config.py
config.py
+2
-0
readme.md
readme.md
+2
-0
static/css/index.css
static/css/index.css
+24
-0
static/css/login.css
static/css/login.css
+154
-0
templates/admin.html
templates/admin.html
+11
-0
templates/index.html
templates/index.html
+7
-23
utils/config.py
utils/config.py
+1
-1
utils/web.py
utils/web.py
+17
-1
未找到文件。
app.py
浏览文件 @
e262ce6b
...
...
@@ -54,9 +54,17 @@ def getParmas(key=None,value=''):
:param key:
:return:
"""
content_type
=
request
.
headers
.
get
(
'Content-Type'
)
args
=
{}
if
request
.
method
==
'POST'
:
args
=
request
.
json
if
'application/x-www-form-urlencoded'
in
content_type
or
'multipart/form-data'
in
content_type
:
args
=
request
.
form
elif
'application/json'
in
content_type
:
args
=
request
.
json
elif
'text/plain'
in
content_type
:
args
=
request
.
data
else
:
args
=
request
.
args
elif
request
.
method
==
'GET'
:
args
=
request
.
args
if
key
:
...
...
@@ -79,6 +87,36 @@ def index(): # put application's code here
# print(manager2)
return
render_template
(
'index.html'
,
getHost
=
getHost
,
manager0
=
manager0
,
manager1
=
manager1
,
manager2
=
manager2
,
is_linux
=
is_linux
())
@
app
.
route
(
'/admin'
)
def
admin_home
():
# 管理员界面
# headers = request.headers
# print(headers)
cookies
=
request
.
cookies
# print(cookies)
token
=
cookies
.
get
(
'token'
,
''
)
# print(f'mytoken:{token}')
if
not
verfy_token
(
token
):
return
render_template
(
'login.html'
)
# return jsonify(error.success('登录成功'))
return
render_template
(
'admin.html'
)
@
app
.
route
(
'/api/login'
,
methods
=
[
'GET'
,
'POST'
])
def
login_api
():
username
=
getParmas
(
'username'
)
password
=
getParmas
(
'password'
)
autologin
=
getParmas
(
'autologin'
)
if
not
all
([
username
,
password
]):
return
jsonify
(
error
.
failed
(
'账号密码字段必填'
))
token
=
md5
(
f
'
{
username
}
;
{
password
}
'
)
check
=
verfy_token
(
token
)
if
check
:
# response = make_response(redirect('/admin'))
response
=
make_response
(
jsonify
(
error
.
success
(
'登录成功'
)))
response
.
set_cookie
(
'token'
,
token
)
return
response
else
:
return
jsonify
(
error
.
failed
(
'登录失败,用户名或密码错误'
))
@
app
.
route
(
'/vod'
)
def
vod
():
t0
=
time
()
...
...
classes/cms.py
浏览文件 @
e262ce6b
...
...
@@ -9,7 +9,7 @@ import re
import
math
from
utils.web
import
*
from
models
import
*
from
utils.config
import
c
onfig
from
utils.config
import
playerC
onfig
from
utils.log
import
logger
from
utils.encode
import
base64Encode
,
baseDecode
,
fetch
,
post
,
request
,
getCryptoJS
,
getPreJs
,
buildUrl
,
getHome
from
utils.encode
import
verifyCode
...
...
@@ -382,7 +382,7 @@ class CMS:
result
[
'class'
]
=
classes
if
self
.
filter
:
result
[
'filters'
]
=
c
onfig
[
'filter'
]
result
[
'filters'
]
=
playerC
onfig
[
'filter'
]
result
.
update
(
video_result
)
logger
.
info
(
f
'
{
self
.
getName
()
}
获取首页总耗时(包含读取缓存):
{
get_interval
(
t1
)
}
毫秒'
)
return
result
...
...
config.py
浏览文件 @
e262ce6b
...
...
@@ -27,4 +27,6 @@ SUP_PORT = 9001 # supervisord 服务端口
RETRY_CNT
=
3
# 验证码重试次数
# OCR_API = 'http://192.168.3.224:9000/api/ocr_img' # 验证码识别接口,传参数data
OCR_API
=
'http://dm.mudery.com:10000'
# 验证码识别接口,传参数data
UNAME
=
'admin'
# 管理员账号
PWD
=
'drpy'
# 管理员密码
# {% if config.WALL_PAPER %}"wallpaper":"{{ config.WALL_PAPER }}",{% endif %}
\ No newline at end of file
readme.md
浏览文件 @
e262ce6b
...
...
@@ -2,6 +2,8 @@
##### python3.6-3.8完美运行(3.9以上不支持linux进程启动)
###### 更新日志
###### 2022/08/30
-
[X] 1.增加管理员登录功能(用户上传和删除规则)
###### 2022/08/30
-
[X] 1.增加动态局域网ip获取
-
[X] 2.增加js规则热加载(增删改不用重启)
-
[X] 3.增加视界的加密库
...
...
static/css/index.css
0 → 100644
浏览文件 @
e262ce6b
.btn
{
margin-bottom
:
1rem
;
border
:
1px
solid
#615e5e
;
width
:
240px
;
height
:
30px
;
text-align
:
center
;
background-color
:
#1379cb
;
color
:
#ffffff
;
border-radius
:
20px
;
line-height
:
30px
;
}
.btn
a
{
color
:
#ffffff
;
}
a
{
text-decoration
:
none
;
text-align
:
center
;
line-height
:
30px
;
}
.jyw
{
margin-bottom
:
5rem
;
}
\ No newline at end of file
static/css/login.css
0 → 100644
浏览文件 @
e262ce6b
/* =============================================================================
HTML5 CSS Reset Minified - Eric Meyer
========================================================================== */
html
,
body
,
div
,
span
,
object
,
iframe
,
h1
,
h2
,
h3
,
h4
,
h5
,
h6
,
p
,
blockquote
,
pre
,
abbr
,
address
,
cite
,
code
,
del
,
dfn
,
em
,
img
,
ins
,
kbd
,
q
,
samp
,
small
,
strong
,
sub
,
sup
,
var
,
b
,
i
,
dl
,
dt
,
dd
,
ol
,
ul
,
li
,
fieldset
,
form
,
label
,
legend
,
table
,
caption
,
tbody
,
tfoot
,
thead
,
tr
,
th
,
td
,
article
,
aside
,
canvas
,
details
,
figcaption
,
figure
,
footer
,
header
,
hgroup
,
menu
,
nav
,
section
,
summary
,
time
,
mark
,
audio
,
video
{
margin
:
0
;
padding
:
0
;
border
:
0
;
outline
:
0
;
font-size
:
100%
;
vertical-align
:
baseline
;
background
:
transparent
}
body
{
line-height
:
1
}
article
,
aside
,
details
,
figcaption
,
figure
,
footer
,
header
,
hgroup
,
menu
,
nav
,
section
{
display
:
block
}
nav
ul
{
list-style
:
none
}
blockquote
,
q
{
quotes
:
none
}
blockquote
:before
,
blockquote
:after
,
q
:before
,
q
:after
{
content
:
none
}
a
{
margin
:
0
;
padding
:
0
;
font-size
:
100%
;
vertical-align
:
baseline
;
background
:
transparent
;
text-decoration
:
none
}
mark
{
background-color
:
#ff9
;
color
:
#000
;
font-style
:
italic
;
font-weight
:
bold
}
del
{
text-decoration
:
line-through
}
abbr
[
title
],
dfn
[
title
]
{
border-bottom
:
1px
dotted
;
cursor
:
help
}
table
{
border-collapse
:
collapse
;
border-spacing
:
0
}
hr
{
display
:
block
;
height
:
1px
;
border
:
0
;
border-top
:
1px
solid
#ccc
;
margin
:
1em
0
;
padding
:
0
}
input
,
select
{
vertical-align
:
middle
}
li
{
list-style
:
none
}
/* =============================================================================
My CSS
========================================================================== */
/* ---- base ---- */
html
,
body
{
width
:
100%
;
height
:
100%
;
background
:
#111
;
}
html
{
-webkit-tap-highlight-color
:
rgba
(
0
,
0
,
0
,
0
);
}
body
{
font
:
normal
75%
Arial
,
Helvetica
,
sans-serif
;
}
canvas
{
display
:
block
;
vertical-align
:
bottom
;
}
/* ---- stats.js ---- */
.count-particles
{
background
:
#000022
;
position
:
absolute
;
top
:
48px
;
left
:
0
;
width
:
80px
;
color
:
#13E8E9
;
font-size
:
.8em
;
text-align
:
left
;
text-indent
:
4px
;
line-height
:
14px
;
padding-bottom
:
2px
;
font-family
:
Helvetica
,
Arial
,
sans-serif
;
font-weight
:
bold
;
}
.js-count-particles
{
font-size
:
1.1em
;
}
#stats
,
.count-particles
{
-webkit-user-select
:
none
;
margin-top
:
5px
;
margin-left
:
5px
;
}
#stats
{
border-radius
:
3px
3px
0
0
;
overflow
:
hidden
;
}
.count-particles
{
border-radius
:
0
0
3px
3px
;
}
/* ---- particles.js container ---- */
#particles-js
{
width
:
100%
;
height
:
100%
;
background-image
:
url('../img/login_background.png')
;
background-size
:
cover
;
background-position
:
50%
50%
;
background-repeat
:
no-repeat
;
width
:
100%
;
height
:
100%
;
position
:
absolute
;
top
:
0
;
left
:
0
;
}
.login-content
{
width
:
400px
;
height
:
280px
;
margin
:
0
auto
;
position
:
relative
;
top
:
300px
;
border
:
1px
solid
#2890fa
;
background
:
rgba
(
40
,
144
,
250
,
0.2
);
border-radius
:
5px
;
}
.login-tit
{
background
:
rgba
(
0
,
0
,
0
,
0.8
);
border
:
1px
solid
#2890fa
;
color
:
#fff
;
padding
:
15px
20px
;
font-size
:
18px
}
.login-input
{
width
:
90%
;
margin
:
30px
auto
0
auto
;
}
.login-input
input
{
background
:
rgba
(
0
,
0
,
0
,
0
);
border
:
0
;
height
:
30px
;
width
:
100%
;
line-height
:
30px
;
color
:
#fff
;
border-bottom
:
1px
solid
rgba
(
40
,
144
,
250
,
0.4
);
}
.login-input
input
:focus
{
outline
:
none
;
}
.login-btn
{
width
:
90%
;
display
:
flex
;
color
:
#ffffff
;
margin
:
40px
auto
0
auto
;
}
.login-btn-left
span
{
background
:
#2890fa
;
padding
:
10px
30px
;
border-radius
:
5px
;
cursor
:
pointer
;
}
.login-btn-right
{
display
:
flex
;
align-items
:
center
;
margin-left
:
20px
}
.login-btn-right
img
{
margin-right
:
10px
}
\ No newline at end of file
templates/admin.html
0 → 100644
浏览文件 @
e262ce6b
<!DOCTYPE html>
<html
lang=
"en"
>
<head>
<meta
charset=
"UTF-8"
>
<title>
管理员界面
</title>
</head>
<body>
<h1>
欢迎使用py_dr管理员界面
</h1>
<p>
你可以在此页面在线上传规则文件到js目录或者删除js目录的文件
</p>
</body>
</html>
\ No newline at end of file
templates/index.html
浏览文件 @
e262ce6b
...
...
@@ -9,31 +9,11 @@
<meta
http-equiv=
"Content-Type"
content=
"text/html;charset=utf-8"
>
<title>
dr_py首页
</title>
<script
src=
"/static/js/jquery.min.js"
></script>
<link
rel=
"stylesheet"
media=
"screen"
href=
"/static/css/index.css"
/>
</head>
<style>
.btn
{
margin-bottom
:
2rem
;
border
:
1px
solid
#615e5e
;
width
:
240px
;
height
:
30px
;
text-align
:
center
;
background-color
:
#1379cb
;
color
:
#ffffff
;
border-radius
:
20px
;
line-height
:
30px
;
}
.btn
a
{
color
:
#ffffff
;
}
a
{
text-decoration
:
none
;
text-align
:
center
;
line-height
:
30px
;
}
.jyw
{
margin-bottom
:
5rem
;
.title
{
font-size
:
18px
;
}
</style>
<body
style=
"background: #FFFFFF url(https://cdn.seovx.com/d/?mom=302) no-repeat fixed center;max-hright;"
>
...
...
@@ -59,6 +39,10 @@ a {
<div
class=
"btn"
>
<a
href=
"/vod?rule="
>
猫CMS接口
</a>
</div>
<div
class=
"btn"
>
<!-- <a href="/admin" target="_blank">CMS后台管理</a>-->
<a
href=
"/admin"
>
CMS后台管理
</a>
</div>
<div
class=
"btn"
>
<a
href=
"/rules"
>
缓存文件列表-清除
</a>
</div>
...
...
utils/config.py
浏览文件 @
e262ce6b
...
...
@@ -5,7 +5,7 @@
# Date : 2022/8/25
c
onfig
=
{
playerC
onfig
=
{
"player"
:
{
"dplayer"
:{
"show"
:
"默认"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/?url="
},
"qqy"
:{
"show"
:
"预告专用"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/?url="
},
"qiyi"
:{
"show"
:
"爱奇艺"
,
"des"
:
"qiyi.com"
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/sg.php?url="
},
"youku"
:{
"show"
:
"优酷"
,
"des"
:
"youku.com"
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/sg.php?url="
},
"qq"
:{
"show"
:
"腾讯"
,
"des"
:
"qq.com"
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/sg.php?url="
},
"mgtv"
:{
"show"
:
"芒果"
,
"des"
:
"mgtv.com"
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/sg.php?url="
},
"letv"
:{
"show"
:
"乐视"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://jx.quanmingjiexi.com/?url="
},
"m1905"
:{
"show"
:
"电影网"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/sg.php?url="
},
"bilibili"
:{
"show"
:
"哔哩哔哩"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://jx.bozrc.com:4433/player/?url="
},
"sohu"
:{
"show"
:
"搜狐"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/sg.php?url="
},
"lzm3u8"
:{
"show"
:
"量子资源1"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"ss4m3u8"
:{
"show"
:
"松鼠资源4"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"ss3m3u8"
:{
"show"
:
"松鼠资源3"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"ss2m3u8"
:{
"show"
:
"松鼠资源2"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"ss1m3u8"
:{
"show"
:
"松鼠资源1"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"jinyingm3u8"
:{
"show"
:
"金鹰资源②"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"cmpyun"
:{
"show"
:
"冠军资源①"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"kcm3u8"
:{
"show"
:
"快车资源①"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"xlm3u8"
:{
"show"
:
"新浪资源2"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"ssyun"
:{
"show"
:
"神速资源1"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"ssm3u8"
:{
"show"
:
"神速资源2"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"wolong"
:{
"show"
:
"卧龙资源"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/?url="
},
"ptzy"
:{
"show"
:
"葡萄资源"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"zgzy"
:{
"show"
:
"猪哥播放器"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"ukm3u8"
:{
"show"
:
"U酷点播"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"fsm3u8"
:{
"show"
:
"飞速播放器"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"mim3u8"
:{
"show"
:
"大米播放器"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"if101"
:{
"show"
:
"if101播放器"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"sgm3u8"
:{
"show"
:
"速更播放器"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"kdm3u8"
:{
"show"
:
"酷点播放器"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"xiuse"
:{
"show"
:
"秀色播放"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"swm3u8"
:{
"show"
:
"丝袜播放器"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"bdxm3u8"
:{
"show"
:
"北斗星m3u8"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"hjm3u8"
:{
"show"
:
"花椒播放器"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"kbzy"
:{
"show"
:
"快播云播"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"88zym3u8"
:{
"show"
:
"88在线"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"lezy"
:{
"show"
:
"乐库云播"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"kkyun"
:{
"show"
:
"酷酷云播"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"kkm3u8"
:{
"show"
:
"KK在线"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"tpm3u8"
:{
"show"
:
"淘片播放器"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"ckm3u8"
:{
"show"
:
"ck资源"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"bjyun"
:{
"show"
:
"八戒云播"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"gsm3u8"
:{
"show"
:
"光速云资源②"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"m3u8"
:{
"show"
:
"m3u8在线"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"0"
,
"parse"
:
""
},
"videojs"
:{
"show"
:
"videojs-H5播放器"
,
"des"
:
"videojs.com"
,
"ps"
:
"0"
,
"parse"
:
""
},
"iva"
:{
"show"
:
"iva-H5播放器"
,
"des"
:
"videojj.com"
,
"ps"
:
"0"
,
"parse"
:
""
},
"iframe"
:{
"show"
:
"外链数据"
,
"des"
:
"iframe外链数据"
,
"ps"
:
"0"
,
"parse"
:
""
},
"link"
:{
"show"
:
"外链数据"
,
"des"
:
"外部网站播放链接"
,
"ps"
:
"0"
,
"parse"
:
""
},
"swf"
:{
"show"
:
"Flash文件"
,
"des"
:
"swf"
,
"ps"
:
"0"
,
"parse"
:
""
},
"flv"
:{
"show"
:
"Flv文件"
,
"des"
:
"flv"
,
"ps"
:
"0"
,
"parse"
:
""
},
"pptv"
:{
"show"
:
"PPTV"
,
"des"
:
"pptv"
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/sg.php?url="
},
"migu"
:{
"show"
:
"咪咕"
,
"des"
:
"migu"
,
"ps"
:
"0"
,
"parse"
:
"https://vip.2ktvb.com/player/sg.php?url="
},
"cctv"
:{
"show"
:
"cctv"
,
"des"
:
"cctv"
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/sg.php?url="
},
"cntv"
:{
"show"
:
"cntv"
,
"des"
:
"cntv"
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/?url="
},
"funshion"
:{
"show"
:
"风行"
,
"des"
:
"funshion"
,
"ps"
:
"1"
,
"parse"
:
"hhttps://vip.2ktvb.com/player/sg.php?url="
},
"wasu"
:{
"show"
:
"华数"
,
"des"
:
"wasu"
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/sg.php?url="
},
"605m3u8"
:{
"show"
:
"605线"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/?url="
},
"bjm3u8"
:{
"show"
:
"八戒"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/?url="
},
"dbm3u8"
:{
"show"
:
"百度线"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/?url="
},
"hnm3u8"
:{
"show"
:
"牛牛线"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/?url="
},
"igen"
:{
"show"
:
"爱跟线"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/?url="
},
"kbm3u8"
:{
"show"
:
"快播线"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/?url="
},
"lajiao"
:{
"show"
:
"辣椒"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://lajiaoapi.com/watch?url="
},
"tkm3u8"
:{
"show"
:
"天空线"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/?url="
},
"tsm3u8"
:{
"show"
:
"Ts线"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/?url="
},
"wjm3u8"
:{
"show"
:
"无尽线"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/?url="
},
"xigua"
:{
"show"
:
"西瓜线"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/sg.php?url="
},
"xkm3u8"
:{
"show"
:
"想看线"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/?url="
},
"jhyun"
:{
"show"
:
"聚合云"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/?url="
},
"sdm3u8"
:{
"show"
:
"闪电线"
,
"des"
:
"支持手机电脑在线播放"
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/?url="
},
"ddzy"
:{
"show"
:
"极速多线"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://bo.dd520.cc//xmplayer/?url="
},
"jscq"
:{
"show"
:
"极速超清"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/?xf=languang&url="
},
"jslg"
:{
"show"
:
"极速蓝光"
,
"des"
:
""
,
"ps"
:
"1"
,
"parse"
:
"https://vip.2ktvb.com/player/?xf=languang&url="
}},
"filter"
:
{
"dianying"
:[{
"key"
:
3
,
"name"
:
"分类"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"喜剧"
,
"v"
:
"喜剧"
},{
"n"
:
"动作"
,
"v"
:
"动作"
},{
"n"
:
"爱情"
,
"v"
:
"爱情"
},{
"n"
:
"惊悚"
,
"v"
:
"惊悚"
},{
"n"
:
"犯罪"
,
"v"
:
"犯罪"
},{
"n"
:
"冒险"
,
"v"
:
"冒险"
},{
"n"
:
"科幻"
,
"v"
:
"科幻"
},{
"n"
:
"悬疑"
,
"v"
:
"悬疑"
},{
"n"
:
"剧情"
,
"v"
:
"剧情"
},{
"n"
:
"动画"
,
"v"
:
"动画"
},{
"n"
:
"仙侠"
,
"v"
:
"仙侠"
},{
"n"
:
"武侠"
,
"v"
:
"武侠"
},{
"n"
:
"战争"
,
"v"
:
"战争"
},{
"n"
:
"歌舞"
,
"v"
:
"歌舞"
},{
"n"
:
"奇幻"
,
"v"
:
"奇幻"
},{
"n"
:
"传记"
,
"v"
:
"传记"
},{
"n"
:
"警匪"
,
"v"
:
"警匪"
},{
"n"
:
"历史"
,
"v"
:
"历史"
},{
"n"
:
"运动"
,
"v"
:
" 运动"
},{
"n"
:
"伦理"
,
"v"
:
"伦理"
},{
"n"
:
"灾难"
,
"v"
:
"灾难"
},{
"n"
:
"西部"
,
"v"
:
"西部"
},{
"n"
:
"魔幻"
,
"v"
:
"魔幻"
},{
"n"
:
"枪战"
,
"v"
:
"枪战"
},{
"n"
:
"恐怖"
,
"v"
:
"恐怖"
},{
"n"
:
"记录"
,
"v"
:
"记录"
},{
"n"
:
"情色"
,
"v"
:
"情色"
}]},{
"key"
:
1
,
"name"
:
"地区"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"大陆"
,
"v"
:
"大陆"
},{
"n"
:
"美国"
,
"v"
:
"美国"
},{
"n"
:
"香港"
,
"v"
:
"香港"
},{
"n"
:
"韩国"
,
"v"
:
"韩国"
},{
"n"
:
"英国"
,
"v"
:
"英国"
},{
"n"
:
"台湾"
,
"v"
:
"台湾"
},{
"n"
:
"日本"
,
"v"
:
"日本"
},{
"n"
:
"法国"
,
"v"
:
"法国"
},{
"n"
:
"意大利"
,
"v"
:
"意大利"
},{
"n"
:
"德国"
,
"v"
:
"德国"
},{
"n"
:
"西班牙"
,
"v"
:
"西班牙"
},{
"n"
:
"泰国"
,
"v"
:
"泰国"
},{
"n"
:
"其它"
,
"v"
:
"其它"
}]},{
"key"
:
4
,
"name"
:
"语言"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"国语"
,
"v"
:
"国语"
},{
"n"
:
"英语"
,
"v"
:
"英语"
},{
"n"
:
"粤语"
,
"v"
:
"粤语"
},{
"n"
:
"闽南语"
,
"v"
:
"闽南语"
},{
"n"
:
"韩语"
,
"v"
:
"韩语"
},{
"n"
:
"日语"
,
"v"
:
"日语"
},{
"n"
:
"法语"
,
"v"
:
"法语"
},{
"n"
:
"德语"
,
"v"
:
"德语"
},{
"n"
:
"其它"
,
"v"
:
"其它"
}]},{
"key"
:
11
,
"name"
:
"年份"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"2022"
,
"v"
:
"2022"
},{
"n"
:
"2021"
,
"v"
:
"2021"
},{
"n"
:
"2020"
,
"v"
:
"2020"
},{
"n"
:
"2019"
,
"v"
:
"2019"
},{
"n"
:
"2018"
,
"v"
:
"2018"
},{
"n"
:
"2017"
,
"v"
:
"2017"
},{
"n"
:
"2016"
,
"v"
:
"2016"
},{
"n"
:
"2015"
,
"v"
:
"2015"
},{
"n"
:
"2014"
,
"v"
:
"2014"
},{
"n"
:
"2013"
,
"v"
:
"2013"
},{
"n"
:
"2012"
,
"v"
:
"2012"
},{
"n"
:
"2011"
,
"v"
:
"2011"
},{
"n"
:
"2010"
,
"v"
:
"2010"
},{
"n"
:
"2009"
,
"v"
:
"2009"
},{
"n"
:
"2008"
,
"v"
:
"2008"
},{
"n"
:
"2006"
,
"v"
:
"2006"
},{
"n"
:
"2005"
,
"v"
:
"2005"
},{
"n"
:
"2004"
,
"v"
:
"2004"
}]},{
"key"
:
5
,
"name"
:
"字母"
,
"value"
:[{
"n"
:
"字母"
,
"v"
:
""
},{
"n"
:
"A"
,
"v"
:
"A"
},{
"n"
:
"B"
,
"v"
:
"B"
},{
"n"
:
"C"
,
"v"
:
"C"
},{
"n"
:
"D"
,
"v"
:
"D"
},{
"n"
:
"E"
,
"v"
:
"E"
},{
"n"
:
"F"
,
"v"
:
"F"
},{
"n"
:
"G"
,
"v"
:
"G"
},{
"n"
:
"H"
,
"v"
:
"H"
},{
"n"
:
"I"
,
"v"
:
"I"
},{
"n"
:
"J"
,
"v"
:
"J"
},{
"n"
:
"K"
,
"v"
:
"K"
},{
"n"
:
"L"
,
"v"
:
"L"
},{
"n"
:
"M"
,
"v"
:
"M"
},{
"n"
:
"N"
,
"v"
:
"N"
},{
"n"
:
"O"
,
"v"
:
"O"
},{
"n"
:
"P"
,
"v"
:
"P"
},{
"n"
:
"Q"
,
"v"
:
"Q"
},{
"n"
:
"R"
,
"v"
:
"R"
},{
"n"
:
"S"
,
"v"
:
"S"
},{
"n"
:
"T"
,
"v"
:
"T"
},{
"n"
:
"U"
,
"v"
:
"U"
},{
"n"
:
"V"
,
"v"
:
"V"
},{
"n"
:
"W"
,
"v"
:
"W"
},{
"n"
:
"X"
,
"v"
:
"X"
},{
"n"
:
"Y"
,
"v"
:
"Y"
},{
"n"
:
"Z"
,
"v"
:
"Z"
},{
"n"
:
"0-9"
,
"v"
:
"0-9"
}]},{
"key"
:
2
,
"name"
:
"排序"
,
"value"
:[{
"n"
:
"最新"
,
"v"
:
"time"
},{
"n"
:
"最热"
,
"v"
:
"hits"
},{
"n"
:
"评分"
,
"v"
:
"score"
}]}],
"lianxuju"
:[{
"key"
:
3
,
"name"
:
"分类"
,
"value"
:[{
"n"
:
" 全部"
,
"v"
:
""
},{
"n"
:
"古装"
,
"v"
:
"古装"
},{
"n"
:
"动作"
,
"v"
:
"动作"
},{
"n"
:
"都市"
,
"v"
:
"都市"
},{
"n"
:
"偶像"
,
"v"
:
"偶像"
},{
"n"
:
"家庭"
,
"v"
:
"家庭"
},{
"n"
:
"警匪"
,
"v"
:
"警匪"
},{
"n"
:
"言情"
,
"v"
:
"言情"
},{
"n"
:
"军事"
,
"v"
:
"军事"
},{
"n"
:
"武侠"
,
"v"
:
"武侠"
},{
"n"
:
"悬疑"
,
"v"
:
"悬疑"
},{
"n"
:
"历史"
,
"v"
:
"历史"
},{
"n"
:
"农村"
,
"v"
:
"农村"
},{
"n"
:
"都市"
,
"v"
:
"都市"
},{
"n"
:
"神话"
,
"v"
:
"神话"
},{
"n"
:
"科幻"
,
"v"
:
"科幻"
},{
"n"
:
"少儿"
,
"v"
:
"少儿"
},{
"n"
:
"搞笑"
,
"v"
:
"搞笑"
},{
"n"
:
"谍战"
,
"v"
:
"谍战"
},{
"n"
:
"战争"
,
"v"
:
"战争"
},{
"n"
:
"年代"
,
"v"
:
"年代"
},{
"n"
:
"犯罪"
,
"v"
:
"犯 罪"
},{
"n"
:
"恐怖"
,
"v"
:
"恐怖"
},{
"n"
:
"惊悚"
,
"v"
:
"惊悚"
},{
"n"
:
"爱情"
,
"v"
:
"爱情"
},{
"n"
:
"剧情"
,
"v"
:
"剧情"
},{
"n"
:
"奇幻"
,
"v"
:
"奇幻"
},{
"n"
:
"仙侠"
,
"v"
:
"仙侠"
}]},{
"key"
:
1
,
"name"
:
"地区"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"大陆"
,
"v"
:
"大陆"
},{
"n"
:
"韩国"
,
"v"
:
"韩国"
},{
"n"
:
"香港"
,
"v"
:
"香港"
},{
"n"
:
"台湾"
,
"v"
:
"台湾"
},{
"n"
:
"日本"
,
"v"
:
"日本"
},{
"n"
:
"美国"
,
"v"
:
"美国"
},{
"n"
:
"泰国"
,
"v"
:
"泰国"
},{
"n"
:
"英国"
,
"v"
:
"英国"
},{
"n"
:
"新加坡"
,
"v"
:
"新加坡"
}]},{
"key"
:
4
,
"name"
:
"语言"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"国语"
,
"v"
:
"国语"
},{
"n"
:
"英语"
,
"v"
:
"英语"
},{
"n"
:
"粤语"
,
"v"
:
"粤语"
},{
"n"
:
"闽南语"
,
"v"
:
"闽南语"
},{
"n"
:
"韩语"
,
"v"
:
"韩语"
},{
"n"
:
"日语"
,
"v"
:
"日语"
},{
"n"
:
"其它"
,
"v"
:
"其它"
}]},{
"key"
:
11
,
"name"
:
"年份"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"2022"
,
"v"
:
"2022"
},{
"n"
:
"2021"
,
"v"
:
"2021"
},{
"n"
:
"2020"
,
"v"
:
"2020"
},{
"n"
:
"2019"
,
"v"
:
"2019"
},{
"n"
:
"2018"
,
"v"
:
"2018"
},{
"n"
:
"2017"
,
"v"
:
"2017"
},{
"n"
:
"2016"
,
"v"
:
"2016"
},{
"n"
:
"2015"
,
"v"
:
"2015"
},{
"n"
:
"2014"
,
"v"
:
"2014"
},{
"n"
:
"2013"
,
"v"
:
"2013"
},{
"n"
:
"2012"
,
"v"
:
"2012"
},{
"n"
:
"2011"
,
"v"
:
"2011"
},{
"n"
:
"2010"
,
"v"
:
"2010"
},{
"n"
:
"2009"
,
"v"
:
"2009"
},{
"n"
:
"2008"
,
"v"
:
"2008"
},{
"n"
:
"2006"
,
"v"
:
"2006"
},{
"n"
:
"2005"
,
"v"
:
"2005"
},{
"n"
:
"2004"
,
"v"
:
"2004"
}]},{
"key"
:
5
,
"name"
:
"字母"
,
"value"
:[{
"n"
:
"字母"
,
"v"
:
""
},{
"n"
:
"A"
,
"v"
:
"A"
},{
"n"
:
"B"
,
"v"
:
"B"
},{
"n"
:
"C"
,
"v"
:
"C"
},{
"n"
:
"D"
,
"v"
:
"D"
},{
"n"
:
"E"
,
"v"
:
"E"
},{
"n"
:
"F"
,
"v"
:
"F"
},{
"n"
:
"G"
,
"v"
:
"G"
},{
"n"
:
"H"
,
"v"
:
"H"
},{
"n"
:
"I"
,
"v"
:
"I"
},{
"n"
:
"J"
,
"v"
:
"J"
},{
"n"
:
"K"
,
"v"
:
"K"
},{
"n"
:
"L"
,
"v"
:
"L"
},{
"n"
:
"M"
,
"v"
:
"M"
},{
"n"
:
"N"
,
"v"
:
"N"
},{
"n"
:
"O"
,
"v"
:
"O"
},{
"n"
:
"P"
,
"v"
:
"P"
},{
"n"
:
"Q"
,
"v"
:
"Q"
},{
"n"
:
"R"
,
"v"
:
"R"
},{
"n"
:
"S"
,
"v"
:
"S"
},{
"n"
:
"T"
,
"v"
:
"T"
},{
"n"
:
"U"
,
"v"
:
"U"
},{
"n"
:
"V"
,
"v"
:
"V"
},{
"n"
:
"W"
,
"v"
:
"W"
},{
"n"
:
"X"
,
"v"
:
"X"
},{
"n"
:
"Y"
,
"v"
:
"Y"
},{
"n"
:
"Z"
,
"v"
:
"Z"
},{
"n"
:
"0-9"
,
"v"
:
"0-9"
}]},{
"key"
:
2
,
"name"
:
"排序"
,
"value"
:[{
"n"
:
"最新"
,
"v"
:
"time"
},{
"n"
:
"最热"
,
"v"
:
"hits"
},{
"n"
:
"评分"
,
"v"
:
"score"
}]}],
"dongman"
:[{
"key"
:
3
,
"name"
:
"分类"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"番剧"
,
"v"
:
"番剧"
},{
"n"
:
"国创"
,
"v"
:
"国创"
},{
"n"
:
"热血"
,
"v"
:
"热血"
},{
"n"
:
"科幻"
,
"v"
:
"科幻"
},{
"n"
:
"动画"
,
"v"
:
"动画"
},{
"n"
:
"仙侠"
,
"v"
:
"仙侠"
},{
"n"
:
"修仙"
,
"v"
:
"修仙"
},{
"n"
:
"推理"
,
"v"
:
"推理"
},{
"n"
:
"搞笑"
,
"v"
:
"搞笑"
},{
"n"
:
"冒险"
,
"v"
:
"冒险"
},{
"n"
:
"校园"
,
"v"
:
"校园"
},{
"n"
:
"动作"
,
"v"
:
"动作"
},{
"n"
:
"机战"
,
"v"
:
"机战"
},{
"n"
:
"运动"
,
"v"
:
"运动"
},{
"n"
:
"战争"
,
"v"
:
"战争"
},{
"n"
:
"少年"
,
"v"
:
"少年"
},{
"n"
:
"少女"
,
"v"
:
"少女"
},{
"n"
:
"社会"
,
"v"
:
"社会"
},{
"n"
:
"原创"
,
"v"
:
"原创"
},{
"n"
:
"亲子"
,
"v"
:
"亲子"
},{
"n"
:
"益智"
,
"v"
:
"益智"
},{
"n"
:
"励志"
,
"v"
:
"励志"
},{
"n"
:
"其他"
,
"v"
:
"其他"
}]},{
"key"
:
1
,
"name"
:
"地区"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"大陆"
,
"v"
:
"大陆"
},{
"n"
:
"日本"
,
"v"
:
"日本"
},{
"n"
:
"欧美"
,
"v"
:
"欧美"
},{
"n"
:
"其他"
,
"v"
:
"其他"
}]},{
"key"
:
4
,
"name"
:
"语言"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"国语"
,
"v"
:
"国语"
},{
"n"
:
"英语"
,
"v"
:
"英语"
},{
"n"
:
"粤语"
,
"v"
:
"粤语"
},{
"n"
:
"闽南语"
,
"v"
:
"闽南语"
},{
"n"
:
"韩语"
,
"v"
:
"韩语"
},{
"n"
:
"日语"
,
"v"
:
"日语"
},{
"n"
:
"其它"
,
"v"
:
"其它"
}]},{
"key"
:
11
,
"name"
:
"年份"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"2022"
,
"v"
:
"2022"
},{
"n"
:
"2021"
,
"v"
:
"2021"
},{
"n"
:
"2020"
,
"v"
:
"2020"
},{
"n"
:
"2019"
,
"v"
:
"2019"
},{
"n"
:
"2018"
,
"v"
:
"2018"
},{
"n"
:
"2017"
,
"v"
:
"2017"
},{
"n"
:
"2016"
,
"v"
:
"2016"
},{
"n"
:
"2015"
,
"v"
:
"2015"
},{
"n"
:
"2014"
,
"v"
:
"2014"
},{
"n"
:
"2013"
,
"v"
:
"2013"
},{
"n"
:
"2012"
,
"v"
:
"2012"
},{
"n"
:
"2011"
,
"v"
:
"2011"
},{
"n"
:
"2010"
,
"v"
:
"2010"
},{
"n"
:
"2009"
,
"v"
:
"2009"
},{
"n"
:
"2008"
,
"v"
:
"2008"
},{
"n"
:
"2007"
,
"v"
:
"2007"
},{
"n"
:
"2006"
,
"v"
:
"2006"
},{
"n"
:
"2005"
,
"v"
:
"2005"
},{
"n"
:
"2004"
,
"v"
:
"2004"
}]},{
"key"
:
5
,
"name"
:
"字母"
,
"value"
:[{
"n"
:
"字母"
,
"v"
:
""
},{
"n"
:
"A"
,
"v"
:
"A"
},{
"n"
:
"B"
,
"v"
:
"B"
},{
"n"
:
"C"
,
"v"
:
"C"
},{
"n"
:
"D"
,
"v"
:
"D"
},{
"n"
:
"E"
,
"v"
:
"E"
},{
"n"
:
"F"
,
"v"
:
"F"
},{
"n"
:
"G"
,
"v"
:
"G"
},{
"n"
:
"H"
,
"v"
:
"H"
},{
"n"
:
"I"
,
"v"
:
"I"
},{
"n"
:
"J"
,
"v"
:
"J"
},{
"n"
:
"K"
,
"v"
:
"K"
},{
"n"
:
"L"
,
"v"
:
"L"
},{
"n"
:
"M"
,
"v"
:
"M"
},{
"n"
:
"N"
,
"v"
:
"N"
},{
"n"
:
"O"
,
"v"
:
"O"
},{
"n"
:
"P"
,
"v"
:
"P"
},{
"n"
:
"Q"
,
"v"
:
"Q"
},{
"n"
:
"R"
,
"v"
:
"R"
},{
"n"
:
"S"
,
"v"
:
"S"
},{
"n"
:
"T"
,
"v"
:
"T"
},{
"n"
:
"U"
,
"v"
:
"U"
},{
"n"
:
"V"
,
"v"
:
"V"
},{
"n"
:
"W"
,
"v"
:
"W"
},{
"n"
:
"X"
,
"v"
:
"X"
},{
"n"
:
"Y"
,
"v"
:
"Y"
},{
"n"
:
"Z"
,
"v"
:
"Z"
},{
"n"
:
"0-9"
,
"v"
:
"0-9"
}]},{
"key"
:
2
,
"name"
:
"排序"
,
"value"
:[{
"n"
:
"最新"
,
"v"
:
"time"
},{
"n"
:
"最热"
,
"v"
:
"hits"
},{
"n"
:
"评分"
,
"v"
:
"score"
}]}],
"zongyi"
:[{
"key"
:
3
,
"name"
:
"分类"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"真人秀"
,
"v"
:
"真人秀"
},{
"n"
:
"访谈"
,
"v"
:
"访谈"
},{
"n"
:
"情感"
,
"v"
:
"情感"
},{
"n"
:
"选秀"
,
"v"
:
"选秀"
},{
"n"
:
"旅游"
,
"v"
:
"旅游"
},{
"n"
:
"美食"
,
"v"
:
"美食"
},{
"n"
:
"口秀"
,
"v"
:
"口秀"
},{
"n"
:
"曲艺"
,
"v"
:
"曲艺"
},{
"n"
:
"搞笑"
,
"v"
:
"搞笑"
},{
"n"
:
"游戏"
,
"v"
:
"游戏"
},{
"n"
:
"歌舞"
,
"v"
:
"歌舞"
},{
"n"
:
"生活"
,
"v"
:
"生活"
},{
"n"
:
"音乐"
,
"v"
:
"音乐"
},{
"n"
:
"时尚"
,
"v"
:
"时尚"
},{
"n"
:
"益智"
,
"v"
:
"益智"
},{
"n"
:
"职场"
,
"v"
:
"职场"
},{
"n"
:
"少儿"
,
"v"
:
"少儿"
},{
"n"
:
"纪实"
,
"v"
:
"纪实"
},{
"n"
:
"盛会"
,
"v"
:
"盛会"
},{
"n"
:
"音乐MV"
,
"v"
:
"音乐MV"
}]},{
"key"
:
1
,
"name"
:
"地区"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"大陆"
,
"v"
:
"大陆"
},{
"n"
:
"韩国"
,
"v"
:
"韩国"
},{
"n"
:
"香港"
,
"v"
:
"香港"
},{
"n"
:
"台湾"
,
"v"
:
"台湾"
},{
"n"
:
"美国"
,
"v"
:
"美国"
},{
"n"
:
"其它"
,
"v"
:
"其它"
}]},{
"key"
:
4
,
"name"
:
"语言"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"国语"
,
"v"
:
"国语"
},{
"n"
:
"英语"
,
"v"
:
"英语"
},{
"n"
:
"粤语"
,
"v"
:
"粤语"
},{
"n"
:
"闽南语"
,
"v"
:
"闽南语"
},{
"n"
:
"韩语"
,
"v"
:
"韩语"
},{
"n"
:
"日语"
,
"v"
:
"日语"
},{
"n"
:
"其它"
,
"v"
:
"其它"
}]},{
"key"
:
11
,
"name"
:
"年份"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"2022"
,
"v"
:
"2022"
},{
"n"
:
"2021"
,
"v"
:
"2021"
},{
"n"
:
"2020"
,
"v"
:
"2020"
},{
"n"
:
"2019"
,
"v"
:
"2019"
},{
"n"
:
"2018"
,
"v"
:
"2018"
},{
"n"
:
"2017"
,
"v"
:
"2017"
},{
"n"
:
"2016"
,
"v"
:
"2016"
},{
"n"
:
"2015"
,
"v"
:
"2015"
},{
"n"
:
"2014"
,
"v"
:
"2014"
},{
"n"
:
"2013"
,
"v"
:
"2013"
},{
"n"
:
"2012"
,
"v"
:
"2012"
},{
"n"
:
"2011"
,
"v"
:
"2011"
},{
"n"
:
"2010"
,
"v"
:
"2010"
},{
"n"
:
"2009"
,
"v"
:
"2009"
},{
"n"
:
"2008"
,
"v"
:
"2008"
},{
"n"
:
"2007"
,
"v"
:
"2007"
},{
"n"
:
"2006"
,
"v"
:
"2006"
},{
"n"
:
"2005"
,
"v"
:
"2005"
},{
"n"
:
"2004"
,
"v"
:
"2004"
}]},{
"key"
:
5
,
"name"
:
"字母"
,
"value"
:[{
"n"
:
"字母"
,
"v"
:
""
},{
"n"
:
"A"
,
"v"
:
"A"
},{
"n"
:
"B"
,
"v"
:
"B"
},{
"n"
:
"C"
,
"v"
:
"C"
},{
"n"
:
"D"
,
"v"
:
"D"
},{
"n"
:
"E"
,
"v"
:
"E"
},{
"n"
:
"F"
,
"v"
:
"F"
},{
"n"
:
"G"
,
"v"
:
"G"
},{
"n"
:
"H"
,
"v"
:
"H"
},{
"n"
:
"I"
,
"v"
:
"I"
},{
"n"
:
"J"
,
"v"
:
"J"
},{
"n"
:
"K"
,
"v"
:
"K"
},{
"n"
:
"L"
,
"v"
:
"L"
},{
"n"
:
"M"
,
"v"
:
"M"
},{
"n"
:
"N"
,
"v"
:
"N"
},{
"n"
:
"O"
,
"v"
:
"O"
},{
"n"
:
"P"
,
"v"
:
"P"
},{
"n"
:
"Q"
,
"v"
:
"Q"
},{
"n"
:
"R"
,
"v"
:
"R"
},{
"n"
:
"S"
,
"v"
:
"S"
},{
"n"
:
"T"
,
"v"
:
"T"
},{
"n"
:
"U"
,
"v"
:
"U"
},{
"n"
:
"V"
,
"v"
:
"V"
},{
"n"
:
"W"
,
"v"
:
"W"
},{
"n"
:
"X"
,
"v"
:
"X"
},{
"n"
:
"Y"
,
"v"
:
"Y"
},{
"n"
:
"Z"
,
"v"
:
"Z"
},{
"n"
:
"0-9"
,
"v"
:
"0-9"
}]},{
"key"
:
2
,
"name"
:
"排序"
,
"value"
:[{
"n"
:
"最新"
,
"v"
:
"time"
},{
"n"
:
"最热"
,
"v"
:
"hits"
},{
"n"
:
"评分"
,
"v"
:
"score"
}]}],
"shaoer"
:[{
"key"
:
3
,
"name"
:
"分类"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"历险"
,
"v"
:
"历险"
},{
"n"
:
"奇幻"
,
"v"
:
"奇幻"
},{
"n"
:
"教育"
,
"v"
:
"教 育"
},{
"n"
:
"搞笑"
,
"v"
:
"搞笑"
},{
"n"
:
"教育"
,
"v"
:
"教育"
},{
"n"
:
"益智"
,
"v"
:
"益智"
}]},{
"key"
:
1
,
"name"
:
"地区"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"大陆"
,
"v"
:
"大陆"
},{
"n"
:
"美国"
,
"v"
:
"美国"
},{
"n"
:
"香港"
,
"v"
:
"香港"
},{
"n"
:
"韩国"
,
"v"
:
"韩国"
},{
"n"
:
"英国"
,
"v"
:
"英国"
},{
"n"
:
"台湾"
,
"v"
:
"台湾"
},{
"n"
:
"日本"
,
"v"
:
"日本"
},{
"n"
:
"法国"
,
"v"
:
"法国"
},{
"n"
:
"意大利"
,
"v"
:
"意大利"
},{
"n"
:
"德国"
,
"v"
:
"德国"
},{
"n"
:
"西班牙"
,
"v"
:
"西班牙"
},{
"n"
:
"泰国"
,
"v"
:
"泰国"
},{
"n"
:
"其它"
,
"v"
:
"其它"
}]},{
"key"
:
4
,
"name"
:
"语言"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"国语"
,
"v"
:
"国语"
},{
"n"
:
"英语"
,
"v"
:
"英语"
},{
"n"
:
"粤语"
,
"v"
:
"粤语"
},{
"n"
:
"闽南语"
,
"v"
:
"闽南语"
},{
"n"
:
"韩语"
,
"v"
:
"韩语"
},{
"n"
:
"日语"
,
"v"
:
"日语"
},{
"n"
:
"法语"
,
"v"
:
"法语"
},{
"n"
:
"德语"
,
"v"
:
"德语"
},{
"n"
:
"其它"
,
"v"
:
"其它"
}]},{
"key"
:
11
,
"name"
:
"年份"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"2022"
,
"v"
:
"2022"
},{
"n"
:
"2021"
,
"v"
:
"2021"
},{
"n"
:
"2020"
,
"v"
:
"2020"
},{
"n"
:
"2019"
,
"v"
:
"2019"
},{
"n"
:
"2018"
,
"v"
:
"2018"
},{
"n"
:
"2017"
,
"v"
:
"2017"
},{
"n"
:
"2016"
,
"v"
:
"2016"
},{
"n"
:
"2015"
,
"v"
:
"2015"
},{
"n"
:
"2014"
,
"v"
:
"2014"
},{
"n"
:
"2013"
,
"v"
:
"2013"
},{
"n"
:
"2012"
,
"v"
:
"2012"
},{
"n"
:
"2011"
,
"v"
:
"2011"
},{
"n"
:
"2010"
,
"v"
:
"2010"
},{
"n"
:
"2009"
,
"v"
:
"2009"
},{
"n"
:
"2008"
,
"v"
:
"2008"
},{
"n"
:
"2006"
,
"v"
:
"2006"
},{
"n"
:
"2005"
,
"v"
:
"2005"
},{
"n"
:
"2004"
,
"v"
:
"2004"
}]},{
"key"
:
5
,
"name"
:
"字母"
,
"value"
:[{
"n"
:
"字母"
,
"v"
:
""
},{
"n"
:
"A"
,
"v"
:
"A"
},{
"n"
:
"B"
,
"v"
:
"B"
},{
"n"
:
"C"
,
"v"
:
"C"
},{
"n"
:
"D"
,
"v"
:
"D"
},{
"n"
:
"E"
,
"v"
:
"E"
},{
"n"
:
"F"
,
"v"
:
"F"
},{
"n"
:
"G"
,
"v"
:
"G"
},{
"n"
:
"H"
,
"v"
:
"H"
},{
"n"
:
"I"
,
"v"
:
"I"
},{
"n"
:
"J"
,
"v"
:
"J"
},{
"n"
:
"K"
,
"v"
:
"K"
},{
"n"
:
"L"
,
"v"
:
"L"
},{
"n"
:
"M"
,
"v"
:
"M"
},{
"n"
:
"N"
,
"v"
:
"N"
},{
"n"
:
"O"
,
"v"
:
"O"
},{
"n"
:
"P"
,
"v"
:
"P"
},{
"n"
:
"Q"
,
"v"
:
"Q"
},{
"n"
:
"R"
,
"v"
:
"R"
},{
"n"
:
"S"
,
"v"
:
"S"
},{
"n"
:
"T"
,
"v"
:
"T"
},{
"n"
:
"U"
,
"v"
:
"U"
},{
"n"
:
"V"
,
"v"
:
"V"
},{
"n"
:
"W"
,
"v"
:
"W"
},{
"n"
:
"X"
,
"v"
:
"X"
},{
"n"
:
"Y"
,
"v"
:
"Y"
},{
"n"
:
"Z"
,
"v"
:
"Z"
},{
"n"
:
"0-9"
,
"v"
:
"0-9"
}]},{
"key"
:
2
,
"name"
:
"排序"
,
"value"
:[{
"n"
:
"最新"
,
"v"
:
"time"
},{
"n"
:
"最热"
,
"v"
:
"hits"
},{
"n"
:
"评分"
,
"v"
:
"score"
}]}],
"yinyue"
:[{
"key"
:
3
,
"name"
:
"分类"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"MV"
,
"v"
:
"MV"
},{
"n"
:
"演唱会"
,
"v"
:
"演唱会"
},{
"n"
:
"音频"
,
"v"
:
"音频"
}]},{
"key"
:
1
,
"name"
:
"地区"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"大陆"
,
"v"
:
"大陆"
},{
"n"
:
"韩国"
,
"v"
:
"韩国"
},{
"n"
:
"香港"
,
"v"
:
"香港"
},{
"n"
:
"台湾"
,
"v"
:
"台湾"
}]},{
"key"
:
4
,
"name"
:
"语言"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"韩语"
,
"v"
:
"韩语"
},{
"n"
:
"粤语"
,
"v"
:
"粤语"
},{
"n"
:
"日语"
,
"v"
:
"日语"
},{
"n"
:
"英语"
,
"v"
:
"英语"
},{
"n"
:
"泰语"
,
"v"
:
"泰语"
},{
"n"
:
"国语"
,
"v"
:
"国语"
}]},{
"key"
:
11
,
"name"
:
"年份"
,
"value"
:[{
"n"
:
"全部"
,
"v"
:
""
},{
"n"
:
"2022"
,
"v"
:
"2022"
},{
"n"
:
"2021"
,
"v"
:
"2021"
},{
"n"
:
"2020"
,
"v"
:
"2020"
},{
"n"
:
"2019"
,
"v"
:
"2019"
},{
"n"
:
"2018"
,
"v"
:
"2018"
},{
"n"
:
"2017"
,
"v"
:
"2017"
},{
"n"
:
"2016"
,
"v"
:
"2016"
},{
"n"
:
"2015"
,
"v"
:
"2015"
},{
"n"
:
"2014"
,
"v"
:
"2014"
}]},{
"key"
:
5
,
"name"
:
"字母"
,
"value"
:[{
"n"
:
"字母"
,
"v"
:
""
},{
"n"
:
"A"
,
"v"
:
"A"
},{
"n"
:
"B"
,
"v"
:
"B"
},{
"n"
:
"C"
,
"v"
:
"C"
},{
"n"
:
"D"
,
"v"
:
"D"
},{
"n"
:
"E"
,
"v"
:
"E"
},{
"n"
:
"F"
,
"v"
:
"F"
},{
"n"
:
"G"
,
"v"
:
"G"
},{
"n"
:
"H"
,
"v"
:
"H"
},{
"n"
:
"I"
,
"v"
:
"I"
},{
"n"
:
"J"
,
"v"
:
"J"
},{
"n"
:
"K"
,
"v"
:
"K"
},{
"n"
:
"L"
,
"v"
:
"L"
},{
"n"
:
"M"
,
"v"
:
"M"
},{
"n"
:
"N"
,
"v"
:
"N"
},{
"n"
:
"O"
,
"v"
:
"O"
},{
"n"
:
"P"
,
"v"
:
"P"
},{
"n"
:
"Q"
,
"v"
:
"Q"
},{
"n"
:
"R"
,
"v"
:
"R"
},{
"n"
:
"S"
,
"v"
:
"S"
},{
"n"
:
"T"
,
"v"
:
"T"
},{
"n"
:
"U"
,
"v"
:
"U"
},{
"n"
:
"V"
,
"v"
:
"V"
},{
"n"
:
"W"
,
"v"
:
"W"
},{
"n"
:
"X"
,
"v"
:
"X"
},{
"n"
:
"Y"
,
"v"
:
"Y"
},{
"n"
:
"Z"
,
"v"
:
"Z"
},{
"n"
:
"0-9"
,
"v"
:
"0-9"
}]},{
"key"
:
2
,
"name"
:
"排序"
,
"value"
:[{
"n"
:
"最新"
,
"v"
:
"time"
},{
"n"
:
"最热"
,
"v"
:
"hits"
},{
"n"
:
"评分"
,
"v"
:
"score"
}]}]}
}
\ No newline at end of file
utils/web.py
浏览文件 @
e262ce6b
...
...
@@ -5,6 +5,7 @@
# Date : 2022/8/25
import
socket
import
hashlib
from
werkzeug.utils
import
import_string
from
netifaces
import
interfaces
,
ifaddresses
,
AF_INET
from
flask
import
request
...
...
@@ -70,4 +71,19 @@ def get_conf(obj):
def
get_interval
(
t
):
interval
=
time
()
-
t
interval
=
round
(
interval
*
1000
,
2
)
return
interval
\ No newline at end of file
return
interval
def
md5
(
str
):
return
hashlib
.
md5
(
str
.
encode
(
encoding
=
'UTF-8'
)).
hexdigest
()
def
verfy_token
(
token
=
''
):
if
not
token
or
len
(
str
(
token
))
!=
32
:
return
False
cfg
=
get_conf
(
settings
)
username
=
cfg
.
get
(
'UNAME'
,
''
)
pwd
=
cfg
.
get
(
'PWD'
,
''
)
ctoken
=
md5
(
f
'
{
username
}
;
{
pwd
}
'
)
# print(f'username:{username},pwd:{pwd},current_token:{ctoken},input_token:{ctoken}')
if
token
!=
ctoken
:
return
False
return
True
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录