diff --git a/controllers/cms.py b/controllers/cms.py index e2212697137a2c725ce906182ffe37163ac8e776..8e3d3f5828daa3687a1194543ed6b41f15dd40f6 100644 --- a/controllers/cms.py +++ b/controllers/cms.py @@ -206,6 +206,7 @@ class CMS: self.double = rule.get('double',False) self.一级 = rule.get('一级','') self.二级 = rule.get('二级','') + self.二级访问前 = rule.get('二级访问前','') self.搜索 = rule.get('搜索','') self.推荐 = rule.get('推荐','') self.图片来源 = rule.get('图片来源','') @@ -1144,6 +1145,27 @@ class CMS: url = urljoin(self.homeUrl,detailUrl) else: url = detailUrl + if self.二级访问前: + logger.info(f'尝试在二级访问前执行代码: {self.二级访问前}') + py_ctx.update({ + 'MY_URL': url, + 'oheaders': self.d.oheaders, + 'fetch_params': {'headers': self.headers, 'timeout': self.d.timeout, 'encoding': self.d.encoding}, + 'd': self.d, + }) + ctx = py_ctx + jscode = getPreJs() + self.二级访问前.replace('js:', '', 1) + # print(jscode) + loader, _ = runJScode(jscode, ctx=ctx) + try: + MY_URL = loader.eval('MY_URL') + if isinstance(MY_URL, JsObjectWrapper): + MY_URL = str(MY_URL) + if MY_URL: + url = MY_URL + except Exception as e: + logger.info(f'执行二级访问前发生错误: {e}') + logger.info(f'进入详情页: {url}') try: p = self.二级 # 解析 diff --git a/js/version.txt b/js/version.txt index 4ff17ed0705b248a8fc67bbe1dd3b00fe05c3a48..9d73c3acbcd477edca33082d6f6e213eb214877d 100644 --- a/js/version.txt +++ b/js/version.txt @@ -1 +1 @@ -3.9.35beta3 \ No newline at end of file +3.9.35beta4 \ No newline at end of file