diff --git a/base/rules.db b/base/rules.db index 16f9a4d012b56df0dd6a04f8ae252671ceeed4a3..0d6d2ac3941345fca16948cd310b63135222c099 100644 Binary files a/base/rules.db and b/base/rules.db differ diff --git a/controllers/admin.py b/controllers/admin.py index 45d42ae77b6aa12190114ee69a2e6e40f9acad07..0054512469533fb967d5a8c65905730ef1843d33 100644 --- a/controllers/admin.py +++ b/controllers/admin.py @@ -89,7 +89,12 @@ def admin_view_rule(name): if burl != rurl: jscode = parser.getJs(name, 'js') # rjscode = render_template_string(jscode, env=env) - rjscode = render_template_string(jscode, **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: diff --git a/controllers/cms.py b/controllers/cms.py index 47c0538e9d289a97afab4c92855f8ff1337532fa..2544b071ff3823a7166f2c8105b7e6219559788c 100644 --- a/controllers/cms.py +++ b/controllers/cms.py @@ -710,6 +710,7 @@ class CMS: if fl is None: fl = {} + # print(f'fl:{fl}') if self.filter_def and isinstance(self.filter_def,dict): try: if self.filter_def.get(fyclass) and isinstance(self.filter_def[fyclass],dict): @@ -740,8 +741,8 @@ class CMS: url += self.filter_url else: # 第二种情况直接替换关键字为待拼接的结果后面渲染,适用于 ----fypage.html的情况 url = url.replace('fyfilter', self.filter_url) + # print(f'url渲染:{url}') url = render_template_string(url,fl=fl) - # fl_url = render_template_string(self.filter_url,fl=fl) # if not 'fyfilter' in url: # 第一种情况,默认不写fyfilter关键字,视为直接拼接在链接后面当参数 # if not url.endswith('&') and not fl_url.startswith('&'): diff --git a/controllers/vod.py b/controllers/vod.py index b5907274964161fc0dd9028503ef2dc43fcd72a5..1ad67dd5cabd6604af53bfc13971884df0e4bc82 100644 --- a/controllers/vod.py +++ b/controllers/vod.py @@ -60,7 +60,11 @@ def search_one(rule, wd, before: str = '',env:dict=None,app=None): if env: # 渲染字符串文本 render_template_string 必须带 flask的上下文 with app.app_context(): - jscode = render_template_string(jscode, **env) + for k in env: + # print(f'${k}', f'{env[k]}') + if f'${k}' in jscode: + jscode = jscode.replace(f'${k}', f'{env[k]}') + # jscode = render_template_string(jscode, **env) # if '007' in rule: # print(rule,jscode) jscode = before + jscode + end_code @@ -253,8 +257,13 @@ def vod_home(): with open(js_path,encoding='utf-8') as f2: jscode = f2.read() env = get_env() - if env: - jscode = render_template_string(jscode,**env) + for k in env: + # print(f'${k}',f'{env[k]}') + if f'${k}' in jscode: + jscode = jscode.replace(f'${k}',f'{env[k]}') + # print(env) + # if env: + # jscode = render_template_string(jscode,**env) # print(jscode) jscode = before + jscode + end_code # print(jscode) diff --git a/js/drpy.js b/js/drpy.js index 81b7fd3cc19af16fb34dc17f535212d4261a9cec..df0c0f46ac9f0d20b64acce18c39d585a0a6f422 100644 --- a/js/drpy.js +++ b/js/drpy.js @@ -8,7 +8,7 @@ var rule = { quickSearch:1, filterable:1, // 分类链接fypage参数支持1个()表达式 - url:'/?pg=fypage&class=fyclass&douban={{douban}}', + url:'/?pg=fypage&class=fyclass&douban=$douban', filter_url:'fl={{fl}}', headers:{ "Host": "frodo.douban.com", diff --git a/js/version.txt b/js/version.txt index 3c9a22ace8aa039b79c111f388529e5c2847b692..339c894911552fd7caab23924c788d630d709fb5 100644 --- a/js/version.txt +++ b/js/version.txt @@ -1 +1 @@ -3.9.25beta5 \ No newline at end of file +3.9.26 \ No newline at end of file diff --git a/utils/parser.py b/utils/parser.py index 8e0b33c9b71819181f3dbfb9c75e5ff931ee8738..64e1b7f0d5f11ddc614f778ba9bb66ea5ddc7154 100644 --- a/utils/parser.py +++ b/utils/parser.py @@ -87,7 +87,11 @@ def toJs(jsPath,jsRoot='cache',env=None): js = fp.read() if env: # js = render_template_string(js,env=env) - js = render_template_string(js,**env) + for k in env: + # print(f'${k}', f'{env[k]}') + if f'${k}' in js: + js = js.replace(f'${k}', f'{env[k]}') + # js = render_template_string(js,**env) response = make_response(js) response.headers['Content-Type'] = 'text/javascript; charset=utf-8' return response