From 83dd41c2d4019be8649723570ae7e54ccfd6ed26 Mon Sep 17 00:00:00 2001 From: hujing Date: Sat, 18 Nov 2023 21:47:25 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=96=87=E7=AB=A0=E7=82=B9=E8=B5=9E?= =?UTF-8?q?=E7=9A=84=E4=BB=BB=E5=8A=A1=E6=9C=AA=E7=94=9F=E6=95=88,=20?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E7=89=B9=E5=AE=9A=E7=9A=84=20channel=5Fid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- smzdm_task.js | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/smzdm_task.js b/smzdm_task.js index 3fcf179..b027c91 100644 --- a/smzdm_task.js +++ b/smzdm_task.js @@ -207,6 +207,31 @@ class SmzdmTaskBot extends SmzdmBot { return await this.receiveReward(task.task_id); } + // 通过 url 获取文章信息 + async getArticleInfoByLink(link, id){ + const { isSuccess, response } = await requestApi(link, { + method: 'get', + headers: this.getHeaders(), + parseJSON: false, + sign: false, + }); + if(!isSuccess){ + $.log(`获取文章信息失败. ${response}`) + return null; + } + // 通过正则提取页面中的 channel_id + let re = /'channel_id':'(\d+)'/; + let matchRet = response.match(re); + if(!matchRet){ + $.log(`获取文章信息失败. ${response}`) + return null; + } + return { + 'article_id': id, + 'article_channel_id': matchRet[1], + }; + } + // 执行点赞任务 async doRatingTask(task) { $.log(`开始任务: ${task.task_name}`); @@ -237,9 +262,13 @@ class SmzdmTaskBot extends SmzdmBot { article = this.getOneByRandom(articles); } - else if (task.task_redirect_url.link_type === 'article') { - // 获取文章信息 - article = await this.getArticleDetail(task.task_redirect_url.link_val); + else if (task.task_redirect_url.link != '' && task.task_redirect_url.link_val != '') { + article = await this.getArticleInfoByLink(task.task_redirect_url.link, task.task_redirect_url.link_val); + if(!article){ + return { + isSuccess: false + }; + } } else { $.log('尚未支持');