Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
晴天906
dr_py
提交
f2468861
dr_py
项目概览
晴天906
/
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,发现更多精彩内容 >>
提交
f2468861
编写于
3月 22, 2023
作者:
H
hjdhnx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新环境变量注入问题
上级
0a6fb56f
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
93 addition
and
36 deletion
+93
-36
controllers/admin.py
controllers/admin.py
+33
-31
controllers/home.py
controllers/home.py
+11
-4
doc/更新日志.md
doc/更新日志.md
+3
-0
js/version.txt
js/version.txt
+1
-1
utils/common_api.py
utils/common_api.py
+45
-0
未找到文件。
controllers/admin.py
浏览文件 @
f2468861
...
@@ -20,6 +20,7 @@ from js.rules import getRules,getCacheCount
...
@@ -20,6 +20,7 @@ from js.rules import getRules,getCacheCount
from
utils.parser
import
runJScode
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
admin
=
Blueprint
(
"admin"
,
__name__
)
admin
=
Blueprint
(
"admin"
,
__name__
)
...
@@ -83,37 +84,38 @@ def admin_update_env(): # 更新环境变量中的某个值
...
@@ -83,37 +84,38 @@ def admin_update_env(): # 更新环境变量中的某个值
@
admin
.
route
(
"/view/<name>"
,
methods
=
[
'GET'
])
@
admin
.
route
(
"/view/<name>"
,
methods
=
[
'GET'
])
def
admin_view_rule
(
name
):
def
admin_view_rule
(
name
):
if
not
name
or
not
name
.
split
(
'.'
)[
-
1
]
in
[
'js'
,
'txt'
,
'py'
,
'json'
]:
return
js_render
(
name
)
return
R
.
error
(
f
'非法猥亵,未指定文件名。必须包含js|txt|json|py'
)
# if not name or not name.split('.')[-1] in ['js','txt','py','json']:
try
:
# return R.error(f'非法猥亵,未指定文件名。必须包含js|txt|json|py')
env
=
get_env
()
# try:
# print(env)
# env = get_env()
if
env
.
get
(
'js_proxy'
):
# # print(env)
js_proxy
=
env
[
'js_proxy'
]
# if env.get('js_proxy'):
burl
=
request
.
base_url
# js_proxy = env['js_proxy']
if
'=>'
in
js_proxy
:
# burl = request.base_url
oldsrc
=
js_proxy
.
split
(
'=>'
)[
0
]
# if '=>' in js_proxy:
if
oldsrc
in
burl
:
# oldsrc = js_proxy.split('=>')[0]
newsrc
=
js_proxy
.
split
(
'=>'
)[
1
]
# if oldsrc in burl:
# print(f'js1源代理已启用,全局替换{oldsrc}为{newsrc}')
# newsrc = js_proxy.split('=>')[1]
rurl
=
burl
.
replace
(
oldsrc
,
newsrc
)
# # print(f'js1源代理已启用,全局替换{oldsrc}为{newsrc}')
if
burl
!=
rurl
:
# rurl = burl.replace(oldsrc, newsrc)
jscode
=
parser
.
getJs
(
name
,
'js'
)
# if burl != rurl:
# rjscode = render_template_string(jscode, env=env)
# jscode = parser.getJs(name, 'js')
rjscode
=
jscode
# # rjscode = render_template_string(jscode, env=env)
for
k
in
env
:
# rjscode = jscode
# print(f'${k}', f'{env[k]}')
# for k in env:
if
f
'$
{
k
}
'
in
rjscode
:
# # print(f'${k}', f'{env[k]}')
rjscode
=
rjscode
.
replace
(
f
'$
{
k
}
'
,
f
'
{
env
[
k
]
}
'
)
# if f'${k}' in rjscode:
# rjscode = render_template_string(jscode, **env)
# rjscode = rjscode.replace(f'${k}', f'{env[k]}')
if
rjscode
.
strip
()
==
jscode
.
strip
():
# 无需渲染才代理
# # rjscode = render_template_string(jscode, **env)
return
redirect
(
rurl
)
# if rjscode.strip() == jscode.strip(): # 无需渲染才代理
else
:
# return redirect(rurl)
logger
.
info
(
f
'
{
name
}
由于存在环境变量无法被依赖代理'
)
# else:
# logger.info(f'{name}由于存在环境变量无法被依赖代理')
return
parser
.
toJs
(
name
,
'js'
,
env
)
#
except
Exception
as
e
:
# return parser.toJs(name,'js',env)
return
R
.
error
(
f
'非法猥亵
\n
{
e
}
'
)
# except Exception as e:
# return R.error(f'非法猥亵\n{e}')
@
admin
.
route
(
'/clear/<name>'
)
@
admin
.
route
(
'/clear/<name>'
)
def
admin_clear_rule
(
name
):
def
admin_clear_rule
(
name
):
...
...
controllers/home.py
浏览文件 @
f2468861
...
@@ -25,6 +25,7 @@ from utils.update import getLocalVer,getHotSuggest
...
@@ -25,6 +25,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
,
verfy_token
from
utils.web
import
getParmas
,
verfy_token
from
utils.common_api
import
js_render
import
functools
import
functools
...
@@ -137,11 +138,17 @@ def custom_static_libs(filename):
...
@@ -137,11 +138,17 @@ def custom_static_libs(filename):
# print(filename)
# print(filename)
return
send_from_directory
(
'libs'
,
filename
)
return
send_from_directory
(
'libs'
,
filename
)
@
home
.
route
(
'/js/<path:filename>'
)
# @home.route('/js/<path:filename>')
def
custom_static_js
(
filename
):
# def custom_static_js(filename):
# # 自定义静态目录 {{ url_for('custom_static',filename='help.txt')}}
# # print(filename)
# return send_from_directory('js', filename)
@
home
.
route
(
'/js/<path:name>'
,
methods
=
[
'GET'
])
def
custom_static_js
(
name
):
# 自定义静态目录 {{ url_for('custom_static',filename='help.txt')}}
# 自定义静态目录 {{ url_for('custom_static',filename='help.txt')}}
# print(
file
name)
# print(name)
return
send_from_directory
(
'js'
,
file
name
)
return
js_render
(
name
)
# @home.route('/txt/<name>')
# @home.route('/txt/<name>')
# def get_txt_files(name):
# def get_txt_files(name):
...
...
doc/更新日志.md
浏览文件 @
f2468861
###### 2023/03/22
-
[X] 3.9.40beta5 修复 /js 路径未注入环境变量问题
###### 2023/03/21
###### 2023/03/21
-
[X] 增加了直播转点播的api,版本号升级至 3.9.40
-
[X] 增加了直播转点播的api,版本号升级至 3.9.40
-
[X] 需要在custom.conf加一行自定义配置,例如:
-
[X] 需要在custom.conf加一行自定义配置,例如:
...
...
js/version.txt
浏览文件 @
f2468861
3.9.40beta4
3.9.40beta5
\ No newline at end of file
\ No newline at end of file
utils/common_api.py
0 → 100644
浏览文件 @
f2468861
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# File : common_api.py
# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------
# Author's Blog: https://blog.csdn.net/qq_32394351
# Date : 2023/3/22
from
utils
import
parser
from
utils.env
import
get_env
from
base.R
import
R
from
flask
import
request
,
redirect
from
utils.log
import
logger
def
js_render
(
name
):
if
not
name
or
not
name
.
split
(
'.'
)[
-
1
]
in
[
'js'
,
'txt'
,
'py'
,
'json'
]:
return
R
.
error
(
f
'非法猥亵,未指定文件名。必须包含js|txt|json|py'
)
try
:
env
=
get_env
()
# print(env)
if
env
.
get
(
'js_proxy'
):
js_proxy
=
env
[
'js_proxy'
]
burl
=
request
.
base_url
if
'=>'
in
js_proxy
:
oldsrc
=
js_proxy
.
split
(
'=>'
)[
0
]
if
oldsrc
in
burl
:
newsrc
=
js_proxy
.
split
(
'=>'
)[
1
]
# print(f'js1源代理已启用,全局替换{oldsrc}为{newsrc}')
rurl
=
burl
.
replace
(
oldsrc
,
newsrc
)
if
burl
!=
rurl
:
jscode
=
parser
.
getJs
(
name
,
'js'
)
# rjscode = render_template_string(jscode, env=env)
rjscode
=
jscode
for
k
in
env
:
# print(f'${k}', f'{env[k]}')
if
f
'$
{
k
}
'
in
rjscode
:
rjscode
=
rjscode
.
replace
(
f
'$
{
k
}
'
,
f
'
{
env
[
k
]
}
'
)
# rjscode = render_template_string(jscode, **env)
if
rjscode
.
strip
()
==
jscode
.
strip
():
# 无需渲染才代理
return
redirect
(
rurl
)
else
:
logger
.
info
(
f
'
{
name
}
由于存在环境变量无法被依赖代理'
)
return
parser
.
toJs
(
name
,
'js'
,
env
)
except
Exception
as
e
:
return
R
.
error
(
f
'非法猥亵
\n
{
e
}
'
)
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录